“Una tecnica di convalida del modello chiamata convalida incrociata valuta la generalizzabilità dei risultati dell'analisi statistica a diversi set di dati impiegati principalmente in contesti in cui l'obiettivo è prevedere. Usiamo la convalida incrociata per testare il modello durante la formazione e la generalizzazione dei dati. Questo articolo discuterà di come è implementato nella Biblioteca Python Sklearn."
Cos'è la convalida incrociata?
È una tecnica di valutazione del modello statistico che verifica come i dati saranno generalizzati a diversi set di dati. Si concentra sulla determinazione dell'accuratezza del modello nell'uso effettivo ed è essenzialmente nel contesto in cui l'obiettivo principale è prevedere. La convalida incrociata verifica il modello durante la formazione e la sua capacità di generalizzare i dati.
Come sono diversi i dati di prova e treno?
I dati utilizzati per sviluppare un modello, come i dati utilizzati per determinare i coefficienti di regressione multilinea, sono indicati come dati di addestramento. Una volta creato il modello, viene testato rispetto ai dati di test per determinare quanto bene il modello si adatta ai dati.
Implementazione della convalida incrociata in Sklearn
Importazione delle librerie richieste
Importa Numpy come NP
da Sklearn.Model_Selection Import Train_Test_Split
Da set di dati di importazione Sklearn
da sklearn import svm
da Sklearn.Model_Selection Import Cross_val_score
Creazione del set di dati
X, Y = set di dati.load_iris (return_x_y = true)
X_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.4, random_state = 0)
print (x_train [: 20], y_train [: 20])
Produzione
[[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]
Creazione del modello e trovare punteggi di convalida incrociata
Clf = SVM.SVC (kernel = 'lineare', c = 1).fit (x_train, y_train)
Clf = SVM.SVC (kernel = 'lineare', c = 1, random_state = 42)
Punti = Cross_val_score (CLF, X, Y, CV = 5)
Stampa (punteggi)
Produzione
[0.96666667 1. 0.96666667 0.96666667 1. "
Conclusione
Quando il set di dati per la formazione e il test è troppo piccolo, è richiesta una convalida incrociata. Il set di dati è in genere diviso in n pezzi casuali di uguale volume per impedire il problema eccessivo. La tecnica viene valutata con la parte rimanente dopo l'allenamento con le parti N-1. La media delle metriche durante le corse di test di allenamento N viene utilizzata per ottenere la misura complessiva. Più tardi, abbiamo aggiunto una convalida incrociata a Sklearn, che ha una classe chiamata "Selezione del modello" per farlo.