K-Fold Cross Validation

Wprowadzenie

K-Fold Cross Validation (Walidacja Krzyżowa K-Krotna) to standardowa technika oceny wydajności modeli uczenia maszynowego. Polega na podziale zbioru danych na K równych części (foldów), a następnie trenowaniu i testowaniu modelu K razy, za każdym razem używając innego foldu jako zbioru testowego.

Jak działa K-Fold Cross Validation?

  1. Losowo (lub stratyfikowanie) dzielimy dane na K foldów
  2. Dla każdej iteracji:
    • Trenujemy model na K-1 foldach
    • Testujemy na pozostałym 1 foldzie
  3. Obliczamy średnią metrykę ze wszystkich K iteracji

Najczęściej stosowane wartości K to 5 lub 10.

Warianty K-Fold

  • Stratified K-Fold – zachowuje proporcje klas (zalecany przy klasyfikacji)
  • Repeated K-Fold – wielokrotne powtarzanie walidacji
  • Leave-One-Out (LOO) – K = liczba próbek (bardzo kosztowne)
  • Time Series Cross Validation – dla danych sekwencyjnych

Zastosowania

  • Ocena i porównywanie modeli
  • Dobór hiperparametrów (Grid Search, Random Search, Bayesian Optimization)
  • Detekcja overfittingu
  • Estymacja rzeczywistej wydajności modelu
  • Walidacja w projektach MLOps i AutoML

Zalety i wady

  • Zalety: skuteczna ochrona przed overfittingiem, efektywne wykorzystanie danych, niska wariancja wyniku
  • Wady: większy koszt obliczeniowy (trenowanie K razy), nie nadaje się do bardzo dużych zbiorów bez optymalizacji

Najlepsze praktyki (2026)

  • Używanie Stratified K-Fold przy niezbalansowanych danych
  • K = 10 jako domyślna wartość
  • Łączenie z Nested Cross Validation przy dostrajaniu hiperparametrów
  • Wykorzystanie bibliotek (scikit-learn, XGBoost, LightGBM)
  • Walidacja na oddzielnym zbiorze testowym (Hold-out) po finalnym wyborze modelu

Powiązane pojęcia

Cross Validation • Stratified K-Fold • Overfitting • Hyperparameter Tuning • Train-Test Split • Leave-One-Out • Bootstrap • Model Evaluation