logo

Kaip atlikti treniruočių testo padalijimą naudojant „Sklearn“ programoje Python

Šiame straipsnyje sužinokime, kaip atlikti traukinio bandymo padalijimą naudojant „Sklearn“ programoje Python.

Traukinio testo padalijimas naudojant Sklearn

Train_test_split() metodas naudojamas mūsų duomenims padalyti į traukinių ir bandymų rinkinius.



Pirmiausia turime suskirstyti savo duomenis į funkcijas (X) ir etiketes (y). Duomenų rėmelis yra padalintas į X_train, X_test, y_train ir y_test. Treniruotėms ir modelio pritaikymui naudojami rinkiniai X_train ir y_train. X_test ir y_test rinkiniai naudojami modeliui išbandyti, jei jis numato tinkamus išėjimus / etiketes. galime aiškiai išbandyti traukinio ir bandymų rinkinių dydį. Siūloma, kad mūsų traukinių sąstatai būtų didesni nei bandomieji.

dvejetainis į bcd

Traukinio komplektas: Mokymo duomenų rinkinys yra duomenų rinkinys, kuris buvo panaudotas modeliui pritaikyti. Duomenų rinkinys, pagal kurį modelis mokomas. Šiuos duomenis mato ir sužino modelis.

Bandymo rinkinys: Bandymo duomenų rinkinys yra mokymo duomenų rinkinio poaibis, kuris naudojamas tiksliai įvertinti galutinį modelio tinkamumą.



patvirtinimo rinkinys: Patvirtinimo duomenų rinkinys yra jūsų modelio mokymo rinkinio duomenų pavyzdys, naudojamas modelio našumui įvertinti derinant modelio hiperparametrus.

pagal numatytuosius nustatymus 25 % mūsų duomenų yra bandymų rinkiniai, o 75 % duomenų patenka į treniruočių testus.

Sintaksė: sklearn.model_selection.train_test_split()



parametrai:

    *masyvai: indeksuojamųjų seka. Sąrašai, numpy masyvai, scipy-sparse matricos ir pandos duomenų rėmeliai yra tinkami įvestis. test_size: int arba float, pagal numatytuosius nustatymus Nėra. Jei slankioji, ji turėtų būti nuo 0,0 iki 1,0 ir reikšti bandomo padalyti duomenų rinkinio procentinę dalį. Jei naudojamas int, tai reiškia bendrą tiriamųjų mėginių skaičių. Jei reikšmė yra None, naudojamas traukinio dydžio papildymas. Jis bus nustatytas į 0,25, jei traukinio dydis taip pat yra Nėra. train_size: int arba float, pagal numatytuosius nustatymus Nėra. random_state : int, pagal numatytuosius nustatymus Nėra. Valdo, kaip duomenys maišomi prieš įgyvendinant padalijimą. Jei norite, kad išvestis būtų kartojama per kelis funkcijų iškvietimus, perduokite int.
    shuffle: loginis objektas , pagal numatytuosius nustatymus True. Ar prieš skaidant duomenis reikia sumaišyti, ar ne. Stratify turi būti None, jei shuffle=False. stratify: į masyvą panašus objektas , pagal numatytuosius nustatymus jo nėra. Jei pasirinkta Nėra, duomenys stratifikuojami naudojant juos kaip klasių etiketes.

grąžina: skaidymas: sąrašas

1 pavyzdys:

Numpy, pandas ir scikit-learn paketai importuojami. CSV failas importuojamas. X yra ypatybės, o y yra etiketės. mes padalijame duomenų kadrą į X ir y ir atliekame traukinio bandomąjį padalijimą. Random_state veikia kaip niūri sėkla, ji naudojama duomenų atkuriamumui užtikrinti. test_size yra 0,25 , tai reiškia, kad 25 % mūsų duomenų patenka į mūsų testo dydį. 1-test_size yra mūsų traukinio dydis, mums to nurodyti nereikia. shuffle =Tiesa, sumaišo mūsų duomenis prieš išsiliejimą. „X_train“ ir „X_test“ rinkiniai naudojami mūsų modeliui pritaikyti ir mokyti, o bandymų rinkiniai naudojami testavimui ir patvirtinimui.

Norėdami pasiekti CSV failą, spustelėkite čia.

kas yra uri

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

json failą

>

aktorė Zeenat Aman
>

Išvestis:

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

2 pavyzdys:

Šiame pavyzdyje atliekami tie patys veiksmai, užuot nurodyę test_size, nurodome traukinio_dydis. test_size yra 1-traukinio_dydis. 80% duomenų yra traukinių rinkinys, taigi 20% mūsų duomenų yra mūsų bandymų rinkinys. Jei nenurodysime testo ir traukinių rinkinių dydžių, pagal numatytuosius nustatymus test_size bus 0,25. X_train ir y_train turi tą pačią formą ir indeksus, nes y_train yra X_train funkcijų etiketė. tas pats pasakytina apie X_test ir y_test.

Python3


mylintis kriketas



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

>

>

Išvestis:

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