La précision du modèle à 100% sur les données hors échantillon est-elle sur-adaptée?

11

Je viens de terminer le cours d'apprentissage automatique pour R sur cognitiveclass.ai et j'ai commencé à expérimenter avec randomforests.

J'ai créé un modèle en utilisant la bibliothèque "randomForest" dans R. Le modèle classe par deux classes, bonnes et mauvaises.

Je sais que lorsqu'un modèle est surajusté, il fonctionne bien sur les données de son propre trainingset mais mal sur les données hors échantillon.

Pour former et tester mon modèle, j'ai mélangé et divisé l'ensemble de données complet en 70% pour la formation et 30% pour les tests.

Ma question: j'obtiens une précision de 100% de la prédiction effectuée sur l'ensemble de test. Est-ce mauvais? Cela semble trop beau pour être vrai.

L'objectif est la reconnaissance des formes d'onde sur quatre les unes des autres en fonction des formes d'onde. Les caractéristiques de l'ensemble de données sont les résultats des coûts de l'analyse de distorsion temporelle dynamique des formes d'onde avec leur forme d'onde cible.

Milan van Dijck
la source
bienvenue sur le site! Avez-vous essayé de prédire certaines données de bruit?
Toros91
Chaque fois que vous mélangez, entraînez et testez, la précision est de 100%?
Alex
@Alex Pas exactement mais ça reste très élevé comme 98,55%
Milan van Dijck
1
@Alex 11,35% "ok" et 88,65% "mauvais"
Milan van Dijck
1
C'est assez déséquilibré. Essayez d'utiliser le rééchantillonnage (échantillonnage répété) pour faire pencher la balance dans l'ensemble de formation vers la classe OK (faites-le 30% par exemple) et conservez le ratio 11/89 dans les ensembles de test / validation. Qu'est ce que tu obtiens?
Alex

Réponses:

29

Des scores de validation élevés comme la précision signifient généralement que vous n'êtes pas en sur-ajustement, mais cela devrait conduire à la prudence et peut indiquer que quelque chose s'est mal passé. Cela pourrait également signifier que le problème n'est pas trop difficile et que votre modèle fonctionne vraiment bien. Deux choses qui pourraient mal tourner:

  • Vous n'avez pas fractionné correctement les données et les données de validation se sont également produites dans vos données d'entraînement, ce qui signifie qu'elles indiquent un surapprentissage parce que vous ne mesurez plus la généralisation
  • Vous utilisez une certaine ingénierie des fonctionnalités pour créer des fonctionnalités supplémentaires et vous avez peut-être introduit une fuite de cible, où vos lignes utilisent des informations de sa cible actuelle, et pas seulement d'autres personnes de votre ensemble d'entraînement.
Jan van der Vegt
la source
11
Une précision de 100% crie toujours «fuite cible».
Paul
1

Enquêter pour voir quelles sont vos fonctionnalités les plus prédictives. Parfois, vous avez accidentellement inclus votre cible (ou quelque chose qui est équivalent à votre cible) parmi vos fonctionnalités.

à M
la source