Lorsque nous effectuons une validation croisée k, devons-nous simplement utiliser le classificateur qui a la plus haute précision de test? Quelle est généralement la meilleure approche pour obtenir un classifieur à partir d'une validation croisée?
machine-learning
cross-validation
Armon Safai
la source
la source
Réponses:
Vous effectuez une validation croisée lorsque vous souhaitez effectuer l'une des deux opérations suivantes:
La sélection des modèles peut se présenter dans différents scénarios:
(veuillez noter que si vous sélectionnez à la fois un algorithme - mieux vaut l'appeler modèle - et que vous effectuez également une recherche d'hyper-paramètres, vous devez effectuer la validation croisée imbriquée. Nested-CV est-il vraiment nécessaire? )
La validation croisée garantit dans une certaine mesure que l'estimation de l'erreur est la plus proche possible en tant qu'erreur de généralisation pour ce modèle (bien que cela soit très difficile à estimer). Lorsque vous observez l'erreur moyenne parmi les plis, vous pouvez avoir une bonne projection de l'erreur attendue pour un modèle basé sur l'ensemble de données complet. Il est également important d'observer la variance de la prédiction, c'est-à-dire combien l'erreur varie d'un pli à l'autre. Si la variation est trop élevée (valeurs considérablement différentes), le modèle aura tendance à être instable. L'amorçage est l'autre méthode fournissant une bonne approximation dans ce sens. Je suggère de lire attentivement la section 7 sur le livre "Elements of Statistical Learning", disponible gratuitement sur: ELS-Standford
Comme cela a été mentionné précédemment, vous ne devez pas prendre le modèle construit dans aucun des plis. Au lieu de cela, vous devez reconstruire le modèle avec l'ensemble de données complet (celui qui a été divisé en plis). Si vous avez un ensemble de tests séparé, vous pouvez l'utiliser pour essayer ce modèle final, obtenant une erreur similaire (et doit sûrement plus élevée) que celle obtenue par CV. Vous devez cependant vous fier à l'erreur estimée donnée par la procédure CV.
Après avoir effectué un CV avec différents modèles (combinaison d'algorithmes, etc.), nous avons choisi celui qui fonctionnait le mieux en ce qui concerne l'erreur et sa variance entre les plis. Vous devrez reconstruire le modèle avec l'ensemble de données complet. Voici une confusion courante: nous nous référons communément à la sélection du modèle, pensant que le modèle est le modèle prêt à prédire construit sur des données, mais dans ce cas, il fait référence à la combinaison d'algorithme + de procédures de pré-traitement que vous appliquez. Donc, pour obtenir le modèle réel dont vous avez besoin pour faire des prédictions / classification, vous devez le construire en utilisant la combinaison gagnante sur l'ensemble de données.
La dernière chose à noter est que si vous appliquez tout type de prétraitement qui utilise les informations de classe (sélection de fonctionnalités, réduction de dimensionnalité LDA, etc.), cela doit être effectué dans chaque pli, et pas auparavant sur les données. Il s'agit d'un aspect critique. Devrait faire la même chose si vous appliquez des méthodes de prétraitement qui impliquent des informations directes sur les données (PCA, normalisation, standardisation, etc.). Vous pouvez cependant appliquer un prétraitement qui ne dépend pas des données (supprimer une variable après avis d'expert, mais cela est assez évident). Cette vidéo peut vous aider dans cette direction: CV dans le bon et le mauvais sens
Voici une dernière belle explication sur le sujet: CV et sélection du modèle
la source
Non. Vous ne sélectionnez aucun des classificateurs k créés lors de la validation croisée k-fold. Tout d'abord, l'objectif de la validation croisée n'est pas de proposer un modèle prédictif, mais d'évaluer la précision avec laquelle un modèle prédictif fonctionnera dans la pratique. Deuxièmement, pour les besoins de l'argument, disons que vous deviez utiliser la validation croisée k-fold avec k = 10 pour trouver lequel des trois algorithmes de classification différents serait le plus approprié pour résoudre un problème de classification donné. Dans ce cas, les données sont divisées au hasard en k parties de taille égale. Une des pièces est réservée aux tests et les autres pièces k-1 seront utilisées pour la formation. Le processus de validation croisée est répété k (fois) de sorte que, à chaque itération, une partie différente est utilisée pour les tests. Après avoir exécuté la validation croisée, vous examinez les résultats de chaque pli et vous vous demandez quel algorithme de classification (pas l'un des modèles formés!) Est le plus approprié. Vous ne voulez pas choisir l'algorithme qui a la précision de test la plus élevée sur l'une des 10 itérations, car peut-être est-il arrivé au hasard que les données de test sur cette itération particulière contenaient des exemples très simples, qui conduisent ensuite à une précision de test élevée. Ce que vous voulez faire, c'est choisir l'algorithme qui a produit la meilleure précision ce qui conduit ensuite à une grande précision de test. Ce que vous voulez faire, c'est choisir l'algorithme qui a produit la meilleure précision ce qui conduit ensuite à une grande précision de test. Ce que vous voulez faire, c'est choisir l'algorithme qui a produit la meilleure précisionmoyenne sur tous les k plis . Maintenant que vous avez choisi l'algorithme, vous pouvez le former à l'aide de toutes vos données d'entraînement et commencer à faire des prédictions dans la nature.
Cela dépasse le cadre de cette question, mais vous devez également optimiser les hyperparamètres du modèle (le cas échéant) pour tirer le meilleur parti de l'algorithme sélectionné. Les gens effectuent généralement une optimisation hyperparamétrique à l'aide de la validation croisée.
la source
Supposons donc que vous avez une formation dont vous utilisez 80% comme formation et 20% comme données de validation. Nous pouvons nous entraîner sur les 80% et tester sur les 20% restants, mais il est possible que les 20% que nous avons pris ne soient pas en ressemblance avec les données de test réelles et puissent effectuer de mauvaises dernières. Donc, pour éviter cela, nous pouvons utiliser la validation croisée k-fold.
Alors, disons que vous avez différents modèles et que vous voulez savoir ce qui fonctionne mieux avec votre jeu de données, la validation croisée k-fold fonctionne très bien. Vous pouvez connaître les erreurs de validation sur les performances de k-validation et choisir le meilleur modèle en fonction de cela. C'est généralement le but de la validation croisée k-fold.
En venant à un seul modèle et si vous vérifiez avec la validation croisée k-fold, vous pouvez obtenir une approximation des erreurs de données de test, mais
when you are actually training it finally, you can use the complete training data
(car on suppose ici que l'ensemble des données fonctionnera mieux qu'une partie de celles-ci Ce n'est peut-être pas le cas parfois, mais c'est l'hypothèse générale.)la source