Validation croisée dans Sklearn

Validation croisée dans Sklearn

«Une technique de validation du modèle appelé validation croisée évalue la généralisation des résultats de l'analyse statistique à différents ensembles de données utilisés principalement dans des contextes où l'objectif est de prévoir. Nous utilisons la validation croisée pour tester le modèle tout en formant et en généralisant les données. Cet article discutera de la façon dont il est implémenté dans la bibliothèque Python Sklearn."

Qu'est-ce que la validation croisée?

Il s'agit d'une technique d'évaluation du modèle statistique qui teste comment les données seront généralisées à différents ensembles de données. Il se concentre sur la détermination de l'exactitude du modèle dans une utilisation réelle et se trouve essentiellement dans le contexte où l'objectif principal est de prévoir. La validation croisée teste le modèle pendant la formation et sa capacité à généraliser les données.

En quoi les données de test et de train sont-elles différentes?

Les données utilisées pour développer un modèle, telles que les données utilisées pour déterminer les coefficients d'une régression multilinéaire, sont appelés données de formation. Une fois le modèle créé, il est testé par rapport aux données de test pour déterminer dans quelle mesure le modèle correspond bien aux données.

Implémentation de validation croisée dans Sklearn

Importation de bibliothèques requises

Importer Numpy comme NP
de Sklearn.Model_Selection Import Train_test_split
des ensembles de données d'importation de Sklearn
De Sklearn Import SVM
de Sklearn.Model_Selection Import Cross_Val_score


Création de l'ensemble de données

X, y = ensembles de données.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])


Sortir

[[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.dix.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]


Créer le modèle et trouver des scores de validation croisée

CLF = SVM.Svc (kernel = 'linéaire', c = 1).fit (x_train, y_train)
CLF = SVM.Svc (kernel = 'linéaire', c = 1, random_state = 42)
scores = cross_val_score (clf, x, y, cv = 5)
Imprimer (scores)


Sortir

[0.96666667 1. 0.96666667 0.96666667 1. ]]

Conclusion

Lorsque l'ensemble de données pour la formation et les tests est trop petit, la validation croisée est requise. L'ensemble de données est généralement partitionné en n pièces aléatoires de volume égal pour empêcher le problème de sur-ajustement. La technique est évaluée avec la partie restante après une formation avec des pièces N-1. La moyenne des métriques tout au long de la N des courses d'entraînement est utilisée pour obtenir la mesure globale. Plus tard, nous avons ajouté la validation croisée à Sklearn, qui a une classe appelée «Sélection du modèle» pour ce faire.