logo

Ako urobiť vlakové testovacie rozdelenie pomocou Sklearnu v Pythone

V tomto článku sa naučíme, ako urobiť vlakové testovacie rozdelenie pomocou Sklearnu v Pythone.

Train Test Split pomocou Sklearnu

Metóda train_test_split() sa používa na rozdelenie našich údajov do vlakových a testovacích sád.



negácia diskrétna matematika

Najprv musíme naše údaje rozdeliť na funkcie (X) a štítky (y). Dátový rámec sa rozdelí na X_train, X_test , y_train a y_test. Súpravy X_train a y_train slúžia na trénovanie a montáž modelu. Sady X_test a y_test sa používajú na testovanie modelu, ak predpovedá správne výstupy/označenia. môžeme explicitne otestovať veľkosť vlaku a testovať súpravy. Odporúčame ponechať naše vlakové súpravy väčšie ako testovacie súpravy.

Vlaková súprava: Tréningový súbor údajov je súbor údajov, ktoré boli použité na prispôsobenie modelu. Súbor údajov, na ktorom je model trénovaný. Tieto údaje model vidí a naučí sa ich.

Testovacia sada: Testovacia množina údajov je podmnožinou množiny trénovacích údajov, ktorá sa používa na presné vyhodnotenie prispôsobenia konečného modelu.



overovacia sada: Overovacia množina údajov je vzorka údajov z tréningovej množiny vášho modelu, ktorá sa používa na odhad výkonnosti modelu pri ladení hyperparametrov modelu.

v predvolenom nastavení je 25 % našich údajov testovacia sada a 75 % údajov ide do tréningových testov.

Syntax: sklearn.model_selection.train_test_split()



parametre:

    *pole: postupnosť indexovateľných prvkov. Zoznamy, numpy polia, scipy-riedke matice a dátové rámce pandy sú všetky platné vstupy. test_size: int alebo float, predvolene Žiadne. Ak plávajúca, mala by byť medzi 0,0 a 1,0 a reprezentovať percento súboru údajov, ktoré sa má testovať. Ak sa použije int, vzťahuje sa na celkový počet skúšobných vzoriek. Ak je hodnota Žiadna, použije sa doplnok veľkosti vlaku. Nastaví sa na 0,25, ak je veľkosť vlaku tiež Žiadna. train_size: int alebo float, predvolene Žiadne. random_state : int, predvolene Žiadne. Riadi spôsob premiešania údajov pred implementáciou rozdelenia. Pre opakovateľný výstup cez niekoľko volaní funkcií zadajte int.
    shuffle: boolean object , predvolene True. Či sa majú údaje pred rozdelením premiešať alebo nie. Stratify musí byť None, ak shuffle=False. stratify: array-like object , predvolene je to None. Ak vyberiete možnosť Žiadne, údaje sa stratia pomocou týchto štítkov tried.

vracia: rozdelenie: zoznam

Príklad 1:

Importujú sa balíčky numpy, pandas a scikit-learn. Importuje sa súbor CSV. X obsahuje funkcie a y sú štítky. rozdelíme dátový rámec na X a y a vykonáme na nich testovacie rozdelenie vlakov. random_state funguje ako numpy semeno, používa sa na reprodukovateľnosť údajov. test_size je daná ako 0,25, čo znamená, že 25 % našich údajov prejde do našej testovacej veľkosti. 1-test_size je veľkosť nášho vlaku, nemusíme to špecifikovať. shuffle =Pravdaže, premiešajú sa naše údaje pred ich rozliatím. Sady X_train a X_test sa používajú na prispôsobenie a trénovanie nášho modelu a testovacie sady sa používajú na testovanie a overovanie.

Pre prístup k súboru CSV kliknite tu.

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

>

konverzia int na dvojitú javu

>

Výkon:

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

Príklad 2:

V tomto príklade sa postupujú podľa rovnakých krokov, namiesto špecifikácie test_size zadáme veľkosť vlaku. test_veľkosť je 1-veľkosť_vlaku. 80 % údajov tvorí vlaková súprava, takže 20 % našich údajov tvorí náš testovací súbor. Ak nešpecifikujeme veľkosti testovacích a vlakových súprav predvolene test_size bude 0,25. X_train a y_train majú rovnaký tvar a indexy, keďže y_train je označenie pre funkcie X_train. to isté platí pre X_test a 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)>

>

>

Výkon:

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