Junatesti Splitissä Sklearnissa

Junatesti Splitissa Sklearnissa



Koneoppimisalgoritmien kouluttamiseen tarvittava alkuperäinen tietojoukko tunnetaan opetusdatana. Koneoppimisalgoritmeja ohjataan tekemään ennusteita tai suorittamaan tehtävä koulutustietojoukkojen avulla. Testitietojoukko arvioi, kuinka hyvin harjoitustiedot suoritetaan. Sklearn on Python-pohjainen koneoppimistyökalupakki, jonka avulla voimme jakaa tietomme harjoitus- ja testausnäytteiksi käyttämällä train_test_split() menetelmä. Train_test_split()-tekniikkaa käsitellään tässä artikkelissa.

Mikä on Train Test Split

Koneoppimismalleja opetetaan käyttämällä train-test split -tekniikkaa. Se määrittää, kuinka tehokkaasti koneoppimisalgoritmit toimivat. Sitä voidaan käyttää ratkaisemaan ongelmia, joihin liittyy regressio ja luokittelu. Koneoppimiskoulutuksen tietojoukko on harjoitustestijako. Se koostuu huomattavasta määrästä dataa. Pythonissa, scikit oppimispaketissa on mallivalinta-niminen moduuli, josta voit tuoda 'junan testijaon'. Voit toimittaa koulutus- ja testauskokonäytteen tässä toiminnossa käyttämällä harjoitus- ja testikokoja. Ei ole olemassa sellaista asiaa kuin täydellinen jakoprosentti. Sinun tulisi valita jakoprosentti, joka sopii projektisi tavoitteisiin.







Mallin on täsmättävä annettuja tietoja käyttäen tunnettuja tuloja ja lähtöjä. Ohjelmaa käytetään sitten ennusteiden tekemiseen jäljellä olevasta dataosajoukosta oppiakseen siitä. Tietämättä odotettuja tulo- ja lähtöarvoja, tätä voidaan käyttää ennusteiden luomiseen tulevaisuuden tietojoukoista. Pythonin scikit-learn-koneoppimistyökalupakin train_test_split()-funktiota voidaan käyttää junatestin jaon arviointitekniikan toteuttamiseen. Se hyväksyy tietojoukon syötteenä ja jakaa sen ulostulona kahteen osajoukkoon.



Testisarja

Testisarja on valikoima tapauksia, jotka on vedetty tietojoukosta mallin tehokkuuden mittaamiseksi. Nämä tiedot säilytetään erillään harjoitus- ja viritystiedoista. Siksi sitä ei voi käyttää oppimisprosessin harjoitus- tai viritysvaiheissa. Tämä vaikuttaisi suorituskykyyn vain painottamalla mallia tietoihin.



Harjoitussetti

Harjoitus- ja testisarjat on pidettävä erillään. Koulutusvaihe kuluttaa koulutusjoukon tunnistaakseen parametriarvot, jotka minimoivat tietyn kustannusfunktion koko koulutusjoukossa. Kun malli on koulutettu harjoitustietojoukossa, se arvioidaan testitietojoukossa. Testiaineiston ei pitäisi olla paljon pienempi kuin harjoitustietojoukko.





Kuinka kouluttaa tietoja

Malli rakennetaan käyttämällä erityisiä tietoja, joita kutsutaan 'koulutustietoiksi'. Yksinkertaisessa lineaarisessa mallissa malli formalisoi muuttujien väliset suhteet tuottamalla suoralle matemaattisen yhtälön. Mallin tyyppi määrittää, kuinka se rakennetaan. Esimerkiksi regressio eroaa muista menetelmistä.

On tärkeää erottaa harjoitustiedot muista tiedoista, koska jaat usein alkuperäisen tietojoukon kahteen osaan: harjoitustietoihin mallien luomista varten ja testitietoihin niiden arviointia varten. Tyypillisesti tämä tehdään siten, että mallisi ennustaa testitiedoissa olevia arvoja (mallin muuttujien perusteella) ja vertaa niitä todellisiin arvoihin.



Tietojemme jakamisen tarkoitus

Yli- ja alasovitus ovat kaksi merkittävää ongelmaa, jotka kohtaamme datajoukkoamme testattaessa.

