Quand éviter la forêt aléatoire?

25

Les forêts aléatoires sont bien connues pour fonctionner assez bien sur une variété de tâches et ont été désignées comme l' homme du cuir des méthodes d'apprentissage . Y a-t-il des types de problèmes ou de conditions spécifiques dans lesquels il faut éviter d'utiliser une forêt aléatoire?

tSchema
la source
8
Salut. "PLS est le maroquinier de ...", "Bootstrap est le maroquinier de ...", "Random forest est le maroquinier de ..." <- Je vous conseille de vous méfier de telles affirmations. C'était juste un commentaire :)
Stéphane Laurent

Réponses:

24

En pensant au langage spécifique de la citation, un maroquinier est un multi-outil: une seule pièce de matériel avec beaucoup de petits gadgets cachés. C'est une paire de pinces, un couteau, un tournevis et plus encore! Plutôt que d'avoir à transporter chacun de ces outils individuellement, le maroquinier est un article unique que vous pouvez accrocher à votre pantalon pour qu'il soit toujours à portée de main. C'est pratique , mais le compromis est que chacun des outils de composants n'est pas le meilleur dans son travail. L'ouvre-boîte est difficile à utiliser, les embouts de tournevis sont généralement de mauvaise taille et le couteau ne peut pas faire plus que tailler. Si l'exécution de l'une de ces tâches est critique, vous seriez mieux servi avec un outil spécialisé: un couteau réel, un tournevis réel ou une paire de pinces.

Une forêt aléatoire peut être pensée dans les mêmes termes. La forêt aléatoire donne de bons résultats sur une variété d'ensembles de données et n'est pas incroyablement sensible aux paramètres de réglage. Mais ce n'est pas parfait. Plus vous en savez sur le problème, plus il est facile de créer des modèles spécialisés pour répondre à votre problème particulier.

Il y a quelques cas évidents où les forêts aléatoires auront du mal:

  • Clarté - Lorsque les données sont très clairsemées, il est très plausible que pour certains nœuds, l'échantillon amorcé et le sous-ensemble aléatoire d'entités collaborent pour produire un espace d'entités invariant. Il n'y a pas de partage productif, il est donc peu probable que les enfants de ce nœud soient utiles. XGBoost peut faire mieux dans ce contexte.

  • Les données ne sont pas alignées sur l'axe - Supposons qu'il existe une frontière de décision diagonale dans l'espace de deux entités, X1 et X2 . Même s'il s'agit de la seule dimension pertinente pour vos données, il faudra un modèle de forêt aléatoire ordinaire comportant de nombreuses divisions pour décrire cette frontière diagonale. En effet, chaque division est orientée perpendiculairement à l'axe de X1 ou X2 . (Cela devrait être intuitif car un modèle de forêt aléatoire ordinaire fait des divisions de la forme X1>4.) La forêt de rotation, qui effectue une projection PCA sur le sous-ensemble d'entités sélectionnées pour chaque division, peut être utilisée pour surmonter ce problème: les projections dans une base orthogonale réduiront, en principe, l'influence de la propriété alignée sur l'axe parce que les divisions ne sera plus aligné sur l'axe dans la base d'origine.

    Cette image fournit un autre exemple de la façon dont les séparations alignées sur les axes influencent les décisions de forêt aléatoires. La frontière de décision est un cercle à l'origine, mais notez que ce modèle de forêt aléatoire particulier dessine une boîte pour approximer le cercle. Il y a un certain nombre de choses que l'on pourrait faire pour améliorer cette frontière; la plus simple consiste à collecter plus de données et à créer plus d'arbres. entrez la description de l'image ici

  • Les forêts aléatoires ne fonctionnent essentiellement que sur des données tabulaires,c'est-à-dire qu'il n'y a pas de relation forte et qualitativement importante entre les caractéristiques dans le sens où les données sont une image ou les observations sont mises en réseau sur un graphique. Ces structures ne sont généralement pas bien approchées par de nombreuses cloisons rectangulaires. Si vos données vivent dans une série chronologique, ou sont une série d'images, ou vivent sur un graphique, ou ont une autre structure évidente, la forêt aléatoire aura du mal à le reconnaître. Je ne doute pas que les chercheurs ont développé des variations sur la méthode pour tenter de s'adapter à ces situations, mais une forêt aléatoire de vanille ne reprendra pas nécessairement ces structures de manière utile. La bonne nouvelle est que vous savez généralement quand c'est le cas, c'est-à-dire que vous savez que vous avez des images, une série chronologique ou un graphique avec lesquels travailler,
