Comment savoir si une courbe d'apprentissage du modèle SVM souffre de biais ou de variance?

Réponses:

13

Partie 1: Comment lire la courbe d'apprentissage

Premièrement, nous devons nous concentrer sur le côté droit de l'intrigue, où il y a suffisamment de données pour l'évaluation.

  • Si deux courbes sont "proches l'une de l'autre" et les deux mais ont un score faible. Le modèle souffre d'un problème de sous-ajustement (biais élevé)

  • Si la courbe d'apprentissage a un score bien meilleur mais que la courbe de test a un score inférieur, c'est-à-dire qu'il y a de grands écarts entre deux courbes. Ensuite, le modèle souffre d'un problème de sur-ajustement (High Variance)

Partie 2: Mon évaluation pour le complot que vous avez fourni

De l'intrigue, il est difficile de dire si le modèle est bon ou non. Il est possible que vous ayez vraiment un "problème facile", un bon modèle peut atteindre 90%. D'un autre côté, il est possible que vous ayez vraiment un "problème difficile" que la meilleure chose que nous puissions faire est d'atteindre 70%. (Notez que vous ne vous attendez peut-être pas à avoir un modèle parfait, disons que le score est de 1. La quantité que vous pouvez atteindre dépend de la quantité de bruit dans vos données. peu importe ce que vous faites, vous ne pouvez pas obtenir 1 sur le score.)

Un autre problème dans votre exemple est que 350 exemples semblent trop petits dans une application réelle.

Partie 3: Plus de suggestions

Pour mieux comprendre, vous pouvez faire des expériences suivantes pour expérimenter le sous-ajustement d'un sur-ajustement et observer ce qui se passera dans la courbe d'apprentissage.

  • Sélectionnez des données très compliquées, par exemple des données MNIST, et adaptez-vous à un modèle simple, par exemple un modèle linéaire avec une fonction.

  • Sélectionnez des données simples, par exemple des données d'iris, adaptées à un modèle de complexité, par exemple SVM.


Partie 4: Autres exemples

De plus, je donnerai deux exemples liés au sous-ajustement et au sur-ajustement. Notez qu'il ne s'agit pas d'une courbe d'apprentissage, mais des performances par rapport au nombre d'itérations dans le modèle de renforcement de gradient , où plus d'itérations auront plus de chances de sur-ajuster. L'axe des x indique le nombre d'itérations et l'axe des y indique les performances, qui sont une zone négative sous ROC (la plus faible est la meilleure).

Le sous-tracé de gauche ne souffre pas de sur-ajustement (enfin pas de sous-ajustement car les performances sont raisonnablement bonnes) mais celui de droite souffre de sur-ajustement lorsque le nombre d'itérations est important.

entrez la description de l'image ici

Haitao Du
la source
Merci hxd1011! Êtes-vous d'accord avec moi si je dis que mon modèle souffre d'un peu de variance et d'un peu de biais (puisque le score n'est pas 1)?
Afke
@Papie Je pense que votre modèle va bien ... 80% sur le score n'est pas mauvais et deux courbes sont proches. Le seul problème est que les exemples sont jusqu'à 350, ce qui pourrait être trop petit dans une application réelle.
Haitao Du
@Papie En outre, vous ne pouvez pas vous attendre à avoir un modèle parfait, disons que le score est 1. La quantité que vous pouvez obtenir dépend de la quantité de bruit dans vos données. Supposons que vos données contiennent un grand nombre de points de données dotés de la fonction EXACTE mais que différentes étiquettes, quoi que vous fassiez, vous ne pouvez pas obtenir 1 sur le score.
Haitao Du
11
Je pense que son "80% sur le score n'est pas mauvais" n'est pas une bonne façon de penser aux choses. Il n'y a pas de score global qui soit bon, cela dépend fortement du problème qui est résolu, plus précisément, du rapport signal / bruit dans le processus et des données disponibles. Vous le signalez dans votre réponse, je supprimerais donc le commentaire "pas mal".
Matthew Drury
1
@MatthewDrury Merci pour vos suggestions, réponse révisée!
Haitao Du