Mallin rakentamista sellaisten tietojen perusteella, joiden ei pitäisi olla tiedossa, kutsutaan ennakoivaksi harhaksi.

Ylisovitus on, kun malli mukautuu liian tarkasti historialliseen dataan. Tulevaisuudessa se epäonnistuu. Underfitting on mallin luominen, joka mukautuu menneisiin tietoihin niin löyhästi, että se muuttuu hyödyttömäksi tulevaisuudessa.

Train_test_split():n toteuttaminen sklearnissä

# tuoda tarvittavat menetelmät ja kirjastot

tuonti nuhjuinen kuten esim.

alkaen oppinut mallin_valinta tuonti train_test_split



# luodaan esimerkkitietojoukko

X , Y = esim. järjestää ( 100 ) . muotoilla uudelleen ( ( kaksikymmentä , 5 ) ) , alue ( kaksikymmentä )

Tulosta ( 'Ominaisuudet ovat' , X )

Tulosta ( 'Kohdetunnisteet ovat' , lista ( Y ) )

Lähtö

Ominaisuudet ovat

[ [ 0 1 kaksi 3 4 ]

[ 5 6 7 8 9 ]

[ 10 yksitoista 12 13 14 ]

[ viisitoista 16 17 18 19 ]

[ kaksikymmentä kaksikymmentäyksi 22 23 24 ]

[ 25 26 27 28 29 ]

[ 30 31 32 33 3. 4 ]

[ 35 36 37 38 39 ]

[ 40 41 42 43 44 ]

[ Neljä viisi 46 47 48 49 ]

[ viisikymmentä 51 52 53 54 ]

[ 55 56 57 58 59 ]

[ 60 61 62 63 64 ]

[ 65 66 67 68 69 ]

[ 70 71 72 73 74 ]

[ 75 76 77 78 79 ]

[ 80 81 82 83 84 ]

[ 85 86 87 88 89 ]

[ 90 91 92 93 94 ]

[ 95 96 97 98 99 ] ]

Kohdeetiketit ovat

[ 0 , 1 , kaksi , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , yksitoista , 12 , 13 , 14 , viisitoista , 16 , 17 , 18 , 19 ]

Tietojen jakaminen

X_train , X_test , y_juna , y_testi = train_test_split ( X , Y , test_size = 0,33 , satunnainen_tila = 42 )

Tulosta ( 'Koulutusominaisuudet ovat' , X_train )

Tulosta ( 'Koulutusmerkit ovat' , y_juna )

Tulosta ( 'Testiominaisuudet ovat' , X_test )

Tulosta ( 'Testimerkit ovat' , y_testi )

Lähtö

Harjoitteluominaisuudet ovat

[ [ viisitoista 16 17 18 19 ]

[ 90 91 92 93 94 ]

[ 80 81 82 83 84 ]

[ 65 66 67 68 69 ]

[ 10 yksitoista 12 13 14 ]

[ Neljä viisi 46 47 48 49 ]

[ 95 96 97 98 99 ]

[ kaksikymmentä kaksikymmentäyksi 22 23 24 ]

[ 60 61 62 63 64 ]

[ 35 36 37 38 39 ]

[ viisikymmentä 51 52 53 54 ]

[ 70 71 72 73 74 ]

[ 30 31 32 33 3. 4 ] ]

Koulutusmerkit ovat

[ 3 , 18 , 16 , 13 , kaksi , 9 , 19 , 4 , 12 , 7 , 10 , 14 , 6 ]

Testiominaisuudet ovat

[ [ 0 1 kaksi 3 4 ]

[ 85 86 87 88 89 ]

[ 75 76 77 78 79 ]

[ 5 6 7 8 9 ]

[ 40 41 42 43 44 ]

[ 25 26 27 28 29 ]

[ 55 56 57 58 59 ] ]

Testitarrat ovat

[ 0 , 17 , viisitoista , 1 , 8 , 5 , yksitoista ]

Johtopäätös

Keskustelimme sklearnin train_test_split()-menetelmästä, jota käytetään lähtötietojen jakamiseen juna- ja testinäytteiksi. Tämä on tarpeen mallimme suorituskyvyn arvioimiseksi ja sen parantamiseksi. Näimme myös kuinka juna- ja testinäytteet eroavat toisistaan. Lopuksi toteutimme train_test_split()-menetelmän sklearnissä.