Kreuzvalidierung
Swipe um das Menü anzuzeigen
Die Aufteilung in Trainings- und Testdaten hat zwei Nachteile:
- Weniger Trainingsdaten, was die Modellqualität verringern kann;
- Abhängigkeit von der zufälligen Aufteilung, was zu instabilen Ergebnissen führt. Um dies zu vermeiden, wird Cross-Validation verwendet.
Zuerst wird der gesamte Datensatz in 5 gleich große Teile unterteilt, sogenannte Folds.
Als Nächstes wird ein Fold als Testmenge verwendet und die verbleibenden Folds werden zur Bildung der Trainingsmenge kombiniert.
Wie bei jedem Evaluierungsprozess wird die Trainingsmenge zum Trainieren des Modells verwendet, während die Testmenge zur Messung der Modellleistung dient.
Der Vorgang wird wiederholt, sodass jeder Fold einmal als Testmenge dient, während die verbleibenden Folds die Trainingsmenge bilden.
Die Kreuzvalidierung liefert mehrere Genauigkeitswerte – einen pro Aufteilung.
Ihr Mittelwert repräsentiert die durchschnittliche Leistung des Modells.
In Python wird dies mit cross_val_score() berechnet.
Es kann beliebig viele Folds gewählt werden. Beispielsweise bedeutet die Verwendung von 10 Folds, dass auf 9 Teilen trainiert und auf 1 Teil getestet wird.
Dies wird über den Parameter cv in cross_val_score() festgelegt.
1234567891011import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())
Cross-Validation ist zuverlässiger, aber langsamer, da das Modell n-mal trainiert und bewertet wird.
Es wird häufig beim Hyperparameter-Tuning eingesetzt, wobei die Kreuzvalidierung für jeden Hyperparameterwert wiederholt wird – zum Beispiel beim Testen mehrerer k-Werte im k-NN.
Dies hilft, die Option zu wählen, die konsequent am besten abschneidet.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen