Comment juger si un modèle d'apprentissage automatique supervisé est sur-adapté ou non?

27

Quelqu'un peut-il me dire comment juger si un modèle d'apprentissage automatique supervisé est trop adapté ou non? Si je n'ai pas de jeu de données de validation externe, je veux savoir si je peux utiliser la validation croisée ROC de 10 fois pour expliquer le sur-ajustement. Si j'ai un ensemble de données de validation externe, que dois-je faire ensuite?

user22062
la source

Réponses:

29

En bref: en validant votre modèle. La principale raison de la validation est d'affirmer qu'aucun surajustement ne se produit et d'estimer les performances généralisées du modèle.

Overfit

Voyons d'abord ce qu'est le sur-ajustement. Les modèles sont normalement formés pour s'adapter à un ensemble de données en minimisant certaines fonctions de perte sur un ensemble d'apprentissage. Il existe cependant une limite où la minimisation de cette erreur de formation ne bénéficiera plus aux performances réelles des modèles, mais minimisera uniquement l'erreur sur l'ensemble spécifique de données. Cela signifie essentiellement que le modèle a été trop étroitement ajusté aux points de données spécifiques de l'ensemble d'apprentissage, essayant de modéliser les modèles des données provenant du bruit. Ce concept est appelé overfit . Un exemple de sur-ajustement est affiché ci-dessous où vous voyez l'ensemble d'entraînement en noir et un ensemble plus grand de la population réelle en arrière-plan. Sur cette figure, vous pouvez voir que le modèle bleu est trop étroitement ajusté à l'ensemble d'entraînement, modélisant le bruit sous-jacent. entrez la description de l'image ici

Afin de juger si un modèle est surajusté ou non, nous devons estimer l'erreur généralisée (ou les performances) que le modèle aura sur les données futures et la comparer à nos performances sur l'ensemble d'entraînement. L'estimation de cette erreur peut se faire de plusieurs manières différentes.

Division de l'ensemble de données

L'approche la plus simple pour estimer les performances généralisées consiste à partitionner l'ensemble de données en trois parties, un ensemble d'apprentissage, un ensemble de validation et un ensemble de tests. L'ensemble d'apprentissage est utilisé pour entraîner le modèle à s'adapter aux données, l'ensemble de validation est utilisé pour mesurer les différences de performances entre les modèles afin de sélectionner le meilleur et l'ensemble de test pour affirmer que le processus de sélection du modèle ne correspond pas au premier deux jeux.

Pour estimer la quantité de sur-équipement, évaluez simplement vos mesures d'intérêt sur l'ensemble de test comme dernière étape et comparez-les à vos performances sur l'ensemble d'entraînement. Vous mentionnez ROC, mais à mon avis, vous devriez également examiner d'autres mesures telles que, par exemple, le score de Brier ou un tracé d'étalonnage pour garantir les performances du modèle. Cela dépend bien sûr de votre problème. Il y a beaucoup de métriques mais c'est d'ailleurs le point ici.

Cette méthode est très courante et respectée mais elle impose une forte demande sur la disponibilité des données. Si votre jeu de données est trop petit, vous perdrez très probablement beaucoup de performances et vos résultats seront biaisés sur la répartition.

Validation croisée

Une façon de contourner le gaspillage d'une grande partie des données pour la validation et le test consiste à utiliser la validation croisée (CV) qui estime les performances généralisées en utilisant les mêmes données que celles utilisées pour former le modèle. L'idée derrière la validation croisée est de diviser l'ensemble de données en un certain nombre de sous-ensembles, puis d'utiliser chacun de ces sous-ensembles comme des ensembles de tests maintenus à tour de rôle tout en utilisant le reste des données pour former le modèle. La moyenne de la métrique sur tous les plis vous donnera une estimation des performances du modèle. Le modèle final est ensuite généralement formé à l'aide de toutes les données.

Cependant, l'estimation du CV n'est pas non biaisée. Mais plus vous utilisez de plis, plus le biais est petit, mais vous obtenez à la place une plus grande variance.

Comme dans la répartition de l'ensemble de données, nous obtenons une estimation des performances du modèle et pour estimer la sur-adaptation, il vous suffit de comparer les métriques de votre CV avec celles acquises en évaluant les métriques de votre ensemble d'entraînement.

Bootstrap

L'idée derrière le bootstrap est similaire à CV, mais au lieu de diviser l'ensemble de données en parties, nous introduisons l'aléatoire dans la formation en dessinant des ensembles de formation à partir de l'ensemble de données à plusieurs reprises avec remplacement et en effectuant la phase de formation complète sur chacun de ces échantillons de bootstrap.

