Je crois comprendre que l'estimation de validation croisée multipliée par k de l'erreur de test sous-estime généralement l'erreur de test réelle. Je ne comprends pas pourquoi c'est le cas. Je vois pourquoi l'erreur de formation est généralement inférieure à l'erreur de test - parce que vous entraînez le modèle sur les mêmes données que vous estimez l'erreur! Mais ce n'est pas le cas pour la validation croisée - le pli sur lequel vous mesurez l'erreur est spécifiquement omis pendant le processus de formation.
Est-il également exact de dire que l'estimation de validation croisée de l'erreur de test est biaisée à la baisse?
cross-validation
bias
Rachel Kogan
la source
la source
Réponses:
Pour donner un exemple: signaler uniquement l'erreur CV d'un modèle est problématique si vous avez à l'origine plusieurs modèles (chacun ayant une certaine erreur CV et une variance d'erreur), puis utilisez cette erreur pour choisir le modèle le mieux adapté à votre application. Cela est problématique car avec chaque modèle, vous avez toujours une certaine chance d'être chanceux / malchanceux (et d'obtenir des résultats meilleurs / pires) - et en choisissant un modèle, vous avez probablement également choisi celui où vous avez été plus chanceux. Par conséquent, signaler cette erreur en tant qu'estimation d'erreur finale a tendance à être trop optimiste.
Si vous souhaitez approfondir les détails: cette réponse renvoie à des articles faciles à lire sur ce problème: Utilisation abusive de la validation croisée (rapportant les performances pour la meilleure valeur d'hyperparamètre)
Comme le souligne @cbeleites: ceci est problématique dans le cas où l'on utilise l'erreur CV k-fold obtenue pour par exemple a) choisir un meilleur modèle parmi plusieurs modèles en utilisant par exemple différents hyperparamètres, qui fait partie du processus de formation, et b) puis signale la même erreur que l' erreur de test au lieu d'utiliser un ensemble de test séparé et retenu. Si vous aviez plutôt l'intention de demander l'erreur CV pure elle-même - sans l'utiliser pour choisir un modèle - la réponse de @cbeleites est probablement ce que vous recherchez.
la source
Effectué correctement signifie à peu près que la répartition en ensembles de test et de formation dans la validation croisée conduit en fait à des cas de test qui sont vraiment indépendants du modèle.
Cependant, plusieurs écueils compromettent cette indépendance . En fonction de la gravité de la compromission des données de test et du degré d'adaptation du modèle, ce manque d'indépendance signifie que l'erreur de validation croisée devient en fait une erreur d'apprentissage. C'est-à-dire, dans l'ensemble, vous pouvez vous retrouver avec un biais optimiste sévère (sous-estimer l'erreur de généralisation réelle).
À mon humble avis, il est important de comprendre que la plupart de ces écueils ne sont pas uniques à la validation croisée mais sont mieux caractérisés comme une division erronée en train et ensemble de test : ils peuvent (et se produisent) exactement de la même manière avec d'autres systèmes de validation tels que le maintien ou l'indépendance. ensembles de tests qui, en fait, ne sont pas aussi indépendants qu'on le suppose.
Voici des exemples des erreurs de fractionnement les plus courantes que je vois:
Plus généralement, tout type d'estimation d'erreur utilisé pour l'optimisation du modèle basé sur les données est une erreur de formation car il y a encore une formation en cours d'utilisation de cette estimation d'erreur.
Une ligne de la matrice de données ne constitue pas nécessairement un cas indépendant, par exemple
la source
Tout d'abord, permettez-moi de préciser les termes utilisés dans la question, si je comprends bien. Nous commençons normalement avec un seul ensemble de données d'apprentissage, utilisons la validation croisée k-fold pour tester différents modèles (ou ensembles d'hyperparamètres) et sélectionnons le meilleur modèle avec l'erreur CV la plus faible. Donc, `` l'estimation de validation croisée de l'erreur de test '' signifie utiliser l'erreur CV la plus faible comme erreur de test, pas seulement l'erreur CV d'un modèle aléatoire (ce qui est le cas discuté par les cbeleites, mais ce n'est pas ce que nous faisons normalement). L '«erreur de test réelle» en question est l'erreur que nous obtenons lors de l'application du meilleur modèle de CV à un jeu de données de test infini, en supposant que nous pouvons l'obtenir. L'erreur CV dépend de l'ensemble de données particulier que nous avons, et l'erreur de test réelle dépend du meilleur modèle CV sélectionné, qui dépend également de l'ensemble de données d'apprentissage. La différence entre l'erreur CV et l'erreur de test dépend donc de différents ensembles de données d'apprentissage. Ensuite, la question devient, si nous répétons le processus ci-dessus plusieurs fois avec différents ensembles de données d'apprentissage et faisons la moyenne des deux erreurs respectivement, pourquoi l'erreur CV moyenne est inférieure à l'erreur test moyenne, c'est-à-dire que l'erreur CV est biaisée vers le bas? Mais avant cela, cela se produit-il toujours?
Normalement, il est impossible d'obtenir de nombreux jeux de données d'apprentissage et jeu de données de test contenant des lignes infinies. Mais il est possible de le faire en utilisant des données générées par simulation. Dans le «chapitre 7 Évaluation et sélection des modèles» du livre «Les éléments de l'apprentissage statistique» de Trevor Hastie et al. , il comprend une telle expérience de simulation.
La conclusion est que, en utilisant CV ou bootstrap, "... l'estimation de l'erreur de test pour un ensemble d'entraînement particulier n'est pas facile en général, étant donné uniquement les données de ce même ensemble d'entraînement". Par `` pas facile '', ils signifient que l'erreur CV pourrait être soit sous-estimée soit surestimée la véritable erreur de test en fonction de différents ensembles de données de formation, c'est-à-dire que la variance causée par différents jeux de données de formation est assez importante. Et le parti pris? Le kNN et le modèle linéaire qu'ils ont testé ne sont presque pas biaisés: l'erreur CV surestime la véritable erreur de test de 0 à 4%, mais certains modèles "comme les arbres, la validation croisée et le boot-strap peuvent sous-estimer la vraie erreur de 10%, car le la recherche du meilleur arbre est fortement affectée par l'ensemble de validation ".
Pour résumer, pour un ensemble de données d'apprentissage particulier, l'erreur CV peut être supérieure ou inférieure à la véritable erreur de test. Pour le biais, l'erreur CV moyenne pourrait varier d'un peu plus haut à beaucoup plus bas que la vraie erreur de test moyenne selon les méthodes de modélisation.
La raison de la sous-estimation, comme mentionné ci-dessus, est que la sélection d'hyperparamètres pour le meilleur modèle dépend en fin de compte de l'ensemble de données d'apprentissage particulier que nous obtenons. Un petit détail, que les meilleurs hyperparamètres soient M1 dans cet ensemble de données d'entraînement particulier. Mais, M1 pourrait ne pas être les meilleurs hyperparamètres sur d'autres ensembles de données d'apprentissage, ce qui signifie que l'erreur CV minimale est inférieure à l'erreur CV de M1. Ainsi, les erreurs CV attendues que nous obtenons du processus de formation sont très probablement inférieures à l'erreur CV attendue de M1. La seule fois où l'erreur CV minimale d'un ensemble de données d'apprentissage particulier n'est pas biaisée, c'est lorsque le meilleur modèle est toujours le meilleur indépendant des ensembles de données d'apprentissage. D'un autre côté, l'erreur CV pourrait également surestimer un peu l'erreur de test réelle, comme discuté par les cbeleites. C'est parce que l'erreur de CV k fois est obtenue en utilisant un peu moins de données d'apprentissage pour former le modèle (pour 10 fois cv, utilisez 90% de données), elle est biaisée vers le haut contre l'erreur vraie, mais pas beaucoup. Il y a donc deux biais allant dans des directions différentes. Pour la méthode de modélisation, la tendance à la sur-adaptation, en utilisant moins de CV de pli, par exemple 5 fois vs 10 fois, pourrait entraîner moins de biais.
Cela dit, cela n'aide pas trop dans la pratique: nous n'obtenons généralement qu'un seul ensemble de données «particulier». si nous tenons 15% à 30% comme données de test et que nous sélectionnons le meilleur modèle par CV sur le reste comme données de formation, les chances que l'erreur CV soit différente de l'erreur de test car les deux diffèrent de l'erreur de test attendue. Nous pouvons être suspects si l'erreur CV est bien inférieure à l'erreur de test, mais nous ne saurons pas laquelle est plus proche de la véritable erreur de test. La meilleure pratique pourrait être simplement de présenter les deux mesures.
la source