Quand utiliserait-on Random Forest
plus SVM
et vice versa?
Je comprends cela cross-validation
et 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?
Réponses:
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.
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.
la source
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.
la source
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.
la source
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
la source