Die Zerlegung des Datensatzes in einen Trainingssatz kann uns helfen, das Modell zu verstehen, was für die Verallgemeinerung des Modells auf neue, unsichtbare Daten sehr wichtig ist. Ein Modell lässt sich möglicherweise nicht gut auf neue, noch nicht sichtbare Daten verallgemeinern, wenn es überangepasst ist. Daher können keine guten Vorhersagen getroffen werden.
Eine geeignete Validierungsstrategie ist der erste Schritt, um erfolgreich gute Vorhersagen zu erstellen und den Geschäftswert von KI-Modellen zu nutzen. In diesem Artikel wurden einige gängige Strategien zur Datenaufteilung zusammengestellt.
Teilen Sie den Datensatz in Trainings- und Validierungsteile auf, mit 80 % Training und 20 % Validierung. Sie können dies mithilfe der Zufallsstichprobe von Scikit tun.
Zunächst muss der zufällige Startwert korrigiert werden, da sonst die gleiche Datenaufteilung nicht verglichen werden kann und die Ergebnisse beim Debuggen nicht reproduziert werden können. Wenn der Datensatz klein ist, gibt es keine Garantie dafür, dass die Validierungsaufteilung nicht mit der Trainingsaufteilung korreliert. Wenn die Daten unausgeglichen sind, erhalten Sie nicht das gleiche Aufteilungsverhältnis.
Eine einfache Aufteilung kann uns also nur beim Entwickeln und Debuggen helfen. Echtes Training ist nicht perfekt genug, daher können uns die folgenden Aufteilungsmethoden helfen, diese Probleme zu beseitigen.
teilt den Datensatz in k Partitionen auf. Im Bild unten ist der Datensatz in 5 Partitionen unterteilt.
Wählen Sie eine Partition als Validierungsdatensatz aus, während die anderen Partitionen als Trainingsdatensatz dienen. Dadurch wird das Modell auf jedem unterschiedlichen Satz von Partitionen trainiert.
Schließlich werden K verschiedene Modelle erhalten, und diese Modelle werden unter Verwendung der Integrationsmethode bei späteren Überlegungen und Vorhersagen zusammen verwendet.
K ist normalerweise auf [3,5,7,10,20] eingestellt.
Wenn Sie die Modellleistung mit geringer Vorspannung überprüfen möchten, verwenden Sie einen höheren K [20]. Wenn Sie ein Modell für die Variablenauswahl erstellen, verwenden Sie ein niedriges k [3,5] und das Modell weist eine geringere Varianz auf.
Vorteile:
Frage:
kann das Verhältnis zwischen verschiedenen Klassen in jeder Falte beibehalten. Wenn der Datensatz unausgeglichen ist, hat Klasse1 beispielsweise 10 Beispiele und Klasse2 100 Beispiele. Stratified-kFold erstellt jede Faltenklassifizierung mit dem gleichen Verhältnis wie der Originaldatensatz
Die Idee ähnelt der K-Falten-Kreuzvalidierung, jedoch mit dem gleichen Verhältnis für jede Falte wie der Originaldatensatz.
Das anfängliche Verhältnis zwischen den Klassen kann in jedem Split beibehalten werden. Wenn Ihr Datensatz groß ist, behält die Kreuzvalidierung der K-Faltung möglicherweise auch die Proportionen bei, diese ist jedoch stochastisch, während Stratified-kFold deterministisch ist und bei kleinen Datensätzen verwendet werden kann.
Bootstrap und Subsampling ähneln der K-Fold-Kreuzvalidierung, haben jedoch keine festen Falten. Es wählt zufällig einige Daten aus dem Datensatz aus, verwendet andere Daten zur Validierung und wiederholt sie n-mal.
Bootstrap = alternierende Stichprobe, die wir in früheren Artikeln ausführlich vorgestellt haben.
Wann sollte man es verwenden? Bootstrap und Subsampling können nur verwendet werden, wenn der Standardfehler des geschätzten metrischen Fehlers groß ist. Dies kann auf Ausreißer im Datensatz zurückzuführen sein.
Normalerweise wird beim maschinellen Lernen die k-fache Kreuzvalidierung als Ausgangspunkt verwendet. Wenn der Datensatz unausgeglichen ist, können Bootstrap oder andere Methoden verwendet werden Verbessern Sie die Datenfaltung.
Das obige ist der detaillierte Inhalt vonWie teile ich einen Datensatz richtig auf? Zusammenfassung von drei gängigen Methoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!