"En modellvalideringsteknikk kalt kryssvalidering vurderer generaliserbarheten av statistiske analyseresultater til forskjellige datasett som hovedsakelig brukes i sammenhenger der målet er å forutsi. Vi bruker kryssvalidering for å teste modellen mens vi trener og generaliserer dataene. Denne artikkelen vil diskutere hvordan den er implementert i Python Sklearn -biblioteket.”
Hva er kryssvalidering?
Det er en statistisk modellevalueringsteknikk som tester hvordan dataene vil bli generalisert til forskjellige datasett. Den fokuserer på å bestemme nøyaktigheten til modellen i faktisk bruk og er i hovedsak i den sammenhengen der hovedmålet er å forutsi. Kryssvalidering tester modellen under trening og dens evne til å generalisere dataene.
Hvordan er test- og togdata forskjellige?
Data som brukes til å utvikle en modell, for eksempel data som brukes til å bestemme en multilineær regresjons koeffisienter, blir referert til som treningsdata. Når modellen er opprettet, testes den mot testdataene for å bestemme hvor godt modellen passer til dataene.
Implementering av kryssvalidering i Sklearn
Importere nødvendige biblioteker
Importer numpy som NP
Fra Sklearn.Model_selection import tog_test_split
Fra Sklearn Import Datasett
Fra Sklearn Import SVM
Fra Sklearn.Model_selection import cross_val_score
Opprette datasettet
X, y = datasett.last_iris (return_x_y = true)
X_train, x_test, y_train, y_test = tog_test_split (x, y, test_size = 0.4, random_state = 0)
Print (X_Train [: 20], Y_Train [: 20])
Produksjon
[[6. 3.4 4.5 1.6]
[4.8 3.1 1.6 0.2]
[5.8 2.7 5.1 1.9]
[5.6 2.7 4.2 1.3]
[5.6 2.9 3.6 1.3]
[5.5 2.5 4. 1.3]
[6.1. 3. 4.6 1.4]
[7.2 3.2 6. 1.8]
[5.3 3.7 1.5 0.2]
[4.3 3. 1.1 0.1]
[6.4 2.7 5.3 1.9]
[5.7 3. 4.2 1.2]
[5.4 3.4 1.7 0.2]
[5.7 4.4 1.5 0.4]
[6.9 3.1 4.9 1.5]
[4.6 3.1 1.5 0.2]
[5.9 3. 5.1 1.8]
[5.1 2.5 3. 1.1]
[4.6 3.4 1.4 0.3]
[6.2 2.2 4.5 1.5]] [1 0 2 1 1 1 1 2 0 0 2 1 0 0 1 0 2 1 0 1]
Lage modellen og finne kryssvalideringspoeng
clf = svm.SVC (kjerne = 'lineær', c = 1).Fit (X_Train, Y_Train)
clf = svm.SVC (kjerne = 'lineær', c = 1, random_state = 42)
score = cross_val_score (clf, x, y, cv = 5)
trykk (score)
Produksjon
[0.96666667 1. 0.96666667 0.96666667 1. ]
Konklusjon
Når datasettet for trening og testing er for lite, kreves kryssvalidering. Datasettet er typisk delt inn i n tilfeldige deler av like volum for å forhindre overmonteringsproblemet. Teknikken blir evaluert med den gjenværende delen etter trening med N-1-deler. Gjennomsnittet av beregningene gjennom N-treningstestkjøringer brukes til å få det totale tiltaket. Senere la vi til kryssvalidering til Sklearn, som har en klasse som heter "Model Selection" for å gjøre det.