Quand utiliser Random Forest sur SVM et vice versa?


28

Quand utiliserait-on Random Forestplus SVMet vice versa?

Je comprends cela cross-validationet la comparaison de modèles est un aspect important du choix d'un modèle, mais ici j'aimerais en savoir plus sur les règles de base et l'heuristique des deux méthodes.

Quelqu'un peut-il expliquer les subtilités, les forces et les faiblesses des classificateurs ainsi que les problèmes qui conviennent le mieux à chacun d'eux?


1
Le score de précision est la seule vraie mesure de leurs performances relatives, bien qu'il puisse exister un état de la technique qui indique quel type de classificateur parmi les nombreux disponibles pourrait être meilleur sur votre type de données si vous êtes chanceux. Vous pouvez être plus contraint par le temps nécessaire pour régler vos paramètres, auquel cas la forêt aléatoire se révélera probablement une proposition plus facile des deux.
image_doctor

Réponses:


29

Je dirais que le choix dépend beaucoup des données dont vous disposez et de votre objectif. Quelques "règles d'or".

Random Forest est intrinsèquement adapté aux problèmes multiclasses, tandis que SVM est intrinsèquement à deux classes. Pour un problème multiclasse, vous devrez le réduire en plusieurs problèmes de classification binaire.

Random Forest fonctionne bien avec un mélange de caractéristiques numériques et catégoriques. Lorsque les caractéristiques sont à différentes échelles, c'est bien aussi. En gros, avec Random Forest, vous pouvez utiliser les données telles quelles. SVM maximise la «marge» et repose donc sur le concept de «distance» entre différents points. C'est à vous de décider si la «distance» a un sens. Par conséquent, l'encodage à chaud pour les fonctionnalités catégorielles est un must-do. De plus, la mise à l'échelle min-max ou autre est fortement recommandée à l'étape de prétraitement.

nmn×nn2

Pour un problème de classification, Random Forest vous donne la probabilité d'appartenir à une classe. SVM vous donne la distance à la frontière, vous devez toujours la convertir en probabilité d'une manière ou d'une autre si vous avez besoin de probabilité.

Pour ces problèmes, où SVM s'applique, il fonctionne généralement mieux que Random Forest.

SVM vous donne des "vecteurs de support", c'est-à-dire des points dans chaque classe les plus proches de la frontière entre les classes. Ils peuvent être intéressants par eux-mêmes pour l'interprétation.


Juste pour ajouter: il n'est pas simple pour Random Forests de vous donner des probabilités. Vous devez soit une implémentation probabiliste d'un arbre de décision, soit calibrer votre modèle Random Forest ajusté par la suite si vous voulez de «vraies» probabilités.
Archie

5

Les modèles SVM fonctionnent mieux sur des données éparses que les arbres en général. Par exemple, dans la classification de documents, vous pouvez avoir des milliers, voire des dizaines de milliers d'entités et dans un vecteur de document donné, seule une petite fraction de ces entités peut avoir une valeur supérieure à zéro. Il y a probablement d'autres différences entre eux, mais c'est ce que j'ai trouvé pour mes problèmes.


3

Cela dépend vraiment de ce que vous voulez réaliser, de l'apparence de vos données, etc. SVM fonctionnera généralement mieux sur les dépendances linéaires, sinon vous avez besoin d'un noyau non linéaire et le choix du noyau peut changer les résultats. De plus, les SVM sont moins interprétables - par exemple si vous voulez expliquer pourquoi la classification était comme elle était - elle ne sera pas triviale. Les arbres de décision ont une meilleure interprétabilité, ils fonctionnent plus rapidement et si vous avez des variables catégorielles / numériques, c'est bien, en plus: les dépendances non linéaires sont bien gérées (étant donné N assez grand). De plus, ils s'entraînent plus vite que SVM en général, mais ils ont tendance à s'adapter ...

J'essaierais aussi la régression logistique - grand classificateur interprétable)

Pour résumer - la règle de base est d'essayer n'importe quoi et de comparer ce qui vous donne les meilleurs résultats / interprétation.


1

Pour compléter les bons points déjà énoncés:

De Avons-nous besoin de centaines de classificateurs pour résoudre des problèmes de classification réels? les forêts aléatoires sont plus susceptibles d'obtenir de meilleures performances que les forêts aléatoires.

En outre, la façon dont les algorithmes sont mis en œuvre (et pour des raisons théoriques) les forêts aléatoires sont généralement beaucoup plus rapides que les SVM (non linéaires). En effet, comme @Ianenok, les SVM ont tendance à être inutilisables au-delà de 10 000 points de données.

Cependant, les SVM sont connus pour être plus performants sur certains jeux de données spécifiques (images, données microarray ...).

Donc, encore une fois, la validation croisée est en effet le meilleur moyen de savoir quelle méthode fonctionne le mieux.

Source: forêt aléatoire vs SVM


euh? "Les forêts aléatoires sont plus susceptibles d'obtenir de meilleures performances que les forêts aléatoires."
Sanjay Manohar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.