logo

Jak provést vlakové testovací rozdělení pomocí Sklearnu v Pythonu

V tomto článku se naučíme, jak provést rozdělení testu vlaku pomocí Sklearnu v Pythonu.

Train Test Split pomocí Sklearn

Metoda train_test_split() se používá k rozdělení našich dat na vlakové a testovací sady.



Nejprve musíme rozdělit naše data na funkce (X) a štítky (y). Datový rámec se rozdělí na X_train, X_test, y_train a y_test. Sady X_train a y_train slouží k trénování a montáži modelu. Sady X_test a y_test se používají k testování modelu, pokud předpovídá správné výstupy/návěsky. můžeme explicitně otestovat velikost vlaku a testovací soupravy. Doporučujeme ponechat naše vlakové soupravy větší než testovací soupravy.

Vlaková souprava: Tréninková datová sada je sada dat, která byla použita k přizpůsobení modelu. Datová sada, na které je model trénován. Tato data vidí a učí se model.

Testovací sada: Testovací datový soubor je podmnožinou tréninkového datového souboru, který se používá k přesnému vyhodnocení konečného přizpůsobení modelu.



validační sada: Ověřovací datová sada je vzorek dat z tréninkové sady vašeho modelu, která se používá k odhadu výkonu modelu při ladění hyperparametrů modelu.

ve výchozím nastavení je 25 % našich dat testovací sada a 75 % dat jde do tréninkových testů.

binární strom inorder traversal

Syntax: sklearn.model_selection.train_test_split()



parametry:

    *pole: sekvence indexovatelných. Seznamy, numpy pole, scipy-sparse matice a datové rámce pandas jsou všechny platné vstupy. test_size: int nebo float, ve výchozím nastavení Žádný. Pokud plovoucí, měla by být mezi 0,0 a 1,0 a představovat procento souboru dat pro testovací rozdělení. Je-li použito int, vztahuje se k celkovému počtu zkušebních vzorků. Pokud je hodnota Žádná, použije se doplněk velikosti vlaku. Pokud je velikost vlaku také Žádná, bude nastavena na 0,25. train_size: int nebo float, ve výchozím nastavení Žádné. random_state : int, ve výchozím nastavení Žádný. Řídí, jak jsou data před implementací rozdělení zamíchána. Pro opakovatelný výstup přes několik volání funkcí předejte int.
    shuffle: boolean object , ve výchozím nastavení True. Zda mají být data před rozdělením zamíchána nebo ne. Stratify musí být None, pokud shuffle=False. stratify: array-like object , ve výchozím nastavení je None. Pokud je vybrána možnost Žádná, data jsou stratifikována pomocí těchto štítků jako tříd.

vrací: dělení: seznam

Příklad 1:

Jsou importovány balíčky numpy, pandas a scikit-learn. Soubor CSV je importován. X obsahuje funkce a y jsou popisky. rozdělíme datový rámec na X a y a provedeme na nich testovací rozdělení vlaků. random_state funguje jako numpy semeno, používá se pro reprodukovatelnost dat. test_size je uvedena jako 0,25, to znamená, že 25 % našich dat jde do naší testovací velikosti. 1-test_size je velikost našeho vlaku, nemusíme ji specifikovat. shuffle =Pravda, zamíchá naše data před rozlitím. Sady X_train a X_test se používají k přizpůsobení a trénování našeho modelu a testovací sady se používají k testování a ověřování.

Pro přístup k souboru CSV klikněte tady.

img css zarovnat

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

konverze typu java a casting
>

rok měsíc
>

Výstup:

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

Příklad 2:

V tomto příkladu se postupují podle stejných kroků, místo zadání test_size zadáme train_size. test_size je 1-train_size. 80 % dat je vlaková sada, takže 20 % našich dat je naše testovací sada. Pokud neurčíme velikosti testovacích a vlakových sad ve výchozím nastavení test_size bude 0,25. X_train a y_train mají stejný tvar a indexy, protože y_train je označení pro funkce X_train. totéž platí pro X_test a y_test.

Python3




npm cache čistá

# 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ýstup:

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