top of page

Validation croisée

Validation croisée

La validation croisée est une méthode permettant de calculer une métrique de performance sur plusieurs sous-ensembles d'une base de données, puis de moyenner cette métrique, pour obtenir un résultat plus fiable que si l'on avait calculé cette métrique de performance sur un seul ensemble de test. C'est une méthode souvent utilisée pour choisir la valeur d'un hyperparamètre.


Méthode de la validation à P plis


  • Problème : on cherche à trouver la valeur d’un hyperparamètre, qui maximise les performances du modèle

  • On découpe la base de données en P sous-ensembles.

  • Pour chaque valeur de l’hyperparamètre :

    • On isole une des P sous-parties de la base de données, qui fera office de base de test, et on utilise les (P-1) autres sous-parties pour faire l’apprentissage.

    • On calcule une métrique de performance sur la base de test.

    • On répète ces opérations en changeant à chaque fois le sous-ensemble utilisé en base de test.

    • On calcule ensuite la moyenne de notre métrique de performance, pour cette valeur de l’hyperparamètre.

  • On choisit le modèle pour lequel la performance moyenne est la meilleure.


Syntaxe Python


Il est possible de faire une validation croisée rapidement sur Python, grâce à la bibliothèque Scikit-learn. Voici la syntaxe correspondante :


Exemple


Imaginons qu'on ait effectué une classification à l'aide d'un algorithme k-NN (k plus proches voisins), avec k=5, et obtenu les performances suivantes :

On cherche maintenant à changer la valeur de k pour maximiser les performances de notre modèle. Pour ce faire, on réalise une validation croisée :


On constate que c'est la valeur k=10 qui donne les meilleures performances. En effet, voici les performances du modèle avec k=10 :



Voir aussi : all(), any(), append(), count(), enumerate(), extend(), filter(), float() format() input(), int(), isdigit(), isinstance(), items(), join(), endswith(), list(), map(), max(), mean(), min(), pop(), range(), len(), startswith(), zip(), type(), get(), symmetric_difference(), keys(), difference()


Numpy : arange(), array(), delete(), hsplit(), hstack(), linspace(), logical_and(), logical_or(), polyfit()


Pandas : concat(), concatenate(), describe(), dict(), drop_duplicates(), dropna(), fillna(), from_dict(), groupby(), head(), iloc, info(), insert(), isin(), melt(), merge(), pivot_table(), read_csv(), read_excel(), rename(), where()


Machine Learning : F1-Score, Précision, Rappel, Normalisation, Courbe d’apprentissage, Les résidus, Régression VS classification, Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Accuracy, L’astuce du noyau, Bases d’apprentissage et de test, Classes linéairement séparables, Apprentissage supervisé VS non-supervisé, Coefficient de détermination R2, Validation croisée


N'hésitez pas à consulter nos formations sur cette page.


Glossaire pour apprendre à coder sur Python

Apprenez à coder sur Python

avec des experts

Notre organisme de formation spécialisé dans le langage Python et la Data Science forme les débutants et perfectionne les experts sur ce langage informatique. Pourquoi pas vous?

Des questions?

Contact Expert Python

Un formateur Python vous répond très vite

bottom of page