V tomto článku budeme diskutovať o tom, ako rozdeliť množinu údajov pomocou scikit-learns' train_test_split().
funkcia sklearn.model_selection.train_test_split():
Metóda train_test_split() sa používa na rozdelenie našich údajov do vlakových a testovacích sád. 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.
- Súbor vlakov: Súbor údajov tréningu 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 množina: 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. validačná množina: validačná množina údajov je vzorka údajov z tréningovej množiny vášho modelu, ktorá sa používa na odhad výkonu modelu pri ladení hyperparametrov modelu. nedostatočné prispôsobenie: Dátový model, ktorý je nedostatočne prispôsobený, má vysokú chybovosť v trénovacej množine aj nepozorovaných údajoch, pretože nie je schopný efektívne reprezentovať vzťah medzi vstupnými a výstupnými premennými. overfitting: keď sa štatistický model presne zhoduje s jeho tréningovými údajmi, ale cieľ algoritmu sa stratí, pretože nie je schopný presne vykonať proti neviditeľným údajom, nazýva sa to overfitting
Syntax: sklearn.model_selection.train_test_split(*arrays, test_size=Žiadne, train_size=Žiadne, random_state=Žiadne, shuffle=Pravda, stratify=Žiadne
Parametre:
*polia: 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 stratifikujú pomocou týchto štítkov tried.
Vrátenie:
rozdelenie: Rozdelenie vstupov na testovanie vlaku je znázornené ako zoznam.
hackerské spracovanie
Kroky na rozdelenie množiny údajov:
Krok 1: Importujte potrebné balíky alebo moduly:
V tomto kroku importujeme potrebné balíčky alebo moduly do pracovného prostredia pythonu.
Python3
# import packages> import> numpy as np> import> pandas as pd> from> sklearn.model_selection> import> train_test_split> |
>
>
Krok 2: Importujte dátový rámec/množinu údajov:
Tu načítame CSV pomocou metódy pd.read_csv() z pandy a získame tvar súboru údajov pomocou funkcie shape().
Použitý CSV:

Python3
# importing data> df> => pd.read_csv(> 'prediction.csv'> )> print> (df.shape)> |
>
>
Výkon:
(13, 3)>
Krok 3: Získajte premenné funkcií X a Y:
Tu priraďujeme premenné X a Y, v ktorých má premenná funkcie X nezávislé premenné a premenná funkcie y má závislú premennú.
Python3
X> => df[> 'area'> ]> y> => df[> 'prices'> ]> |
>
>
Krok 4: Použite triedu testovania vlaku na rozdelenie údajov do vlakových a testovacích sád:
Tu sa trieda train_test_split() zo sklearn.model_selection používa na rozdelenie našich údajov do vlakových a testovacích sád, kde sú premenné funkcie uvedené ako vstup v metóde. test_size určuje časť údajov, ktoré prejdú do testovacích sád a náhodný stav sa používa na reprodukovateľnosť údajov.
pole štruktúry v jazyku c
Python3
# 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> )> |
zoznam polí java
>
>
Príklad:
V tomto príklade sa importuje súbor „predikcie.csv“. Atribút df.shape sa používa na získanie tvaru dátového rámca. Tvar dátového rámca je (13,3). Stĺpce funkcií sú prevzaté v premennej X a stĺpec výsledkov v premennej y. Premenné X a y sa odovzdávajú v metóde train_test_split() na rozdelenie dátového rámca na vlak a testovacie sady. Parameter náhodného stavu sa používa na reprodukovateľnosť údajov. test_size sa udáva ako 0,25, čo znamená, že 25 % údajov ide do testovacích súborov. 4 z 13 riadkov v dátovom rámci idú do testovacích sád. 75 % údajov ide do vlakových súprav, čo je 9 riadkov z 13 riadkov. Súpravy vlakov sa používajú na prispôsobenie a trénovanie modelu strojového učenia. Na vyhodnotenie sa používajú testovacie sady.
Použitý CSV:

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(> 'prediction.csv'> )> print> (df.shape)> # head of the data> print> (> 'Head of the dataframe : '> )> print> (df.head())> print> (df.columns)> X> => df[> 'area'> ]> y> => df[> 'prices'> ]> # 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> (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:
(13, 3) Head of the dataframe : Unnamed: 0 area prices 0 0 1000 316404.109589 1 1 1500 384297.945205 2 2 2300 492928.082192 3 3 3540 661304.794521 4 4 4120 740061.643836 Index(['Unnamed: 0', 'area', 'prices'], dtype='object') X_train : 3 3540 7 3460 4 4120 0 1000 8 4750 Name: area, dtype: int64 (9,) X_test : 12 7100 2 2300 11 8600 10 9000 Name: area, dtype: int64 (4,) y_train : 3 661304.794521 7 650441.780822 4 740061.643836 0 316404.109589 8 825607.876712 Name: prices, dtype: float64 (9,) y_test : 12 1.144709e+06 2 4.929281e+05 11 1.348390e+06 10 1.402705e+06 Name: prices, dtype: float64 (4,)>
Príklad:
V tomto príklade sa vykonajú nasledujúce kroky:
- Potrebné balíčky sa dovezú.
- Množina údajov Advertising.csv sa načíta a vyčistí a hodnoty null sa vypustia.
- sú vytvorené polia prvkov a cieľov (X andy).
- Vytvorené polia sú rozdelené na vlakové a testovacie sady. 30 % údajov sa dostane do testovacej súpravy, čo znamená, že 70 % údajov tvorí vlaková súprava.
- Vytvorí sa štandardný objekt scalera.
- X_train sa hodí do škálovača.
- X_train a X_test sa transformujú pomocou metódy transform().
- Vytvorí sa jednoduchý lineárny regresný model
- Do modelu zapadajú vlakové súpravy.
- metóda predikcie() sa používa na vykonávanie predpovedí na množine X_test.
- Metrika mean_squared_error() sa používa na vyhodnotenie modelu.
Ak chcete zobraziť a stiahnuť súbor CSV použitý v tomto príklade, kliknite tu .
Python3
# import packages> import> pandas as pd> import> numpy as np> from> sklearn.model_selection> import> train_test_split> from> sklearn.preprocessing> import> StandardScaler> from> sklearn.linear_model> import> LinearRegression> from> sklearn.metrics> import> mean_squared_error> df> => pd.read_csv(> 'Advertising.csv'> )> # dropping rows which have null values> df.dropna(inplace> => True> ,axis> => 0> )> y> => df[> 'sales'> ]> X> => df.drop(> 'sales'> ,axis> => 1> )> # splitting the dataframe into train and test sets> X_train,X_test,y_train,y_test> => train_test_split(> > X,y,test_size> => 0.3> ,random_state> => 101> )> scaler> => StandardScaler()> scaler.fit(X_train)> X_train> => scaler.transform(X_train)> X_test> => scaler.transform(X_test)> model> => LinearRegression().fit(X_train,y_train)> y_pred> => model.predict(X_test)> print> (y_pred)> print> (mean_squared_error(y_test,y_pred))> |
>
>
koľko mb v gb
Výkon:
pole([19.82000933, 14.23636718, 12.80417236, 7.75461569, 8.31672266,
15.4001915, 11.6590983, 15.22650923, 15.53524916, 19.46415132,
17.21364106, 16.69603229, 16.46449309, 10.15345178, 13.44695953,
24,71946196, 18,67190453, 15,85505154, 14,45450049, 9,91684409,
10,41647177, 4,61335238, 17,41531451, 17,31014955, 21,72288151,
5,87934089, 11,29101265, 17,88733657, 21,04225992, 12,32251227,
14,4099317, 15,05829814, 10,2105313, 7,28532072, 12,66133397,
23,25847491, 18,87101505, 4,55545854, 19,79603707, 9,21203026,
10,24668718, 8,96989469, 13,33515217, 20,69532628, 12,17013119,
21,69572633, 16,7346457, 22,16358256, 5,34163764, 20,43470231,
7,58252563, 23,38775769, 10,2270323, 12,33473902, 24,10480458,
9,88919804, 21,7781076])
2,7506859249500466
Príklad:
predvolené parametre java
V tomto príklade použijeme model klasifikátora K-najbližších susedov.
V tomto príklade sa vykonajú nasledujúce kroky:
- Potrebné balíčky sa dovezú.
- údaje o dúhovke sa načítajú zo sklearn.datasets.
- sú vytvorené polia vlastností a cieľov (X andy).
- Vytvorené polia sú rozdelené na vlakové a testovacie sady. 30 % údajov sa dostane do testovacej súpravy, čo znamená, že 70 % údajov tvorí vlaková súprava.
- Základný model Knn je vytvorený pomocou triedy KNeighborsClassifier.
- Vlakové súpravy pasujú do modelu knn.
- metóda predikcie() sa používa na vykonávanie predpovedí na množine X_test.
Python3
# Import packages> from> sklearn.neighbors> import> KNeighborsClassifier> from> sklearn.model_selection> import> train_test_split> from> sklearn.datasets> import> load_iris> > # Load the data> irisData> => load_iris()> > # Create feature and target arrays> X> => irisData.data> y> => irisData.target> > # Split data into train and test sets> X_train, X_test, y_train, y_test> => train_test_split(> > X, y, test_size> => 0.2> , random_state> => 42> )> > knn> => KNeighborsClassifier(n_neighbors> => 1> )> > knn.fit(X_train, y_train)> > # predicting on the X_test data set> print> (knn.predict(X_test))> |
>
>
Výkon:
[1 0 2 1 1 0 1 2 1 1 2 0 0 0 0 1 2 1 1 2 0 2 0 2 2 2 2 2 0 0]