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

bookValidation Croisée

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.

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

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

Le processus est répété afin que chaque pli serve une fois d'ensemble de test, tandis que les plis restants forment l'ensemble d'entraînement.

La validation croisée produit plusieurs scores de précision—un par division. 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 règle via le paramètre cv dans 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())
copy

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 dans 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 offre les meilleures performances de façon constante.

question mark

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

Select the correct answer

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

Awesome!

Completion rate improved to 3.13

bookValidation 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.

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

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

Le processus est répété afin que chaque pli serve une fois d'ensemble de test, tandis que les plis restants forment l'ensemble d'entraînement.

La validation croisée produit plusieurs scores de précision—un par division. 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 règle via le paramètre cv dans 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())
copy

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 dans 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 offre les meilleures performances de façon constante.

question mark

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

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4
some-alt