În acest articol, să învățăm cum să facem o împărțire a testului de tren folosind Sklearn în Python.
Tren Test Split folosind Sklearn
Metoda train_test_split() este folosită pentru a ne împărți datele în seturi de tren și de testare.
În primul rând, trebuie să ne împărțim datele în caracteristici (X) și etichete (y). Cadrul de date este împărțit în X_train, X_test , y_train și y_test. Seturile X_train și y_train sunt folosite pentru antrenarea și potrivirea modelului. Seturile X_test și y_test sunt folosite pentru a testa modelul dacă prezice ieșirile/etichetele corecte. putem testa în mod explicit dimensiunea trenului și seturile de testare. Se recomandă să păstrăm garniturile noastre de tren mai mari decât seturile de testare.
Set de trenuri: Setul de date de antrenament este un set de date care a fost utilizat pentru a se potrivi modelului. Setul de date pe care este antrenat modelul. Aceste date sunt văzute și învățate de model.
Set de testare: Setul de date de testare este un subset al setului de date de antrenament care este utilizat pentru a oferi o evaluare precisă a potrivirii modelului final.
norocset de validare: Un set de date de validare este un eșantion de date din setul de antrenament al modelului dvs. care este utilizat pentru a estima performanța modelului în timp ce reglați hiperparametrii modelului.
în mod implicit, 25% din datele noastre sunt seturi de testare, iar 75% datele sunt incluse în teste de antrenament.
Sintaxă: sklearn.model_selection.train_test_split()
parametri:
*matrice: succesiune de indexabile. Listele, tablourile numpy, matricele scipy-sparse și cadrele de date panda sunt toate intrări valide. test_size: int sau float, implicit Nici unul. Dacă float, ar trebui să fie între 0,0 și 1,0 și să reprezinte procentul din setul de date de testat împărțit. Dacă se utilizează int, se referă la numărul total de probe de testare. Dacă valoarea este None, se folosește complementul mărimii trenului. Acesta va fi setat la 0,25 dacă dimensiunea trenului este, de asemenea, Niciunul. train_size: int sau float, implicit Nici unul. random_state : int, implicit Nici unul. Controlează modul în care datele sunt amestecate înainte ca împărțirea să fie implementată. Pentru ieșire repetabilă în mai multe apeluri de funcție, transmiteți un int.
shuffle: obiect boolean, implicit True. Dacă datele trebuie amestecate sau nu înainte de împărțire. Stratificarea trebuie să fie Nici unul dacă shuffle=False. stratify: array-like object , implicit este None. Dacă este selectat Niciunul, datele sunt stratificate folosind acestea ca etichete de clasă.se intoarce: împărțire: listă
Exemplul 1:
Pachetele numpy, panda și scikit-learn sunt importate. Fișierul CSV este importat. X conține caracteristicile și y este etichetele. împărțim cadrul de date în X și y și efectuăm împărțirea testului de tren pe ele. random_state acționează ca o sămânță numpy, este folosit pentru reproductibilitatea datelor. test_size este dat ca 0,25 , înseamnă că 25% din datele noastre intră în dimensiunea testului. 1-test_size este dimensiunea trenului nostru, nu trebuie să specificăm asta. shuffle =Adevărat, amestecă datele noastre înainte de a le distribui. Seturile X_train și X_test sunt folosite pentru a adapta și antrena modelul nostru, iar seturile de testare sunt folosite pentru testare și validare.
Pentru a accesa fișierul CSV, faceți clic Aici.
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())> |
>
redenumirea unui director
>
Ieșire:
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,)>
Exemplul 2:
În acest exemplu, se parcurg aceiași pași, în loc să specificăm test_size, specificăm train_size. test_size este 1-train_size. 80% din date sunt set de trenuri, deci 20% din datele noastre sunt setul nostru de testare. Dacă nu specificăm dimensiunile seturilor de test și tren în mod implicit test_size va fi 0,25. X_train și y_train au aceeași formă și indici, deoarece y_train este eticheta pentru caracteristicile X_train. același lucru este valabil și cu X_test și 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)> |
>
>
Ieșire:
(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,)>