Šajā rakstā uzzināsim, kā veikt vilciena testa sadalījumu, izmantojot Sklearn programmā Python.
Vilciena testa sadalījums, izmantojot Sklearn
Metode train_test_split() tiek izmantota, lai sadalītu mūsu datus vilcienu un testa kopās.
Pirmkārt, mums ir jāsadala mūsu dati funkcijās (X) un etiķetēs (y). Datu rāmis tiek sadalīts X_train, X_test, y_train un y_test. X_train un y_train komplekti tiek izmantoti apmācībai un modeļa pielāgošanai. X_test un y_test komplekti tiek izmantoti modeļa testēšanai, ja tas paredz pareizos rezultātus/iezīmes. mēs varam nepārprotami pārbaudīt vilciena izmēru un testa komplektus. Ir ieteicams mūsu vilcienu sastāvus saglabāt lielākus par testa komplektiem.
Vilciena komplekts: Apmācības datu kopa ir datu kopa, kas tika izmantota, lai atbilstu modelim. Datu kopa, kurā modelis tiek apmācīts. Šos datus modelis redz un uzzina.
Testa komplekts: Testa datu kopa ir apmācības datu kopas apakškopa, kas tiek izmantota, lai sniegtu precīzu galīgā modeļa atbilstības novērtējumu.
validācijas komplekts: Validācijas datu kopa ir datu paraugs no jūsu modeļa apmācības kopas, ko izmanto, lai novērtētu modeļa veiktspēju, regulējot modeļa hiperparametrus.
pēc noklusējuma 25% no mūsu datiem ir testa komplekti un 75% datu tiek izmantoti treniņu testos.
java skeneris nākamais
Sintakse: sklearn.model_selection.train_test_split()
parametri:
*masīvi: indeksējamo objektu secība. Saraksti, nelieli masīvi, scipy-sparse matricas un pandas datu rāmji ir derīgi ievades dati. test_size: int vai float, pēc noklusējuma nav. Ja tas ir peldošs, tam ir jābūt no 0,0 līdz 1,0 un jāatspoguļo pārbaudāmās datu kopas procentuālā daļa. Ja izmanto int, tas attiecas uz kopējo testa paraugu skaitu. Ja vērtība ir None, tiek izmantots vilciena lieluma papildinājums. Tas tiks iestatīts uz 0,25, ja vilciena izmērs ir arī Nav. train_size: int vai float, pēc noklusējuma nav. random_state : int, pēc noklusējuma nav. Kontrolē, kā dati tiek sajaukti pirms sadalīšanas. Lai iegūtu atkārtojamu izvadi vairākos funkciju izsaukumos, ievadiet int.
shuffle: Būla objekts , pēc noklusējuma True. Vai dati ir jāsajauc pirms sadalīšanas. Stratify ir jābūt None, ja shuffle=False. stratificēt: masīvam līdzīgs objekts , pēc noklusējuma tas ir Nav. Ja ir atlasīts Neviens, dati tiek stratificēti, izmantojot tos kā klases iezīmes.atgriež: sadalīšana: saraksts
1. piemērs:
Numpy, pandas un scikit-learn pakotnes tiek importētas. CSV fails ir importēts. X satur funkcijas, un y ir etiķetes. mēs sadalām datu kadru X un y un veicam tiem vilciena testa sadalījumu. random_state darbojas kā sēkla, to izmanto datu reproducējamībai. test_size ir norādīts kā 0,25, tas nozīmē, ka 25% no mūsu datiem tiek iekļauti mūsu testa lielumā. 1-test_size ir mūsu vilciena izmērs, mums tas nav jānorāda. shuffle =Tiesa, sajauc mūsu datus pirms izliešanas. X_train un X_test komplekti tiek izmantoti, lai pielāgotu un apmācītu mūsu modeli, un testa komplekti tiek izmantoti testēšanai un apstiprināšanai.
Lai piekļūtu CSV failam, noklikšķiniet uz šeit.
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())> |
>
>
Izvade:
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,)>
2. piemērs:
Šajā piemērā tiek veiktas tās pašas darbības, tā vietā, lai norādītu testa_izmēru, mēs norādām vilciena_izmēru. testa_izmērs ir 1-vilciena_izmērs. 80% datu ir vilcienu kopa, tāpēc 20% mūsu datu ir mūsu testa kopa. Ja mēs nenorādīsim testa un vilcienu kopu izmērus, pēc noklusējuma testa izmērs būs 0,25. X_train un y_train ir vienāda forma un indeksi, jo y_train ir X_train funkciju apzīmējums. tas pats attiecas uz X_test un 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)> |
>
>
Izvade:
(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,)>