logo

Kako narediti razdelitev testa usposabljanja z uporabo Sklearn v Pythonu

V tem članku se naučimo, kako narediti testno razdelitev vlaka z uporabo Sklearn v Pythonu.

Usposobite testno razdelitev z uporabo Sklearn

Metoda train_test_split() se uporablja za razdelitev naših podatkov v nize za vlak in test.



mylivecricket za kriket v živo

Najprej moramo naše podatke razdeliti na značilnosti (X) in oznake (y). Podatkovni okvir je razdeljen na X_train, X_test, y_train in y_test. Kompleti X_train in y_train se uporabljajo za šolanje in montažo modela. Nabora X_test in y_test se uporabljata za testiranje modela, če napoveduje prave rezultate/oznake. lahko eksplicitno testiramo velikost vlaka in testnih nizov. Predlagamo, da so naše garniture vlakov večje od testnih garnitur.

Komplet vlaka: Nabor podatkov za usposabljanje je nabor podatkov, ki je bil uporabljen za prilagajanje modelu. Nabor podatkov, na podlagi katerega se uri model. Te podatke model vidi in se jih nauči.

Testni niz: Testni nabor podatkov je podmnožica nabora podatkov o usposabljanju, ki se uporablja za natančno oceno prileganja končnega modela.



potrditveni niz: Nabor podatkov za preverjanje veljavnosti je vzorec podatkov iz učnega nabora vašega modela, ki se uporablja za oceno zmogljivosti modela med nastavljanjem hiperparametrov modela.

privzeto je 25 % naših podatkov testno nastavljenih, 75 % podatkov pa gre v teste usposabljanja.

Sintaksa: sklearn.model_selection.train_test_split()



parametri:

    *matrike: zaporedje indeksiranih. Seznami, matrike numpy, scipy-sparse matrike in podatkovni okviri pandas so vsi veljavni vnosi. test_size: int ali float, privzeto Brez. Če je plavajoča, mora biti med 0,0 in 1,0 in predstavljati odstotek nabora podatkov za preskusno razdelitev. Če je uporabljeno int, se nanaša na skupno število testnih vzorcev. Če je vrednost None, se uporabi komplement velikosti vlaka. Nastavljena bo na 0,25, če je tudi velikost vlaka Brez. train_size: int ali float, privzeto Brez. random_state : int, privzeto Brez. Nadzoruje, kako se podatki premešajo, preden se izvede delitev. Za ponovljiv izhod v več klicih funkcij posredujte int.
    shuffle: logični objekt, privzeto True. Ali je treba podatke pred delitvijo premešati ali ne. Stratify mora biti None, če je shuffle=False. stratify: array-like object , privzeto je None. Če je izbrano Brez, so podatki stratificirani z uporabo teh kot oznak razreda.

vrne: delitev: seznam

Primer 1:

Paketi numpy, pandas in scikit-learn so uvoženi. Datoteka CSV je uvožena. X vsebuje funkcije, y pa oznake. podatkovni okvir razdelimo na X in y in na njiju izvedemo testno razdelitev vlaka. random_state deluje kot seme numpy, uporablja se za ponovljivost podatkov. test_size je podana kot 0,25, kar pomeni, da gre 25 % naših podatkov v našo testno velikost. 1-test_size je velikost našega vlaka, tega nam ni treba določiti. shuffle =Res, premeša naše podatke pred razlivanjem. Kompleta X_train in X_test se uporabljata za prilagajanje in usposabljanje našega modela, testni nizi pa se uporabljajo za testiranje in validacijo.

Za dostop do datoteke CSV kliknite tukaj

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

>

>

Izhod:

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

Primer 2:

V tem primeru sledimo istim korakom, namesto podajanja test_size določimo train_size. test_size je 1-train_size. 80 % podatkov je nabor vlakov, tako da je 20 % naših podatkov naš testni nabor. Če ne podamo velikosti testnih in učnih nizov, bo privzeta vrednost test_size 0,25. X_train in y_train imata enako obliko in indekse, saj je y_train oznaka za funkcije X_train. enako velja za X_test in 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)>

>

>

Izhod:

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