

Bild von Editor
# Einführung
Eines der schwierigsten maschinellen Lernen ist es nicht, das Modell selbst zu erstellen, sondern seine Leistung zu bewerten.
Ein Modell magazine bei einem einzelnen Zug/Take a look at -Cut up hervorragend aussehen, aber wenn sie in der Praxis verwendet werden. Der Grund dafür ist, dass ein einzelner Cut up das Modell nur einmal testet und der Testsatz möglicherweise nicht die volle Variabilität der Daten erfasst, mit denen er in Zukunft ausgesetzt ist. Infolgedessen kann das Modell besser erscheinen als es wirklich ist, was zu überanpassenden oder irreführend hohen Punktzahlen führt. Hier kommt die Kreuzvalidierung ins Spiel.
In diesem Artikel werden wir die Kreuzvalidierung in einfachem Englisch aufschlüsseln, Gründe angeben, warum es zuverlässiger ist als die Maintain-out-Methode, und zeigen, wie sie mit grundlegenden Code und Bildern verwendet werden.
# Was ist Kreuzvalidierung?
Die Kreuzvalidierung ist ein Validierungsverfahren für maschinelles Lernen, um die Leistung eines Modells mithilfe mehrerer Datenuntergruppen zu bewerten, anstatt sich nur auf eine Teilmenge zu verlassen. Die Grundidee hinter diesem Konzept besteht darin, jedem Datenpunkt die Likelihood zu geben, im Trainingssatz und Checks -Set im Rahmen der Bestimmung der endgültigen Leistung zu erscheinen. Das Modell wird daher mehrmals mit verschiedenen Splits bewertet, und das von Ihnen gewählte Leistungsmaß wird dann gemittelt.


Bild des Autors
Der Hauptvorteil der Kreuzvalidierung gegenüber einem einzigen Zugtest-Cut up besteht darin, dass die Kreuzvalidation die Leistung zuverlässig schätzt, da die Leistung des Modells über Falten gemittelt wird, wodurch die Zufälligkeit geglättet wird, in der Punkte als Testsatz beiseite gelegt wurden.
Einfach ausgedrückt könnte ein Testsatz Beispiele enthalten, die zur ungewöhnlich hohen Genauigkeit des Modells führen oder so auftreten, dass dies mit einer anderen Mischung von Beispielen zu einer ungewöhnlich geringen Leistung führen würde. Darüber hinaus nutzt die Kreuzvalidierung unsere Daten besser, was bei der Arbeit mit kleinen Datensätzen von entscheidender Bedeutung ist. Durch Kreuzvalidierung müssen Sie Ihre wertvollen Informationen nicht verschwenden, indem Sie einen großen Teil dauerhaft beiseite stellen. Stattdessen bedeutet Kreuzvalidierung, dass dieselbe Beobachtung zu verschiedenen Zeiten die Zug- oder Testrolle spielen kann. Ihr Modell nimmt im Gegensatz zu einem großen Take a look at mehrere Mini-Aussagen.


Bild des Autors
# Die häufigsten Arten von Kreuzvalidierung
Es gibt verschiedene Arten von Kreuzvalidierung, und hier werfen wir einen Blick auf die vier am häufigsten.
// 1. k-fach Kreuzvalidierung
Die bekannteste Methode der Kreuzvalidierung ist die Ok-fache Kreuzvalidierung. Bei dieser Methode wird der Datensatz in ok gleiche Teile aufgeteilt, auch als Falten bezeichnet. Das Modell ist auf Ok-1-Falten trainiert und auf der Falte getestet, die ausgelassen wurde. Der Vorgang dauert fort, bis jede Faltung einmal ein Testsatz conflict. Die Ergebnisse aller Falten werden zusammen gemittelt, um ein stabiles Maß für die Genauigkeit des Modells zu bilden.
Beispielsweise wird im 5-fachen Kreuzvalidierungsfall der Datensatz in fünf Teile unterteilt, und jeder Teil wird zum Testsatz, bevor alles gemittelt wird, um die endgültige Leistungsbewertung zu berechnen.


Bild des Autors
// 2. Schicht k-fach
Bei der Bewältigung von Klassifizierungsproblemen, bei denen reale Datensätze häufig unausgeglichen sind, wird geschichtete k-fache Kreuzvalidierung bevorzugt. Im Commonplace-Ok-Fold können wir zufällig eine Testfalte mit einer stark verzerrten Klassenverteilung erhalten, beispielsweise, wenn einer der Testfalten nur sehr wenige oder keine Instanzen der Klasse B hat. Schicht k-fach garantiert, dass alle Falten ungefähr die gleichen Proportionen von Klassen haben. Wenn Ihr Datensatz 90% Klasse A und 10% Klasse B hat, hat jede Faltung in diesem Fall etwa 90%: 10% Verhältnis, wodurch Sie eine konsistentere und fairere Bewertung erhalten.


