Video: NOKIOS 2018 3C Datadeling; Muligheter og utfordringer - Endre Angelvik 2025
Før du kan mate SVM-klassifikatoren (Support Vector Machine) med dataene som ble lastet for prediktiv analyse, må du dele det fulle datasettet i et treningssett og test sett.
Heldigvis har scikit-learn implementert en funksjon som vil hjelpe deg å enkelt dele det fulle datasettet. Funksjonen train_test_split tar som input et enkelt datasett og en prosentverdi. Prosentverdien brukes til å bestemme størrelsen på testsettet. Funksjonen returnerer to datasett: testdatasettet (med den angitte størrelsen) og treningsdatasettet (som bruker gjenværende data).
Vanligvis kan man ta rundt 70-80 prosent av dataene som skal brukes som treningssett og bruke de resterende dataene som testsettet. Men Iris datasettet er svært lite (kun 150 tilfeller), slik at du kan ta 90 prosent av det for å trene modellen og bruke de andre 10 prosentene som testdata for å se hvordan din prediktive modell vil utføre.
Skriv inn følgende kode for å dele datasettet ditt: >>>> fra sklearn import cross_validation >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris. data, iris. target, test_size = 0. 10, random_state = 111)
Den første linjen importerer kryssvalideringsbiblioteket inn i sesjonen. Den andre linjen lager testsettet fra 10 prosent av prøven.
y_train vil inneholde 135 etiketter i samme rekkefølge som de 135 observasjonene.
x_test vil inneholde 15 (eller 10 prosent) observasjoner og dens funksjoner.
y_test vil inneholde 15 etiketter i samme rekkefølge som de 15 observasjonene.
Følgende kode bekrefter at splittelsen er hva du forventet:
Mange nybegynnere innen predictive analytics glemmer å dele datasettene - som introduserer en alvorlig designfeil i prosjektet. Hvis de fulle 150 forekomstene ble lastet inn i maskinen som treningsdata, ville det ikke etterlate usynlige data for testing av modellen. Da må du ty til å bruke noen av treningssentrene til å teste den prediktive modellen.
Du ser at i en slik situasjon spår modellen alltid den riktige klassen - fordi du bruker de samme nøyaktige dataene du brukte til å trene modellen.Modellen har allerede sett dette mønsteret før; Det har ikke noe problem å bare gjenta hva det er sett. En fungerende prediktiv modell må gjøre spådommer for data som den ikke har sett ennå.
Når du har en forekomst av en SVM-klassifikator, et treningsdatasett og et testdatasett, er du klar til å trene modellen med treningsdataene. Å skrive følgende kode i tolken vil gjøre akkurat det: >>>> svmClassifier. fit (X_train, y_train)
Denne linjen med kode skaper en arbeidsmodell for å gjøre spådommer fra. Spesielt, en prediktiv modell som vil forutsi hvilken klasse av Iris et nytt umerket datasett tilhører. SvmClassifier-forekomsten vil ha flere metoder du kan ringe for å gjøre forskjellige ting.
For eksempel, etter å ha kalt tilpasningsmetoden, er den mest nyttige metoden for å ringe forutsigbar metoden. Det er metoden som du vil mate nye data med; Til gjengjeld forutsetter resultatet.