Sycorax dit de réintégrer Monica
la source
Je pense que les forêts aléatoires de vanille ont le potentiel de reconnaître des partitions non rectangulaires. Nous pouvons avoir des caractéristiques quadratiques par exemple et reconnaître des frontières comme x ^ 2 <c.
Aniruddha Acharya
2
@AniruddhaAcharya J'ai dit "lutter", pas échouer. Ma réponse ici montre clairement que les caractéristiques quadratiques ne sont pas un problème insurmontable. Mais les diagonales ou les quadratiques ou d'autres types de divisions non alignées nécessiteront que les arbres se divisent encore et encore sur ces entités de manière rectangulaire pour approximer une diagonale / courbe. Vous pouvez voir cet effet dans l'intrigue de ce post: regardez les coins nets. RF utilise un carré pour approximer un cercle.
Sycorax dit Réintégrer Monica le
Je voulais dire qu'alimenter les caractéristiques quadratiques (et d'autres ordres supérieurs) en RF réduirait la difficulté de modéliser des partitions non rectangulaires. Par exemple, les RF peuvent utiliser 2 quadratiques pour approximer le cercle au lieu d'utiliser un carré. Bien que je convienne que ce n'est pas aussi facile que les modèles qui intègrent l'interaction entre les variables, je pense que ce n'est pas si difficile parce que les RF ne sont pas limités à l'utilisation de seuils sur les fonctionnalités brutes.
Aniruddha Acharya
1
@AniruddhaAcharya Si vous savez que les termes carrés sont le bon modèle, vous n'avez pas besoin de forêt aléatoire: ajoutez simplement des termes carrés à un modèle linéaire. La RF est un bon moyen d'approximer des fonctions arbitraires, en particulier lorsqu'elles ont des fonctions de décision alignées sur l'axe.
Sycorax dit Reinstate Monica
Pourquoi l'ingénierie des fonctionnalités (termes quadratiques) suggérée par @AniruddhaAcharya n'est-elle pas une étape utile à utiliser conjointement avec les RF? Oui, ces fonctionnalités pourraient être ajoutées à un modèle linéaire: mais ce dernier ne permet pas de combiner les contributions de nombreux résultats optimisés individuellement pour différents sous-ensembles des fonctionnalités.
javadba
22

Coins pointus. Exactitude.

Ils utilisent des méthodes de diffusion. Ils correspondent bien aux choses bosselées. Ils ne correspondent pas bien aux choses élaborées et très détaillées lorsque la taille de l'échantillon est faible. J'imagine qu'ils ne réussissent pas bien sur les données de séries temporelles multivariées - quand quelque chose ici dépend de cette seule chose là-bas une distance.

Les forêts boostées par gradient peuvent s'adapter ou sur-ajuster, mais peuvent obtenir des erreurs considérablement plus faibles pour les mêmes données.

Les " maroquiniers " n'existent pas. Il n'y a pas de "balles d'argent". Il existe des boîtes à outils. Connaissez vos outils et prenez-en bien soin afin qu'ils puissent prendre soin de vous. Méfiez-vous de «lorsque vous êtes un marteau, alors chaque problème ressemble à un clou», surtout lorsque vous n'avez pas de bibliothèque dense dans votre boîte à outils.

Tant que vous ne connaissez pas bien le problème, il est facile d'imaginer que quelque chose pourrait le résoudre ou que votre outil préféré pourrait le résoudre. La sagesse suggère d'approfondir la compréhension du problème et de bien connaître vos outils.

Ajouté: Si vous avez suffisamment de ressources de calcul ou de marge de temps pour utiliser autre chose. Le RF est non seulement rapide à former, mais rapide à exécuter. Une structure boostée très profonde en est moins. Vous devez avoir les frais généraux pour soutenir cela.

EngrStudent - Réintégrer Monica
la source
2
Pour être ici l'avocat du diable: Rien volonté «ajustement des choses élaborées et très détaillées ainsi lorsque la taille de l' échantillon est faible »
usεr11852 dit Réintégrer Monic
5

