De meilleures performances en utilisant Random Forest one-Vs All que Random Forest multiclass?

11

Je travaille sur un problème multiclasse avec 9 labels possibles, pour lesquels j'ai un jeu de données composé de ~ 50 000 exemples et ~ 200 fonctionnalités chacun. Chaque exemple ne peut appartenir qu'à une seule classe. Les données sont assez équilibrées entre les différentes étiquettes.

Compte tenu de sa robustesse et de son évolutivité, j'ai décidé d'utiliser la forêt aléatoire (avec un ensemble de 1000 arbres) comme méthode d'apprentissage. Afin d'évaluer la précision des performances du modèle compte tenu de cet ensemble de données, j'ai utilisé une validation croisée stratifiée à 5 fois (j'utilise scikit-learn 0.18).

Étant donné que Random Forest peut intrinsèquement gérer des ensembles de données multiclasses, je l'ai utilisé directement sur l'ensemble de données donné et j'ai obtenu une précision de 79,5 0,3. J'étais également intéressé à savoir quelles fonctionnalités avaient plus d'importance, quelque chose qui peut être facilement extrait de l'attribut feature_importances_ dans RandomForestClassifier de scikit. Cependant, étant donné que l'ensemble de données est bien équilibré et que, comme prévu, il y a presque autant de caractéristiques sur les 200 à contribuer aux différentes classes, je n'ai pas pu isoler les caractéristiques qui contribuent le plus à chaque classe.±

En conséquence, j'ai adopté une stratégie un contre tous utilisant la même configuration de forêt aléatoire (sensible au coût en passant, en tenant compte du déséquilibre des données lors de l'utilisation de la stratégie oneVsAll), qui m'a permis de voir pour chaque classe par rapport à le reste quelles fonctionnalités sont les plus importantes. Les résultats que j'ai obtenus à ce sujet sont raisonnables. De plus, en regardant les performances du modèle en utilisant cette stratégie, j'ai obtenu une précision de 88,7 0,2, ce qui m'a surpris car je m'attendais à ce que la forêt aléatoire multiclasse se classe mieux compte tenu de sa nature multiclasse.±

Ai-je raison là-dessus? Une telle différence de précision pourrait-elle être plausible? De plus, la stratégie ci-dessus est-elle adoptée correctement et juste étant donné que Random Forest peut à elle seule s'attaquer aux problèmes de multiclasses sans "piratage" tel que la stratégie oneVsAll?

Javi RD
la source
Comment définissez-vous exactement la précision? Est-il comparable dans les deux cas?
amanita kiki
En raison de votre configuration expérimentale, vous disposez de très grands intervalles de confiance autour de ces deux mesures. Pour l'instant, il n'est pas possible de dire si les performances sont différentes.
David Ernst

Réponses:

4

J'avais exactement la même question que vous et j'étais un peu triste de découvrir qu'aucune réponse n'a été publiée sur votre sujet ...

Cela dit, j'ai trouvé cet article: One-Vs-All Binarization Technique in the Context of Random Forest ( https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2015-5.pdf ) publié dans 2015.

Les auteurs montrent de meilleures performances de classification avec les classificateurs Random Forest à un par rapport aux classificateurs Random Forest multiclasses standard.

Les auteurs ne donnent pas beaucoup d'indices sur la raison pour laquelle cela fonctionne si bien, sauf que les arbres générés dans le contexte un contre repos sont plus simples.

Je me demande si vous avez trouvé vous-même des réponses depuis que vous avez posté votre question?

clement g
la source
2

À la fin de la journée, la classe de modèle que vous choisissez définit la forme de votre frontière de décision - si vous utilisez RandomForests en tant que multiclasse ou en tant que classificateur multiclasse un contre tous, les limites seront également contraintes, avec la seule différence étant les données que vous utilisez pour s'adapter à vos modèles. En fonction de l'adéquation de vos modèles avec vos données et de la sensibilité de votre modèle aux problèmes de déséquilibre des données, je ne vois pas vraiment de raison a priori que la multiclasse devrait être meilleure que la solution unique. Ils vous donnent simplement des choses différentes - l'une vous donne une décision pour chaque paire de classes, au prix de plus de modèles à former, et l'autre vous donne la décision de classe immédiatement. Il est tout à fait plausible pour moi, d'autant plus que RandomForests ne résout pas une fonction de perte convexe, que vous obtiendriez les résultats que vous avez obtenus.

Si vous êtes spécifiquement intéressé à trouver les fonctionnalités pertinentes pour votre classificateur, je suggérerais une régression logistique avec une pénalité de perte L1, car la rareté vous donnerait un petit sous-ensemble de fonctionnalités qui sont prédictives pour chaque paire de classes que vous avoir.

bibliolytique
la source