Donc, je suis un débutant dans le domaine ML et j'essaie de faire un certain classement. Mon objectif est de prédire l'issue d'un événement sportif. J'ai rassemblé quelques données historiques et j'essaie maintenant de former un classificateur. J'ai obtenu environ 1200 échantillons, 0,2 d'entre eux que j'ai séparés à des fins de test, d'autres que j'ai mis dans la recherche de grille (validation croisée incluse) avec différents classificateurs. J'ai essayé SVM avec des noyaux linéaires, rbf et polynomiaux et des forêts aléatoires jusqu'à présent. Malheureusement, je ne peux pas obtenir une précision nettement supérieure à 0,5 (le même que le choix aléatoire de la classe). Cela signifie-t-il que je ne peux tout simplement pas prédire l'issue d'un événement aussi complexe? Ou puis-je obtenir une précision d'au moins 0,7-0,8? Si c'est faisable, que dois-je faire ensuite?
- Obtenez plus de données? (Je peux agrandir l'ensemble de données jusqu'à 5 fois)
- Essayez différents classificateurs? (Régression logistique, kNN, etc.)
- Réévaluer mon ensemble de fonctionnalités? Existe-t-il des outils ML à analyser, quelles fonctionnalités ont du sens et lesquelles ne le sont pas? Peut-être que je devrais réduire mon ensemble de fonctionnalités (j'ai actuellement 12 fonctionnalités)?
Réponses:
Tout d'abord, si votre classificateur ne fait pas mieux qu'un choix aléatoire, il y a un risque qu'il n'y ait tout simplement aucun lien entre les fonctionnalités et la classe. Une bonne question à vous poser dans une telle position est la météo ou un expert en domaine pourrait déduire la classe (avec une précision supérieure à un classificateur aléatoire) en fonction de fonctionnalités données. Si non, alors obtenir plus de lignes de données ou changer le classificateur n'aidera pas. Ce que vous devez faire, c'est obtenir plus de données en utilisant différentes fonctionnalités.
SI, d'autre part, vous pensez que les informations nécessaires pour déduire la classe sont déjà dans les étiquettes, vous devez vérifier si votre classificateur souffre d'un problème de biais élevé ou de variance élevée.
Pour ce faire, représentez graphiquement l'erreur de validation et l'erreur de l'ensemble de formation, en fonction des exemples de formation.
Si les lignes semblent converger vers la même valeur et sont proches à la fin, votre classificateur a un biais élevé et l'ajout de données n'aidera pas. Dans ce cas, une bonne idée est de changer le classificateur pour celui qui a une variance plus élevée, ou simplement d'abaisser le paramètre de régularisation de votre courant.
Si d'un autre côté les lignes sont assez éloignées les unes des autres, et que vous avez une erreur d'ensemble de formation faible mais une erreur de validation élevée, alors votre classificateur a une variance trop élevée. Dans ce cas, obtenir plus de données est très susceptible de vous aider. Si après avoir obtenu plus de données, la variance sera toujours trop élevée, vous pouvez augmenter le paramètre de régularisation.
Ce sont les règles générales que j'utiliserais face à un problème comme le vôtre.
À votre santé.
la source
Je suggérerais de prendre du recul et de faire une analyse exploratoire des données avant de tenter une classification. Il vaut la peine d'examiner vos fonctionnalités sur une base individuelle pour voir s'il existe une relation avec le résultat d'intérêt - il se peut que les fonctionnalités que vous avez n'aient aucune association avec les étiquettes de classe. Comment savoir si les fonctionnalités dont vous disposez seront utiles?
Vous pouvez commencer par faire des tests d'hypothèses ou des analyses de corrélation pour tester les relations. La génération d'histogrammes spécifiques à une classe pour les entités (c'est-à-dire le traçage des histogrammes des données pour chaque classe, pour une entité donnée sur le même axe) peut également être un bon moyen de montrer si une entité se distingue bien entre les deux classes.
Il est important de se rappeler cependant de ne pas laisser les résultats de votre analyse exploratoire influencer vos choix de classification. Le choix des caractéristiques pour la classification basée sur une analyse exploratoire préalable sur les mêmes données peut conduire à un sur-ajustement et à des estimations de performance biaisées (voir la discussion ici ), mais une analyse exploratoire vous donnera au moins une idée de la régularité de la tâche que vous essayez de faire. possible.
la source
Il est bon que vous ayez séparé vos données en données d'entraînement et données de test.
Votre erreur de formation a-t-elle diminué lorsque vous vous êtes entraîné? Sinon, vous pouvez avoir un bug dans votre algorithme d'entraînement. Vous vous attendez à ce que l'erreur sur votre ensemble de test soit supérieure à l'erreur sur votre ensemble d'entraînement, donc si vous avez une erreur trop élevée sur votre ensemble d'entraînement, il y a peu d'espoir de succès.
Se débarrasser des fonctionnalités peut éviter certains types de sur-ajustement. Cependant, cela ne devrait pas améliorer l'erreur sur votre ensemble d'entraînement. Une erreur faible sur votre ensemble d'entraînement et une erreur élevée sur votre ensemble de test peuvent être une indication que vous vous équipez en utilisant un ensemble de fonctionnalités trop flexible. Cependant, il est plus sûr de vérifier cela par validation croisée que sur votre ensemble de test. Une fois que vous avez sélectionné votre ensemble de fonctionnalités en fonction de votre ensemble de tests, il n'est plus valide comme ensemble de tests.
la source
Pourquoi ne pas suivre le principe "regardez d'abord les graphiques des données". Une chose que vous pouvez faire est un diagramme de dispersion 2 D des deux densités conditionnelles de classe pour deux covariables. Si vous les regardez et ne voyez pratiquement aucune séparation qui pourrait indiquer un manque de prévisibilité, vous pouvez le faire avec toutes les covariables. Cela vous donne quelques idées sur la capacité à utiliser ces covariables pour prédire. Si vous voyez un peu d'espoir que ces variables peuvent se séparer un peu, alors commencez à penser aux discriminants linéaires, aux discriminants quadratiques, à la discrimination du noyau, à la régularisation, à la classification des arbres, au SVM, etc.
la source