Sobes.tech
Middle — Senior

Jak używać walidacji krzyżowej do oceny modelu?

sobes.tech AI

Odpowiedź od AI

Walidacja krzyżowa jest metodą oceny jakości modelu uczenia maszynowego, która pomaga sprawdzić, jak dobrze model będzie działał na nowych danych. Głównym pomysłem jest podzielenie oryginalnego zbioru danych na kilka części (folds), wytrenowanie modelu na niektórych częściach i sprawdzenie go na pozostałych.

Najczęściej stosowaną wersją jest walidacja krzyżowa k-fold:

  1. Podziel dane na k równych części.
  2. Dla każdej z k części:
    • Wytrenuj model na pozostałych k-1 częściach.
    • Przetestuj model na bieżącej części (zbiór walidacyjny).
  3. Średnia wartość metryk ze wszystkich k iteracji daje bardziej wiarygodną ocenę jakości modelu.

To pomaga uniknąć nadmiernego dopasowania i uzyskać bardziej obiektywną ocenę niż proste podział na zbiór treningowy i testowy.

Przykład w Pythonie z użyciem scikit-learn:

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris

iris = load_iris()
X, y = iris.data, iris.target
model = RandomForestClassifier()
scores = cross_val_score(model, X, y, cv=5)  # walidacja krzyżowa 5-krotna
print(f"Średnia dokładność: {scores.mean():.2f}")