C'est la première fois que je réponds à une question, alors ne m'épinglez pas dessus, mais je pense pouvoir répondre à votre question:

Si vous êtes en effet uniquement intéressé par les performances du modèle et non par des choses comme l'interprétabilité, la forêt aléatoire est en effet souvent un très bon algorithme d'apprentissage, mais fonctionne légèrement moins bien dans les cas suivants:

1.) Lorsque la dimensionnalité (nombre d'entités) est très élevée par rapport au nombre d'échantillons d'apprentissage, dans ces cas, une régression linéaire régularisée ou SVM serait préférable.

2.) Dans le cas où il y a des représentations / structures convolutionnelles d'ordre supérieur dans les données, comme par exemple dans les problèmes de vision par ordinateur. Dans ces cas de vision par ordinateur, un réseau de neurones convolutionnels surclassera une forêt aléatoire (en général, s'il existe des connaissances, on peut les incorporer à l'apprentissage, ce qui est mieux).

Cela étant dit, la forêt aléatoire est un très bon point de départ. L'une des personnes que j'admire pour ses compétences en Machine Learning commence toujours par l'apprentissage d'une forêt aléatoire et d'un régresseur linéaire régularisé.

Cependant, si vous voulez les meilleures performances possibles, je crois que les réseaux de neurones sont connus de nos jours. Le Deep Learning ressemble à une approche très attractive. De plus en plus de gagnants sur des sites Web de défis de données comme Kaggle utilisent des modèles d'apprentissage profond pour la compétition. Un autre avantage des réseaux de neurones est qu'ils peuvent gérer un très grand nombre d'échantillons (> 10 ^ 6, on peut les former en utilisant un gradient stochastique descendant, en alimentant des bits de données à la fois). Personnellement, je trouve que c'est un pro très attractif pour le Deep Learning.

MJW
la source
2
Bonne réponse, mais votre dernier point n'est pas correct: la formation en mini-batch peut être implémentée pour tous les algorithmes d'apprentissage automatique courants, voir par exemple H2O .
jubo
Oke, intéressant, je ne le savais pas. Êtes-vous en train de dire qu'en utilisant ces méthodes, on peut former un arbre (de décision) en utilisant l'apprentissage par mini-lots / SGD et ainsi construire un seul arbre basé sur une répartition majoritaire des données totales de formation (disons 65%)?
MJW
1
Je pense que la forêt aléatoire devrait toujours être bonne lorsque le nombre de fonctionnalités est élevé - n'utilisez pas beaucoup de fonctionnalités à la fois lors de la construction d'un seul arbre, et à la fin, vous aurez une forêt de classificateurs indépendants qui devraient collectivement ( j'espère) bien faire.
Alexey Grigorev
Pour autant que je sache, h2o utilise le paradigme de réduction de carte pour la formation de mini-lots. Les arbres simples (CART) ne sont pas implémentés en tant que tels dans H2O (mais je suppose qu'un arbre non élagué est un cas particulier de forêt aléatoire avec un seul arbre et un choix maximal de prédicteurs?).
jubo
2
Quelle est la justification de (1)? Vous faites une réclamation, mais ne fournissez aucun argument à l'appui.
Sycorax dit Réintégrer Monica le
0

Tout d'abord, la forêt aléatoire ne peut pas être appliquée aux types de données suivants:

  • images
  • l'audio
  • texte (après le prétraitement, les données seront clairsemées et les RF ne fonctionneront pas bien avec des données clairsemées)

Pour les types de données tabulaires, il est toujours bon de vérifier la forêt aléatoire car:

  • il nécessite moins de préparation et de prétraitement des données que les réseaux neuronaux ou les SVM. Par exemple, vous n'avez pas besoin de faire évoluer les fonctionnalités.
  • Pour la formation Random Forest, vous pouvez simplement utiliser les paramètres par défaut et définir le nombre d'arbres ( plus il y a d'arbres en RF, mieux c'est ). Lorsque vous comparez Random Forest à Neural Networks , la formation est très facile (il n'est pas nécessaire de définir l'architecture ou d'ajuster l'algorithme de formation). Random Forest est plus facile à entraîner que Neural Networks.
pplonski
la source