Kreuzvalidierung in Sklearn

Kreuzvalidierung in Sklearn

„Eine Modellvalidierungstechnik namens Cross-Validation bewertet die Generalisierbarkeit der statistischen Analyseergebnisse für verschiedene Datensätze, die hauptsächlich in Kontexten verwendet werden, in denen das Ziel der Prognose ist. Wir verwenden Kreuzvalidierung, um das Modell beim Training und Verallgemeinern der Daten zu testen. In diesem Artikel wird erläutert, wie er in der Python Sklearn -Bibliothek implementiert wird.”

Was ist Kreuzvalidierung?

Es handelt sich um eine statistische Modellbewertungstechnik. Es konzentriert sich auf die Bestimmung der Genauigkeit des Modells im tatsächlichen Gebrauch und liegt im Wesentlichen im Kontext, in dem das Hauptziel der Prognose besteht. Kreuzvalidierungstests das Modell während des Trainings und seine Fähigkeit, die Daten zu verallgemeinern.

Wie unterscheiden sich die Test- und Trainingendaten unterscheiden?

Daten, die zur Entwicklung eines Modells verwendet werden, wie beispielsweise Daten zur Bestimmung der Koeffizienten einer multilinearen Regression, werden als Trainingsdaten bezeichnet. Sobald das Modell erstellt wurde, wird es anhand der Testdaten getestet, um festzustellen, wie gut das Modell zu den Daten passt.

Implementierung der Kreuzvalidierung in Sklearn

Importieren der erforderlichen Bibliotheken

Numph als NP importieren
von Sklearn.model_selection import train_test_split
aus sklearn importieren Datensätze
von Sklearn import SVM
von Sklearn.model_selection import cross_val_score


Erstellen des Datensatzes

X, y = Datensätze.load_iris (return_x_y = true)
X_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.4, random_state = 0)
print (x_train [: 20], y_train [: 20])


Ausgang

[6. 3.4 4.5 1.6]
[4.8 3.1 1.6 0.2]
[5.8 2.7 5.1 1.9]
[5.6 2.7 4.2 1.3]
[5.6 2.9 3.6 1.3]
[5.5 2.5 4. 1.3]
[6.1 3. 4.6 1.4]
[7.2 3.2 6. 1.8]
[5.3 3.7 1.5 0.2]
[4.3 3. 1.1 0.1]
[6.4 2.7 5.3 1.9]
[5.7 3. 4.2 1.2]
[5.4 3.4 1.7 0.2]
[5.7 4.4 1.5 0.4]
[6.9 3.1 4.9 1.5]
[4.6 3.1 1.5 0.2]
[5.9 3. 5.1 1.8]
[5.1 2.5 3. 1.1]
[4.6 3.4 1.4 0.3]
[6.2 2.2 4.5 1.5]] [1 0 2 1 1 1 1 2 0 0 2 1 0 1 0 2 1 0 1]


Erstellen des Modells und das Finden von Quervalidierungswerten

clf = svm.SVC (kernel = 'linear', c = 1).fit (x_train, y_train)
clf = svm.SVC (kernel = 'linear', c = 1, random_state = 42)
scores = cross_val_score (clf, x, y, cv = 5)
Druck (Punktzahlen)


Ausgang

[0.96666667 1. 0.966666667 0.96666667 1. ]

Abschluss

Wenn der Datensatz zum Training und Test zu klein ist, ist eine Kreuzvalidierung erforderlich. Der Datensatz ist normalerweise in n zufällige Volumensteile aufgeteilt, um das Überanpassungsproblem zu verhindern. Die Technik wird nach dem Training mit N-1-Teilen mit dem verbleibenden Teil bewertet. Der Durchschnitt der Metriken im gesamten N-Trainingstest wird verwendet, um die Gesamtmaßnahme zu erhalten. Später haben wir Sklearn Kreuzvalidierung hinzugefügt, die dafür eine Klasse namens „Modellauswahl“ enthält.