logo

Come eseguire il test del treno diviso utilizzando Sklearn in Python

In questo articolo, impariamo come eseguire una suddivisione del test del treno utilizzando Sklearn in Python.

Prova il treno diviso utilizzando Sklearn

Il metodo train_test_split() viene utilizzato per dividere i nostri dati in set di train e test.



Innanzitutto, dobbiamo dividere i nostri dati in caratteristiche (X) ed etichette (y). Il dataframe viene diviso in X_train,X_test , y_train e y_test. I set X_train e y_train vengono utilizzati per l'addestramento e l'adattamento del modello. I set X_test e y_test vengono utilizzati per testare il modello se prevede gli output/etichette corretti. possiamo testare esplicitamente la dimensione del treno e dei set di test. Si suggerisce di mantenere i nostri convogli più grandi dei set di prova.

Trenino elettrico: Il set di dati di addestramento è un insieme di dati che è stato utilizzato per adattarsi al modello. Il set di dati su cui viene addestrato il modello. Questi dati vengono visti e appresi dal modello.

Insieme di prova: Il set di dati di test è un sottoinsieme del set di dati di training utilizzato per fornire una valutazione accurata dell'adattamento del modello finale.



insieme di convalida: Un set di dati di convalida è un campione di dati dal set di training del modello che viene utilizzato per stimare le prestazioni del modello durante l'ottimizzazione degli iperparametri del modello.

installazione della torcia

per impostazione predefinita, il 25% dei nostri dati è un set di test e il 75% dei dati viene inserito nei test di addestramento.

Sintassi: sklearn.model_selection.train_test_split()



parametri:

    *array: sequenza di indicizzabili. Elenchi, array numpy, matrici scipy-sparse e dataframe panda sono tutti input validi. test_size: int o float, per impostazione predefinita Nessuno. Se float, dovrebbe essere compreso tra 0,0 e 1,0 e rappresentare la percentuale del set di dati da testare suddiviso. Se viene utilizzato int, si riferisce al numero totale di campioni di prova. Se il valore è Nessuno, viene utilizzato il complemento della dimensione del treno. Verrà impostato su 0,25 se anche la dimensione del treno è Nessuna. train_size: int o float, per impostazione predefinita Nessuno. random_state: int, per impostazione predefinita Nessuno. Controlla il modo in cui i dati vengono mescolati prima che venga implementata la suddivisione. Per un output ripetibile tra diverse chiamate di funzione, passare un int.
    shuffle: oggetto booleano, per impostazione predefinita True. Indica se i dati devono essere mescolati o meno prima della suddivisione. La stratificazione deve essere Nessuna se shuffle=False. stratify: oggetto simile ad un array, per impostazione predefinita è None. Se si seleziona Nessuno, i dati vengono stratificati utilizzando questi come etichette di classe.

ritorna: suddivisione: elenco

Esempio 1:

Vengono importati i pacchetti Numpy, Pandas e Scikit-Learn. Il file CSV viene importato. X contiene le caratteristiche e y sono le etichette. dividiamo il dataframe in X e y ed eseguiamo la suddivisione del test del treno su di essi. random_state agisce come un seme numpy, viene utilizzato per la riproducibilità dei dati. test_size è dato come 0.25 , significa che il 25% dei nostri dati va nella dimensione del nostro test. 1-test_size è la dimensione del nostro treno, non è necessario specificarlo. shuffle =Vero, mescola i nostri dati prima che si diffondano. I set X_train e X_test vengono utilizzati per adattare e addestrare il nostro modello e i set di test vengono utilizzati per testare e convalidare.

Per accedere al file CSV fare clic su Qui.

Python3


float in stringa



# 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())>

>

>

Produzione:

 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,)>

Esempio 2:

In questo esempio vengono seguiti gli stessi passaggi, invece di specificare test_size specifichiamo train_size. test_size è 1-train_size. L'80% dei dati è un set di treni, quindi il 20% dei nostri dati è il nostro set di test. Se non specifichiamo le dimensioni dei test e dei set di treni, per impostazione predefinita test_size sarà 0,25. X_train e y_train hanno la stessa forma e gli stessi indici, poiché y_train è l'etichetta per le funzionalità X_train. lo stesso vale con X_test e y_test.

Multiplexer 2 a 1

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'>)> 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)>

>

>

Produzione:

(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,)>