web-dev-qa-db-fra.com

Arbre de décision vs classificateur Naive Bayes

Je fais des recherches sur différentes techniques d'exploration de données et suis tombé sur quelque chose que je ne pouvais pas comprendre. Si quelqu'un a une idée, ce serait formidable.

Dans quels cas est-il préférable d'utiliser un arbre de décision et dans d'autres cas un classificateur Naive Bayes?

Pourquoi utiliser l'un d'eux dans certains cas? Et l'autre dans des cas différents? (En regardant sa fonctionnalité, pas l'algorithme)

Quelqu'un a-t-il des explications ou des références à ce sujet?

45
Youssef

Les arbres de décision sont très flexibles, faciles à comprendre et faciles à déboguer. Ils travailleront avec des problèmes de classification et des problèmes de régression. Donc, si vous essayez de prédire une valeur catégorielle comme (rouge, vert, haut, bas) ou si vous essayez de prédire une valeur continue comme 2.9, 3.4 etc. Les arbres de décision traiteront les deux problèmes. L'une des choses les plus intéressantes à propos des arbres de décision est probablement qu'ils n'ont besoin que d'une table de données et ils construiront un classificateur directement à partir de ces données sans nécessiter de travail de conception à l'avance. Dans une certaine mesure, les propriétés qui n'ont pas d'importance ne seront pas choisies en tant que fractionnements et seront éventuellement élaguées, ce qui la rend très tolérante aux non-sens. Pour commencer, définissez-le et oubliez-le.

Cependant, l'inconvénient. Les arbres de décision simples tendent à sur-ajuster davantage les données d'apprentissage, de sorte que d'autres techniques, ce qui signifie que vous devez généralement effectuer l'élagage des arbres et régler les procédures d'élagage. Vous n'avez eu aucun coût de conception initial, mais vous le rembourserez en optimisant les performances des arbres. De plus, les arbres de décision simples divisent les données en carrés, de sorte que la création de clusters autour des choses signifie qu'il doit se diviser beaucoup pour englober les clusters de données. La division de beaucoup conduit à des arbres complexes et augmente la probabilité que vous soyez en sur-ajustement. Les grands arbres sont élagués, de sorte que, même si vous pouvez créer un cluster autour d'une fonctionnalité des données, il ne survivra peut-être pas au processus d'élagage. Il existe d'autres techniques comme les séparations de substitution qui vous permettent de fractionner le long de plusieurs variables en créant simultanément des divisions dans l'espace qui ne sont ni horizontales ni perpendiculaires (0 < pente <infini). Cool, mais votre arbre commence à devenir plus difficile à comprendre, et il est complexe de mettre en œuvre ces algorithmes. D'autres techniques comme le boosting et les arbres de décision forestiers aléatoires peuvent très bien fonctionner, et certains estiment que ces techniques sont essentielles pour obtenir les meilleures performances des arbres de décision. Encore une fois, cela ajoute plus de choses à comprendre et à utiliser pour régler l'arbre et donc plus de choses à implémenter. En fin de compte, plus nous ajoutons à l'algorithme, plus la barrière à son utilisation est grande.

Naive Bayes vous oblige à construire un classement à la main. Il n'y a pas moyen de simplement y jeter un tas de données tabulaires et de lui faire choisir les meilleures fonctionnalités qu'il utilisera pour classer. Il vous appartient de choisir les fonctionnalités qui comptent. Les arbres de décisions choisiront les meilleures fonctionnalités pour vous à partir de données tabulaires. S'il y avait un moyen pour Naive Bayes de choisir des fonctionnalités, vous vous rapprocheriez des mêmes techniques qui permettent aux arbres de décision de fonctionner comme ça. Donner ce fait signifie que vous devrez peut-être combiner Naive Bayes avec d'autres techniques statistiques pour vous guider vers les fonctionnalités les mieux classées et qui pourraient utiliser des arbres de décision. Les bayés naïfs répondront comme un classificateur continu. Il existe des techniques pour l'adapter à la prédiction catégorique, mais elles répondront en termes de probabilités comme (A 90%, B 5%, C 2,5% D 2,5%) Bayes peut très bien fonctionner, et il ne correspond pas à peu près autant il n'est donc pas nécessaire d'élaguer ou de traiter le réseau. Cela les rend plus simples à mettre en œuvre. Cependant, ils sont plus difficiles à déboguer et à comprendre, car toutes les probabilités se multiplient des milliers de fois, vous devez donc faire attention à tester qu'il fait ce que vous attendez. Les baies naïves fonctionnent assez bien lorsque les données d'entraînement ne contiennent pas toutes les possibilités, elles peuvent donc être très bonnes avec de faibles quantités de données. Les arbres de décision fonctionnent mieux avec beaucoup de données par rapport à Naive Bayes.

