Validation croisée
La validation croisée partitionne les données en ensembles d’entraînement et de validation à plusieurs reprises pour évaluer et améliorer la généralisation des modèles en apprentissage automatique.
La validation croisée est une méthode statistique employée pour évaluer et comparer les modèles d’apprentissage automatique en partitionnant les données en ensembles d’entraînement et de validation à plusieurs reprises. L’idée principale est d’estimer comment les résultats d’un modèle se généraliseront à un ensemble de données indépendant, afin de s’assurer que le modèle fonctionne bien non seulement sur les données d’entraînement mais aussi sur des données inconnues. Cette technique est cruciale pour atténuer des problèmes tels que le surapprentissage, où un modèle apprend trop bien les données d’entraînement, y compris leur bruit et leurs valeurs aberrantes, mais obtient de mauvais résultats sur de nouvelles données.
Qu’est-ce que la validation croisée ?
La validation croisée consiste à diviser un ensemble de données en sous-ensembles complémentaires, dont l’un est utilisé pour entraîner le modèle et l’autre pour le valider. Ce processus est répété pendant plusieurs tours, avec des sous-ensembles différents utilisés pour l’entraînement et la validation à chaque tour. Les résultats de validation sont ensuite moyennés pour produire une estimation unique de la performance du modèle. Cette méthode fournit une mesure plus précise de la performance prédictive d’un modèle par rapport à une simple division train-test.
Types de validation croisée
Validation croisée K-Fold
- L’ensemble de données est divisé en « k » plis égaux.
- À chaque itération, un pli sert d’ensemble de validation, tandis que les « k-1 » plis restants forment l’ensemble d’entraînement.
- Ce processus se répète « k » fois. Les résultats sont moyennés pour fournir une estimation finale de la performance.
- Un choix typique pour « k » est 10, mais il peut varier.
Validation croisée K-Fold stratifiée
- Semblable à K-Fold, mais maintient la même distribution de classes dans tous les plis.
- Utile pour les ensembles de données déséquilibrés.
Validation croisée Leave-One-Out (LOOCV)
- Chaque instance de l’ensemble de données est utilisée une fois comme ensemble de validation ; le reste forme l’ensemble d’entraînement.
- Coûteuse en calcul mais utile pour de petits ensembles de données.
Méthode Holdout
- L’ensemble de données est divisé en deux parties : une pour l’entraînement et l’autre pour le test.
- Simple mais moins robuste, car la performance dépend de la division.
Validation croisée pour séries temporelles
- Conçue pour les données temporelles.
- Respecte l’ordre temporel afin qu’aucun point futur ne soit utilisé pour l’entraînement dans les ensembles précédents.
Validation croisée Leave-P-Out
- « p » points de données sont laissés de côté comme ensemble de validation, et le modèle est entraîné sur le reste.
- Répété pour chaque sous-ensemble possible de « p » points ; très approfondi mais coûteux en calcul.
- Plus sur le coût
Validation croisée de Monte Carlo (Shuffle-Split)
- Mélange aléatoirement les données en ensembles d’entraînement et de validation à plusieurs reprises.
- Moyenne les résultats, offrant plus de variations dans les divisions qu’un K-Fold.
Importance en apprentissage automatique
La validation croisée est un élément clé de l’évaluation des modèles d’apprentissage automatique. Elle offre un aperçu de la façon dont un modèle se comportera sur des données inconnues et aide à l’ajustement des hyperparamètres en permettant au modèle d’être entraîné et validé sur plusieurs sous-ensembles de données. Ce processus guide la sélection du meilleur modèle et des hyperparamètres optimaux, renforçant la capacité du modèle à généraliser.
Éviter le surapprentissage et le sous-apprentissage
L’un des principaux avantages de la validation croisée est sa capacité à détecter le surapprentissage. En validant le modèle sur plusieurs sous-ensembles de données, la validation croisée fournit une estimation plus réaliste de la capacité de généralisation du modèle. Elle garantit que le modèle ne fait pas que mémoriser les données d’entraînement, mais apprend à prédire correctement de nouvelles données. À l’inverse, le sous-apprentissage peut être identifié si le modèle obtient de mauvais résultats sur tous les ensembles de validation, indiquant qu’il ne parvient pas à saisir les schémas sous-jacents des données.
Exemples et cas d’usage
Exemple : validation croisée K-Fold
Considérons un ensemble de données de 1000 instances. En validation croisée à 5 plis :
- L’ensemble de données est divisé en 5 parties, chacune contenant 200 instances.
- Lors de la première itération, les 200 premières servent à la validation, et les 800 restantes à l’entraînement.
- Cela se répète cinq fois, chaque pli servant une fois d’ensemble de validation.
- Les résultats de chaque itération sont moyennés pour estimer la performance.
Cas d’usage : ajustement des hyperparamètres
La validation croisée est essentielle pour l’ajustement des hyperparamètres. Par exemple, lors de l’entraînement d’une machine à vecteurs de support (SVM) :
- Le choix du type de noyau et du paramètre de régularisation « C » influence fortement la performance.
- En testant différentes combinaisons via la validation croisée, la configuration optimale peut être identifiée pour maximiser la précision.
Cas d’usage : sélection de modèle
Lorsque plusieurs modèles sont candidats au déploiement :
- Évaluer des modèles comme la Forêt Aléatoire, le Boosting de Gradient et les Réseaux de Neurones sur le même ensemble de données à l’aide de la validation croisée.
- Comparer leurs performances de manière robuste et sélectionner celui qui généralise le mieux.
Cas d’usage : prévision de séries temporelles
Pour les données temporelles :
- Utiliser la validation croisée pour séries temporelles pour entraîner sur des données passées et valider sur des points futurs.
- Garantir des prévisions robustes pour l’avenir à partir des schémas historiques.
Implémentation en Python
Des bibliothèques Python telles que Scikit-learn offrent des fonctions intégrées pour la validation croisée.
Exemple d’implémentation de la validation croisée K-Fold avec Scikit-learn :
from sklearn.model_selection import cross_val_score, KFold
from sklearn.svm import SVC
from sklearn.datasets import load_iris
# Charger le jeu de données
iris = load_iris()
X, y = iris.data, iris.target
# Créer le classifieur SVM
svm_classifier = SVC(kernel='linear')
# Définir le nombre de plis
num_folds = 5
kf = KFold(n_splits=num_folds, shuffle=True, random_state=42)
# Effectuer la validation croisée
cross_val_results = cross_val_score(svm_classifier, X, y, cv=kf)
# Métriques d'évaluation
print(f'Cross-Validation Results (Accuracy): {cross_val_results}')
print(f'Mean Accuracy: {cross_val_results.mean()}')
Défis et considérations
Coût computationnel
- La validation croisée (surtout LOOCV) peut être coûteuse en calcul, car elle nécessite plusieurs entraînements de modèle.
- Les grands ensembles de données ou les modèles complexes augmentent la charge computationnelle.
Biais-variance
- Le choix de « k » dans le K-Fold influence le biais et la variance.
- Petit « k » : Variance plus élevée, biais plus faible
- Grand « k » : Variance plus faible, biais plus élevé
- L’équilibre est crucial.
Gestion des données déséquilibrées
- Pour les ensembles déséquilibrés, la validation croisée stratifiée assure que chaque pli reflète la distribution globale des classes.
- Prévient le biais envers la classe majoritaire.
Articles scientifiques liés à la validation croisée
La validation croisée est une méthode statistique utilisée pour estimer la performance des modèles d’apprentissage automatique. Elle est principalement utilisée en apprentissage automatique appliqué pour estimer la performance d’un modèle sur de nouvelles données. La validation croisée consiste à partitionner un ensemble de données en sous-ensembles complémentaires, à réaliser l’analyse sur un sous-ensemble (l’ensemble d’entraînement), et à valider l’analyse sur l’autre sous-ensemble (l’ensemble de test). Pour approfondir la compréhension de la validation croisée, on peut se référer à plusieurs articles scientifiques :
Approximate Cross-validation: Guarantees for Model Assessment and Selection
Ashia Wilson, Maximilian Kasy, and Lester Mackey (2020)
Discute de l’intensité computationnelle de la validation croisée avec de nombreux plis, propose une approximation via une unique étape de Newton, et fournit des garanties pour les problèmes de prédiction non lisses.
Lire plus iciCounterfactual Cross-Validation: Stable Model Selection Procedure for Causal Inference Models
Yuta Saito and Shota Yasui (2020)
Se concentre sur la sélection de modèle pour la prédiction de l’effet du traitement moyen conditionnel, propose une nouvelle métrique pour un classement stable et précis des performances, utile en inférence causale.
Lire plus iciBlocked Cross-Validation: A Precise and Efficient Method for Hyperparameter Tuning
Giovanni Maria Merola (2023)
Présente la validation croisée par blocs (BCV), qui fournit des estimations d’erreur plus précises avec moins de calculs, améliorant l’efficacité de l’ajustement des hyperparamètres.
Lire plus ici
Questions fréquemment posées
- Qu'est-ce que la validation croisée en apprentissage automatique ?
La validation croisée est une méthode statistique qui divise les données en plusieurs ensembles d'entraînement et de validation pour évaluer la performance du modèle et s'assurer qu'il généralise bien à des données inconnues.
- Pourquoi la validation croisée est-elle importante ?
Elle aide à détecter le surapprentissage ou le sous-apprentissage, fournit une estimation réaliste de la performance du modèle et guide l'ajustement des hyperparamètres et la sélection du modèle.
- Quels sont les types courants de validation croisée ?
Les types courants incluent K-Fold, K-Fold stratifiée, Leave-One-Out (LOOCV), méthode Holdout, validation croisée pour séries temporelles, Leave-P-Out et validation croisée de Monte Carlo.
- Comment la validation croisée est-elle utilisée pour l'ajustement des hyperparamètres ?
En entraînant et en évaluant les modèles sur plusieurs sous-ensembles de données, la validation croisée aide à identifier la combinaison optimale d'hyperparamètres qui maximise la performance de validation.
- Quels sont les défis de la validation croisée ?
La validation croisée peut être coûteuse en calcul, en particulier pour de grands ensembles de données ou des méthodes comme LOOCV, et peut nécessiter une attention particulière pour des ensembles déséquilibrés ou des données temporelles.
Prêt à créer votre propre IA ?
Chatbots intelligents et outils d'IA sous un même toit. Connectez des blocs intuitifs pour transformer vos idées en Flows automatisés.