Validation Croisée
La séparation train-test présente deux inconvénients :
- Moins de données d'entraînement, ce qui peut réduire la qualité du modèle ;
- 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().
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().
1234567891011import 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 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.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
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
Validation Croisée
Glissez pour afficher le menu
La séparation train-test présente deux inconvénients :
- Moins de données d'entraînement, ce qui peut réduire la qualité du modèle ;
- 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().
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().
1234567891011import 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 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.
Merci pour vos commentaires !