Naive Bayes est beaucoup utilisé en robotique et en vision par ordinateur, et fait très bien avec ces tâches. Les arbres de décision fonctionnent très mal dans ces situations. Apprendre à un arbre de décision à reconnaître les mains de poker en regardant des millions de mains de poker fait très mal parce que les quinte flush et les quads royaux se produisent si peu qu'ils sont souvent élagués. S'il est taillé hors de l'arbre résultant, il classera à tort ces mains importantes (rappelez-vous la discussion sur les grands arbres ci-dessus). Maintenant, pensez simplement si vous essayez de diagnostiquer un cancer en utilisant cela. Le cancer ne se produit pas dans la population en grande quantité, et il sera plus probablement élagué. La bonne nouvelle est que cela peut être géré en utilisant des poids afin que nous pondérions une main gagnante ou ayant un cancer plus élevé qu'une main perdante ou n'ayant pas de cancer et que cela augmente l'arbre afin qu'il ne soit pas élagué. Encore une fois, c'est la partie du réglage de l'arbre résultant de la situation que j'ai discutée plus tôt.

Les arbres de décision sont soignés car ils vous indiquent quelles entrées sont les meilleurs prédicteurs des sorties, si souvent les arbres de décision peuvent vous guider pour trouver s'il existe une relation statistique entre une entrée donnée et la force de cette relation. Souvent, l'arbre de décision résultant est moins important que les relations qu'il décrit. Ainsi, les arbres de décision peuvent être utilisés comme un outil de recherche à mesure que vous découvrez vos données afin de pouvoir créer d'autres classificateurs.

Si vous êtes en train de couper entre l'utilisation d'arbres de décision et les bayés naïfs pour résoudre un problème, il est souvent préférable de tester chacun d'eux. Construisez un arbre de décision et construisez un classificateur bayésien naïf, puis lancez-vous en utilisant les données de formation et de validation dont vous disposez. Celui qui réussit le mieux sera probablement plus performant sur le terrain. Et c'est toujours une bonne idée de convertir chacun de ceux contre les prédicteurs de K-voisin le plus proche (KNN) car il a été démontré que k-plus performant les deux dans certaines situations, et KNN est un algorithme simple à implémenter et à utiliser. Si KNN fonctionne mieux que les deux autres, allez-y.

Quelques sources:

Le manuel sur les arbres de décision basés sur CART. Ce livre couvre l'algorithme CART, mais traite également des arbres de décision, des poids, des valeurs manquantes, des divisions de substitution, du boosting, etc. http://www.Amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

Une introduction plus douce à CART https://www.youtube.com/watch?v=p17C9q2M00Q

Comparaison des algorithmes - notez que KNN, Decision Trees, C4.5 et SVM réussissent assez bien sur la plupart des tests. http://www4.ncsu.edu/~arezaei2/paper/JCIT4-184028_Camera%20Ready.pdf

Une autre comparaison d'algorithmes - Boosted Decision Trees et aléatoire en tête de liste avec KNN au milieu: http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml06.pdf

Une autre bonne descente de diverses techniques: http://www.quora.com/What-are-the-advantages-of-different-classification-algorithms

141
chubbsondubs