Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Validation croisée | Modélisation
Introduction à l'Apprentissage Automatique avec Python

Validation croisée

Glissez pour afficher le menu

La séparation train-test présente deux inconvénients :

  1. Moins de données d'entraînement, ce qui peut réduire la qualité du modèle ;
  2. Dépendance à la séparation aléatoire, entraînant des résultats instables. Pour surmonter cela, on utilise la validation croisée.

Tout d'abord, diviser l'ensemble du jeu de données en 5 parties égales, appelées plis.

folds_split

Ensuite, utiliser un pli comme ensemble de test et combiner les autres plis pour former l'ensemble d'entraînement.

Étape 2 de la validation croisée

Comme dans tout processus d'évaluation, l'ensemble d'entraînement sert à entraîner le modèle, tandis que l'ensemble de test permet de mesurer ses performances.

Étape 3 de la validation croisée

Le processus est répété de sorte que chaque pli serve une fois de jeu de test, tandis que les autres plis constituent le jeu d'entraînement.

Étape 3 de la VC

La validation croisée génère plusieurs scores de précision—un par découpage. Leur moyenne représente la performance moyenne du modèle. En Python, cela se calcule avec cross_val_score().

Note
Remarque

Vous pouvez choisir n’importe quel nombre de plis. Par exemple, utiliser 10 plis signifie entraîner sur 9 parties et tester sur 1. Cela se définit via le paramètre cv dans cross_val_score().

cross_val_score
1234567891011
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())

La validation croisée est plus fiable mais plus lente, car le modèle est entraîné et évalué n fois. Elle est largement utilisée pour l’optimisation des hyperparamètres, où la validation croisée est répétée pour chaque valeur d’hyperparamètre—par exemple, tester plusieurs valeurs de k dans k-NN. Cela permet de choisir l’option qui donne les meilleurs résultats de façon constante.

question mark

Pourquoi la validation croisée peut-elle être préférée à la séparation train-test pour évaluer la performance d’un modèle d’apprentissage automatique ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 4. Chapitre 4
some-alt