La forme la plus simple de validation de bootstrap évalue simplement les métriques sur les échantillons non trouvés dans l'ensemble de formation (c'est-à-dire ceux laissés de côté) et la moyenne sur toutes les répétitions.

Cette méthode vous donnera une estimation des performances du modèle qui, dans la plupart des cas, sont moins biaisées que le CV. Encore une fois, en le comparant à la performance de votre ensemble d'entraînement et vous obtenez la sur-tenue.

Il existe des moyens d'améliorer la validation du bootstrap. La méthode .632+ est connue pour donner des estimations meilleures et plus robustes des performances du modèle généralisé, en tenant compte de la surajustement. (Si vous êtes intéressé, l'article original est une bonne lecture: Améliorations de la validation croisée: la méthode d'amorçage 632+ )

J'espère que cela répond à votre question. Si vous êtes intéressé par la validation des modèles, je vous recommande de lire la partie sur la validation dans le livre Les éléments de l'apprentissage statistique: exploration de données, inférence et prédiction qui est disponible gratuitement en ligne.

tandis que
la source
2
Notez que votre terminologie de validation vs test n'est pas suivie dans tous les domaines. Par exemple, dans mon domaine (chimie analytique), la validation est une procédure qui devrait prouver que le modèle fonctionne bien (et mesurer son efficacité). Cela se fait avec le modèle final , aucune autre modification n'est autorisée par la suite (ou, si vous le faites, vous devez valider à nouveau avec des données indépendantes). J'appellerais donc votre ensemble de validation un "ensemble de test interne" ou un "ensemble de test d'optimisation". Les données de test "externes" n'empêchent pas le sur- ajustement, mais elles peuvent être utilisées pour mesurer l'étendue du sur-ajustement.
cbeleites prend en charge Monica le
Ok, je n'ai pas d'expérience dans votre domaine. Merci pour la clarification. C'est probablement la même chose dans d'autres domaines également. J'ai simplement utilisé la terminologie utilisée dans le livre auquel j'ai lié à la fin. J'espère que ce n'est pas trop déroutant.
tandis que le
7

Voici comment vous pouvez estimer l'ampleur du sur-ajustement:

  • Obtenez une estimation d'erreur interne. Soit resubstitutio (= prédire les données d'entraînement), ou si vous effectuez une «validation» croisée interne pour optimiser les hyperparamètres, cette mesure serait également intéressante.
  • Obtenez une estimation d'erreur de l'ensemble de tests indépendant. Habituellement, rééchantillonnage (. Itéré validation croisée ou hors-bootstrap * est recommandée , mais vous devez être prudent qu'aucune fuite de données se produisent. Ie la boucle rééchantillonnage doit recalculer toutes les étapes qui ont des calculs couvrant plus d'un cas. Cela inclut avant étapes de traitement telles que le centrage, mise à l' échelle, etc. de plus, assurez-vous de diviser au plus haut niveau si vous avez un « hiérarchique » (également connu sous le nom « cluster) structure de données telles que des mesures répétées, par exemple , le même patient (=> rééchantillonnage des patients ).
  • Ensuite, comparez à quel point l'estimation d'erreur "intérieure" est meilleure que celle indépendante.

Voici un exemple:
surajustement
Trefferrate = taux de réussite (% correctement classé), Variablenzahl = nombre de variables (= complexité du modèle)
Symboles :. resubstitution, + estimation interne de sortie de l'optimiseur d'hyperparamètre, o validation croisée externe indépendante au niveau du patient

Cela fonctionne avec ROC, ou des mesures de performance telles que le score de Brier, la sensibilité, la spécificité, ...

* Je ne recommande pas le bootstrap .632 ou .632+ ici: ils mélangent déjà une erreur de resubstitution: vous pouvez de toute façon les calculer plus tard à partir de vos estimations de resubstitution et de bootstap.

cbeleites soutient Monica
la source
0

Le surajustement est simplement la conséquence directe de la prise en compte des paramètres statistiques, et donc des résultats obtenus, comme une information utile sans vérifier qu'ils n'ont pas été obtenus de manière aléatoire. Par conséquent, afin d'estimer la présence d'un sur-ajustement, nous devons utiliser l'algorithme sur une base de données équivalente à la vraie mais avec des valeurs générées de manière aléatoire, en répétant cette opération plusieurs fois, nous pouvons estimer la probabilité d'obtenir des résultats égaux ou meilleurs de manière aléatoire . Si cette probabilité est élevée, nous sommes très probablement dans une situation de surajustement. Par exemple, la probabilité qu'un polynôme du quatrième degré ait une corrélation de 1 avec 5 points aléatoires sur un plan est de 100%, donc cette corrélation est inutile et nous sommes dans une situation de surajustement.

Andrea Berdondini
la source