logo

Harjoitustestin jakaminen Sklearnilla Pythonissa

Tässä artikkelissa opitaan tekemään junatestijako Sklearnilla Pythonissa.

Junatestin jako Sklearnilla

Train_test_split()-menetelmää käytetään tietojen jakamiseen juna- ja testijoukkoon.



Ensin meidän on jaettava tietomme ominaisuuksiin (X) ja tunnisteisiin (y). Tietokehys jaetaan osioihin X_train, X_test, y_train ja y_test. Koulutukseen ja mallin sovittamiseen käytetään X_train- ja y_train -sarjoja. X_test- ja y_test-joukkoja käytetään mallin testaamiseen, jos se ennustaa oikeat tulosteet/tunnisteet. voimme eksplisiittisesti testata junan ja testisarjojen kokoa. On suositeltavaa pitää junasarjamme koesarjaa suurempina.

Junasetti: Harjoitustietojoukko on joukko tietoja, joita käytettiin mallin sovittamiseksi. Tietojoukko, johon mallia opetetaan. Malli näkee ja oppii nämä tiedot.

Testisarja: Testitietojoukko on harjoitustietojoukon osajoukko, jota käytetään antamaan tarkka arvio lopullisesta mallisovituksesta.



vahvistussarja: Validointitietojoukko on mallisi harjoitusjoukon tiedoista näyte, jota käytetään mallin suorituskyvyn arvioimiseen, kun mallin hyperparametreja viritetään.

oletusarvoisesti 25 % tiedoistamme on testijoukkoa ja 75 % tiedoista menee harjoitustesteihin.

Syntaksi: sklearn.model_selection.train_test_split()



parametrit:

Tietokoneverkot
    *taulukot: indeksoitavien kohteiden sarja. Listat, numpy-taulukot, scipy-sparse-matriisit ja panda-tietokehykset ovat kaikki kelvollisia syötteitä. test_size: int tai float, oletuksena Ei mitään. Jos kelluva, sen tulee olla välillä 0,0–1,0 ja edustaa testattavan datajoukon prosenttiosuutta. Jos käytetään int:tä, se viittaa testinäytteiden kokonaismäärään. Jos arvo on Ei mitään, käytetään junan koon komplementtia. Se asetetaan arvoon 0,25, jos junan koko on myös Ei mitään. train_size: int tai float, oletuksena Ei mitään. random_state : int, oletuksena Ei mitään. Ohjaa, kuinka tiedot sekoitetaan ennen jaon toteuttamista. Jos haluat toistettavan tulosteen useissa funktiokutsuissa, välitä int.
    shuffle: Boolen objekti , oletuksena True. Pitäisikö tiedot sekoittaa ennen jakamista. Stratify on oltava Ei mitään, jos shuffle=False. stratify: array-like object , oletuksena se on Ei mitään. Jos valitaan Ei mitään, tiedot kerrostetaan käyttämällä näitä luokkatunnisteina.

palauttaa: jakaminen: lista

Esimerkki 1:

Numpy-, pandas- ja scikit-learn-paketit tuodaan maahan. CSV-tiedosto tuodaan. X sisältää ominaisuudet ja y on tunnisteet. jaamme datakehyksen X:ksi ja y:ksi ja suoritamme niille junatestijaon. random_state toimii kuin numpy siemen, sitä käytetään tietojen toistettavuuteen. test_size on 0,25, mikä tarkoittaa, että 25 % tiedoistamme menee testikokoomme. 1-test_size on junan koko, meidän ei tarvitse määrittää sitä. shuffle = Totta, sekoittaa tietomme ennen vuotamista. X_train- ja X_test-sarjoja käytetään mallimme sovittamiseen ja kouluttamiseen, ja testisarjoja käytetään testaamiseen ja validointiin.

Pääset CSV-tiedostoon napsauttamalla tässä.

Python 3




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

>

>

Lähtö:

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

Esimerkki 2:

Tässä esimerkissä noudatetaan samoja vaiheita, testin_koon määrittämisen sijaan määritämme junan_koon. test_size on 1-train_size. 80 % tiedoista on junasarjaa, joten 20 % tiedoistamme on testijoukkoamme. Jos emme määritä testi- ja junajoukkojen kokoa, oletuksena testin_koko on 0,25. X_trainilla ja y_trainilla on sama muoto ja indeksit, koska y_train on X_train-ominaisuuksien tunniste. sama pätee X_testiin ja y_testiin.

Python 3




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

>

>

Lähtö:

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