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?