Bild des Autors
// 3..
LEUSE-One-Out Cross-Validation (LOOCV) ist ein extremer Fall von k-fach, bei dem die Anzahl der Falten der Anzahl der Datenpunkte entspricht. Dies bedeutet, dass das Modell für jeden Lauf auf alle bis auf eine Beobachtung trainiert wird und dass eine einzelne Beobachtung als Testsatz verwendet wird.
Der Vorgang wiederholt sich, bis jeder Punkt einmal getestet wurde und die Ergebnisse gemittelt werden. LOOCV kann nahezu unvoreingenommene Leistungsschätzungen liefern, ist jedoch bei größeren Datensätzen äußerst rechnerisch teuer, da das Modell so oft geschult werden muss, wie es Datenpunkte gibt.


Bild des Autors
// 4. Zeitreihe Kreuzvalidierung
Bei der Arbeit mit zeitlichen Daten wie Finanzpreisen, Sensorwerte oder Benutzeraktivitätsprotokollen ist eine zeitreiche Kreuzvalidierung erforderlich. Nach dem Zufallsprinzip der Daten würde die natürliche Reihenfolge der Zeit- und Risikodatenverletzung durch die Zukunft der Vergangenheit einbrechen.
Stattdessen werden Falten chronologisch entweder ein expandierendes Fenster (allmählich erhöht die Größe des Trainingssatzes) oder ein Rollfenster (ein Trainingssatz mit fester Größe, das mit der Zeit voranschreitet) verwendet. Dieser Ansatz respektiert die zeitlichen Abhängigkeiten und erzeugt realistische Leistungsschätzungen für Prognoseaufgaben.


Bild des Autors
# Vorspannungsvarianz-Kompromiss und Kreuzvalidierung
Die Kreuzvalidierung leistet einen großen Beitrag zur Bekämpfung des Vorspannungsvarianz-Kompromisses in der Modellbewertung. Bei einem einzigen Zugtest aufgeteilt ist die Varianz Ihrer Leistungsschätzung hoch, da Ihr Ergebnis stark davon abhängt, welche Zeilen im Testsatz landen.
Wenn Sie jedoch die Kreuzvalidierung verwenden, haben Sie die Leistung über mehrere Testsätze durchschnittlich, was die Varianz verringert und eine viel stabilere Schätzung der Leistung Ihres Modells liefert. Die Kreuzvalidierung wird sicherlich keine Verzerrung vollständig beseitigen, da kein Maß an Kreuzvalidierung einen Datensatz mit schlechten Beschriftungen oder systematischen Fehlern auflöst. In quick allen praktischen Fällen wird es jedoch eine viel bessere Annäherung an die Leistung Ihres Modells bei unsichtbaren Daten als ein einzelner Take a look at sein.
# Beispiel in Python mit Scikit-Be taught
Dieses kurze Beispiel trainiert ein logistisches Regressionsmodell im IRIS-Datensatz mithilfe einer 5-fachen Kreuzvalidierung (über Scikit-Be taught). Die Ausgabe zeigt die Punktzahlen für jede Falte und die durchschnittliche Genauigkeit, die viel mehr auf die Leistung hinweist, als jeder einmalige Take a look at liefern könnte.
from sklearn.model_selection import cross_val_score, KFold
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
mannequin = LogisticRegression(max_iter=1000)
kfold = KFold(n_splits=5, shuffle=True, random_state=42)
scores = cross_val_score(mannequin, X, y, cv=kfold)
print("Cross-validation scores:", scores)
print("Common accuracy:", scores.imply())
# Einpacken
Die Kreuzvalidierung ist eine der robustesten Techniken zur Bewertung von Modellen für maschinelles Lernen, da ein Datentest in viele Datentests verwandelt wird und Ihnen ein viel zuverlässigeres Bild der Leistung Ihres Modells bietet. Im Gegensatz zu der Maintain-out-Methode oder einem einzigen Zugtest aufgeteilt, reduziert dies die Wahrscheinlichkeit, dass sie auf eine beliebige Datensatzpartition übernommen wird, und nutzt die einzelnen Daten besser.
Während wir dies abschließen, sind einige der Greatest Practices, die man beachten sollte,:
- Mischen Sie Ihre Daten vor der Spaltung (außer in Zeitreihen)
- Verwenden Sie geschichtetes Ok-Fold für Klassifizierungsaufgaben
- Achten Sie auf Berechnungskosten mit großem Ok oder LOOCV
- Verhindern Sie Datenleckage durch Anpassung von Skalierern, Encodern und der Auswahl nur in der Trainingsfalte
Denken Sie beim Entwickeln Ihres nächsten Modells daran, dass sich einfach auf einen Testset mit irreführenden Interpretationen verlassen kann. Wenn Sie die k-fache Kreuzvalidierung oder ähnliche Methoden verwenden, können Sie besser verstehen, wie Ihr Modell in der realen Welt abschneidet, und genau das zählt doch.
Josep Ferrer ist ein Analyseingenieur aus Barcelona. Er absolvierte das Physik -Engineering und arbeitet derzeit im Bereich Information Science, der für die menschliche Mobilität angewendet wurde. Er ist ein Teilzeit-Inhaltsersteller, der sich auf Datenwissenschaft und -technologie konzentriert. Josep schreibt über alle Dinge KI und deckt die Anwendung der laufenden Explosion vor Ort ab.
