I denne artikkelen, la oss lære hvordan du gjør en togtestdeling ved å bruke Sklearn i Python.
Train Test Split ved hjelp av Sklearn
Train_test_split()-metoden brukes til å dele opp dataene våre i tog- og testsett.
Først må vi dele inn dataene våre i funksjoner (X) og etiketter (y). Datarammen blir delt inn i X_train, X_test , y_train og y_test. X_train og y_train sett brukes til trening og tilpasning av modellen. X_test- og y_test-settene brukes til å teste modellen hvis den forutsier de riktige utgangene/etikettene. vi kan eksplisitt teste størrelsen på toget og testsettene. Det foreslås å holde våre togsett større enn testsettene.
Togsett: Treningsdatasettet er et sett med data som ble brukt for å passe til modellen. Datasettet som modellen er trent på. Disse dataene blir sett og lært av modellen.
slå sammen sortering javaTestsett: Testdatasettet er et undersett av treningsdatasettet som brukes til å gi en nøyaktig evaluering av en endelig modelltilpasning.
valideringssett: Et valideringsdatasett er et utvalg av data fra modellens treningssett som brukes til å estimere modellytelse mens du justerer modellens hyperparametre.
som standard er 25 % av dataene våre testsett og 75 % data går til treningstester.
Syntaks: sklearn.model_selection.train_test_split()
parametere:
*matriser: sekvens av indekserbare. Lister, numpy arrays, scipy-sparse matriser og panda-datarammer er alle gyldige innganger. test_size: int eller float, som standard Ingen. Hvis den flyter, skal den være mellom 0,0 og 1,0 og representere prosentandelen av datasettet som skal testes. Hvis int brukes, refererer det til det totale antallet testprøver. Hvis verdien er Ingen, brukes komplementet til togstørrelsen. Den settes til 0,25 hvis togstørrelsen også er Ingen. train_size: int eller float, som standard Ingen. random_state: int, som standard Ingen. Styrer hvordan dataene stokkes før delingen implementeres. For repeterbar utgang på tvers av flere funksjonskall, send en int.
shuffle: boolsk objekt , som standard Sann. Hvorvidt dataene skal blandes før de deles. Stratify må være Ingen hvis shuffle=False. stratify: array-like object , som standard er det Ingen. Hvis Ingen er valgt, blir dataene stratifisert ved å bruke disse som klasseetiketter.returnerer: splitting: liste
Eksempel 1:
Numpy-, panda- og scikit-learn-pakkene importeres. CSV-filen importeres. X inneholder funksjonene og y er etikettene. vi deler datarammen i X og y og utfører togtestsplitt på dem. random_state fungerer som et numpy frø, det brukes for datareproduserbarhet. test_size er gitt som 0,25, det betyr at 25 % av dataene våre går inn i teststørrelsen. 1-test_size er togstørrelsen vår, vi trenger ikke spesifisere det. shuffle =True, blander dataene våre før de søles. X_train- og X_test-settene brukes til å tilpasse og trene modellen vår, og testsettene brukes til testing og validering.
Klikk på for å få tilgang til CSV-filen her.
Python3
selen tutorial 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'>)> > # 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())> |
>
>
Produksjon:
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,)>
Eksempel 2:
I dette eksemplet følges de samme trinnene, i stedet for å spesifisere test_size spesifiserer vi tog_size. test_size er 1-tog_size. 80 % av dataene er togsett, så 20 % av dataene våre er testsettet vårt. Hvis vi ikke spesifiserer størrelsene på test- og togsett som standard vil test_size være 0,25. X_train og y_train har samme form og indekser, ettersom y_train er etiketten for X_train-funksjoner. det samme gjelder X_test og y_test.
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)> |
.tostring java
>
>
Produksjon:
(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,)>