Video: Toyota Mirai: Sådan fungerer brintbilen 2025
Inden du kan føje SVM-klassificeringsenheden (Support Vector Machine) med de data, der blev indlæst til predictive analytics, skal du opdele det fulde datasæt i et træningssæt og test sæt.
Heldigvis har scikit-learn implementeret en funktion, der hjælper dig med nemt at opdele det fulde datasæt. Funktionen train_test_split tager som input et enkelt datasæt og en procentværdi. Procentværdien bruges til at bestemme størrelsen af testsættet. Funktionen returnerer to datasæt: testdatasættet (med den angivne størrelse) og træningsdatasættet (som bruger de resterende data).
Man kan typisk tage omkring 70-80 procent af de data, der skal bruges som træningssæt, og bruge de resterende data som testsæt. Men Iris datasættet er meget lille (kun 150 tilfælde), så du kan tage 90 procent af det til at træne modellen og bruge de andre 10 procent som testdata for at se, hvordan din prædiktive model vil udføre.
Indtast følgende kode for at opdele dit datasæt: >>>> 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 linje importerer krydsvalideringsbibliotek i din session. Den anden linje skaber testsætet fra 10 procent af prøven.
y_train vil indeholde 135 etiketter i samme rækkefølge som de 135 observationer.
x_test vil indeholde 15 (eller 10 procent) observationer og dens funktioner.
y_test vil indeholde 15 etiketter i samme rækkefølge som de 15 observationer.
Følgende kode verificerer, at splittelsen er, hvad du forventede:
Mange begyndere inden for predictive analytics glemmer at opdele datasætene - som introducerer en alvorlig designfejl i projektet. Hvis de fulde 150 tilfælde blev indlæst i maskinen som træningsdata, ville det ikke efterlade nogen usynlige data til test af modellen. Så skal du ty til at genbruge nogle af træningsinstanserne for at teste den prædiktive model.
Du kan se, at modellen i en sådan situation forudsiger den korrekte klasse altid - fordi du bruger de samme præcise data, som du brugte til at træne modellen.Modellen har allerede set dette mønster før; det vil ikke have noget problem bare at gentage, hvad det er set. En funktionsdygtig model skal gøre forudsigelser for data, som den ikke har set endnu.
Når du har en forekomst af en SVM-klassifikator, et træningsdatasæt og et testdatasæt, er du klar til at træne modellen med træningsdataene. At skrive følgende kode i tolken vil gøre det nøjagtigt: >>>> svmClassifier. fit (X_train, y_train)
Denne linie kode skaber en arbejdsmodel, der giver forudsigelser fra. Specielt en prædiktiv model, der vil forudsige hvilken klasse af Iris et nyt umærkede datasæt tilhører. SvmClassifier-forekomsten har flere metoder, som du kan ringe til at gøre forskellige ting.
For eksempel, efter at have kaldt tilpasningsmetoden, er den mest anvendte metode til at kalde den forudsigelsesmetode. Det er den metode, som du vil føje nye data til; Til gengæld forutser det resultatet.