Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Wie teile ich einen Datensatz richtig auf? Zusammenfassung von drei gängigen Methoden

Wie teile ich einen Datensatz richtig auf? Zusammenfassung von drei gängigen Methoden

WBOY
WBOYnach vorne
2023-04-08 18:51:071448Durchsuche

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.

Einfache Aufteilung von Training und Tests

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.

Wie teile ich einen Datensatz richtig auf? Zusammenfassung von drei gängigen Methoden

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.

K-fache Kreuzvalidierung

teilt den Datensatz in k Partitionen auf. Im Bild unten ist der Datensatz in 5 Partitionen unterteilt.

Wie teile ich einen Datensatz richtig auf? Zusammenfassung von drei gängigen Methoden

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:

  • Durch die Mittelung von Modellvorhersagen können Sie die Modellleistung bei unbekannten Daten aus derselben Verteilung verbessern.
  • Dies ist eine weit verbreitete Methode, um gute Serienmodelle zu erhalten.
  • Sie können verschiedene Integrationstechniken verwenden, um Vorhersagen für alle Daten im Datensatz zu erstellen und diese Vorhersagen zur Verbesserung des Modells zu verwenden, das als OOF (Out-Fold-Vorhersage) bezeichnet wird.

Frage:

  • Wenn Sie einen unausgeglichenen Datensatz haben, verwenden Sie Stratified-kFold.
  • Wenn Sie ein Modell für alle Datensätze neu trainieren, können Sie seine Leistung nicht mit einem Modell vergleichen, das mit k-Fold trainiert wurde. Da dieses Modell auf k-1 trainiert wird, nicht auf dem gesamten Datensatz.

Stratified-kFold

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.

Wie teile ich einen Datensatz richtig auf? Zusammenfassung von drei gängigen Methoden

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

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.

Zusammenfassung

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen