logo

So führen Sie eine Zugtestaufteilung mit Sklearn in Python durch

In diesem Artikel erfahren Sie, wie Sie mit Sklearn in Python eine Zugtestaufteilung durchführen.

Trainieren Sie die Testaufteilung mit Sklearn

Die Methode train_test_split() wird verwendet, um unsere Daten in Zug- und Testsätze aufzuteilen.



Zuerst müssen wir unsere Daten in Features (X) und Labels (y) unterteilen. Der Datenrahmen wird in X_train,X_test, y_train und y_test unterteilt. X_train- und y_train-Sets werden zum Training und Anpassen des Modells verwendet. Die X_test- und y_test-Sets werden zum Testen des Modells verwendet, ob es die richtigen Ausgaben/Beschriftungen vorhersagt. Wir können die Größe des Zuges und der Testsätze explizit testen. Es wird empfohlen, unsere Zugsets größer zu halten als die Testsets.

Zugset: Der Trainingsdatensatz ist ein Datensatz, der zur Anpassung an das Modell verwendet wurde. Der Datensatz, auf dem das Modell trainiert wird. Diese Daten werden vom Modell gesehen und gelernt.

Testsatz: Der Testdatensatz ist eine Teilmenge des Trainingsdatensatzes, die verwendet wird, um eine genaue Bewertung einer endgültigen Modellanpassung zu ermöglichen.



schwebend in CSS

Validierungssatz: Ein Validierungsdatensatz ist eine Stichprobe von Daten aus dem Trainingssatz Ihres Modells, die zur Schätzung der Modellleistung bei gleichzeitiger Optimierung der Hyperparameter des Modells verwendet wird.

Standardmäßig sind 25 % unserer Daten Testdatensätze und 75 % der Daten fließen in Trainingstests.

Syntax: sklearn.model_selection.train_test_split()



Parameter:

    *Arrays: Folge von Indexables. Listen, Numpy-Arrays, Scipy-Sparse-Matrizen und Pandas-Datenrahmen sind allesamt gültige Eingaben. test_size: int oder float, standardmäßig Keine. Bei Float sollte der Wert zwischen 0,0 und 1,0 liegen und den Prozentsatz des zu testenden Datensatzes darstellen. Wenn int verwendet wird, bezieht es sich auf die Gesamtzahl der Testproben. Wenn der Wert None ist, wird das Komplement der Zuggröße verwendet. Der Wert wird auf 0,25 gesetzt, wenn die Zuggröße ebenfalls „Keine“ ist. train_size: int oder float, standardmäßig Keine. random_state: int, standardmäßig Keine. Steuert, wie die Daten gemischt werden, bevor die Aufteilung implementiert wird. Für eine wiederholbare Ausgabe über mehrere Funktionsaufrufe hinweg übergeben Sie ein int.
    shuffle: boolesches Objekt, standardmäßig True. Ob die Daten vor der Aufteilung gemischt werden sollen oder nicht. Stratify muss None sein, wenn shuffle=False. stratify: Array-ähnliches Objekt, standardmäßig ist es None. Wenn „Keine“ ausgewählt ist, werden die Daten geschichtet, wobei diese als Klassenbezeichnungen verwendet werden.

kehrt zurück: Aufteilung: Liste

Beispiel 1:

Die Pakete Numpy, Pandas und Scikit-Learn werden importiert. Die CSV-Datei wird importiert. X enthält die Features und y sind die Beschriftungen. Wir teilen den Datenrahmen in X und Y auf und führen eine Zugtestaufteilung für sie durch. random_state verhält sich wie ein Numpy-Seed und dient der Datenreproduzierbarkeit. test_size wird mit 0,25 angegeben, was bedeutet, dass 25 % unserer Daten in unsere Testgröße einfließen. 1-test_size ist unsere Zuggröße, das müssen wir nicht angeben. shuffle =True, mischt unsere Daten, bevor sie verschüttet werden. Die X_train- und X_test-Sets werden zum Anpassen und Trainieren unseres Modells verwendet und die Testsets werden zum Testen und Validieren verwendet.

Um auf die CSV-Datei zuzugreifen, klicken Sie auf Hier.

was xd bedeutet

Python3




# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test,> y_train, y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >test_size>=>0.25>,> >shuffle>=>True>)> > # printing out train and test sets> > print>(>'X_train : '>)> print>(X_train.head())> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>('')> print>(>'y_test : '>)> print>(y_test.head())>

>

>

Ausgabe:

 Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 99 3478 52 4270 184 3479 139 3171 107 3399 Name: Head Size(cm^3), dtype: int64 (177,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (60,) y_train : 99 1270 52 1335 184 1160 139 1127 107 1226 Name: Brain Weight(grams), dtype: int64 (177,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (60,)>

Beispiel 2:

In diesem Beispiel werden die gleichen Schritte ausgeführt, statt test_size geben wir train_size an. test_size ist 1-train_size. 80 % der Daten sind Zugsätze, also sind 20 % unserer Daten unser Testsatz. Wenn wir die Größe der Test- und Zugsätze nicht standardmäßig angeben, beträgt test_size 0,25. X_train und y_train haben die gleiche Form und die gleichen Indizes, da y_train die Bezeichnung für X_train-Features ist. Das Gleiche gilt für X_test und y_test.

Python3

Umkehren der Zeichenfolge in Java




# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection>import> train_test_split> > # importing data> df>=> pd.read_csv(>'headbrain1.csv'>)> print>(df.shape)> > # head of the data> print>(df.head())> > X>=> df[>'Head Size(cm^3)'>]> y>=>df[>'Brain Weight(grams)'>]> > # using the train test split function> X_train, X_test, y_train,> y_test>=> train_test_split(X,y ,> >random_state>=>104>,> >train_size>=>0.8>, shuffle>=>True>)> > # printing out train and test sets> print>(>'X_train : '>)> print>(X_train.head())> print>(X_train.shape)> print>('')> print>(>'X_test : '>)> print>(X_test.head())> print>(X_test.shape)> print>('')> print>(>'y_train : '>)> print>(y_train.head())> print>(y_train.shape)> print>('')> print>(>'y_test : '>)> print>(y_test.head())> print>(y_test.shape)>

Was ist Winterschlaf?
>

>

Ausgabe:

(237, 2) Head Size(cm^3) Brain Weight(grams) 0 4512 1530 1 3738 1297 2 4261 1335 3 3777 1282 4 4177 1590 X_train : 110 3695 164 3497 58 3935 199 3297 182 4005 Name: Head Size(cm^3), dtype: int64 (189,) X_test : 66 3415 113 3594 135 3436 227 4204 68 4430 Name: Head Size(cm^3), dtype: int64 (48,) y_train : 110 1310 164 1280 58 1330 199 1220 182 1280 Name: Brain Weight(grams), dtype: int64 (189,) y_test : 66 1310 113 1290 135 1235 227 1380 68 1510 Name: Brain Weight(grams), dtype: int64 (48,)>