Dans quels cas est-il préférable d'utiliser un arbre de décision et dans d'autres cas un KNN?
Pourquoi en utiliser un 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?
Réponses:
Ils servent à des fins différentes.
KNN n'est pas supervisé, l'arbre de décision (DT) est supervisé. ( KNN est un apprentissage supervisé alors que K-means n'est pas supervisé, je pense que cette réponse provoque une certaine confusion. ) KNN est utilisé pour le clustering, DT pour la classification. ( Les deux sont utilisés pour la classification. )
KNN détermine les quartiers, il doit donc y avoir une métrique de distance. Cela implique que toutes les fonctionnalités doivent être numériques. Les mesures de distance peuvent être affectées par des échelles variables entre les attributs et également par un espace de grande dimension.
DT, d'autre part, prédit une classe pour un vecteur d'entrée donné. Les attributs peuvent être numériques ou nominaux.
Donc, si vous voulez trouver des exemples similaires, vous pouvez utiliser KNN. Si vous souhaitez classer des exemples, vous pouvez utiliser DT.
la source
knn
etk-means
sont des algorithmes différents et cette réponse manque malheureusement (et à tort) ces deux procédures.knn
n'est ni non supervisé ni utilisé pour le clustering! Voir Q: Diff kNN et kMeanLes classificateurs comme Décision Tree, Bayesian, Back-propagation, Support Vector Machine entrent dans la catégorie des "Eager Learners" , car ils construisent d'abord un modèle de classification sur l' ensemble de données de formation avant de pouvoir réellement classer une observation [invisible] à partir de l' ensemble de données de test . Le modèle appris est maintenant "impatient" (lu affamé) de classer les observations jusque-là invisibles, d'où le nom.
Cependant, le classificateur basé sur KNN ne construit aucun modèle de classification. Il apprend directement des instances de formation (observations). Il commence à traiter les données uniquement après avoir reçu une observation de test à classer. Ainsi, KNN entre dans la catégorie des approches "apprenants paresseux" .
Sur la base des différences fondamentales ci-dessus, nous pouvons conclure ce qui suit: -
Étant donné que KNN effectue un apprentissage sur place, il nécessite des recherches fréquentes dans la base de données et peut donc être coûteux en termes de calcul. Decision Tree Classifier ne nécessite pas de telles recherches car il dispose d'un modèle de classification en mémoire.
Étant donné que KNN effectue un apprentissage basé sur des instances, un K bien réglé peut modéliser des espaces de décision complexes ayant des limites de décision arbitrairement compliquées, qui ne sont pas facilement modélisées par d'autres apprenants "désireux" comme les arbres de décision.
Les apprenants «désireux» travaillent par lots, modélisant un groupe d'observations de formation à la fois. Ils ne sont donc pas adaptés à l'apprentissage progressif. Mais KNN prend naturellement en charge l'apprentissage incrémentiel (flux de données) car il s'agit d'un apprenant basé sur une instance.
De plus, le classificateur KNN donne des taux d'erreur de test plus proches de ceux du classificateur bayésien (l'étalon-or). Comme cité dans ISLR :
la source
D'après le Machine Learning Python de Sebastian Raschka :
Cependant, l'arbre de décision peut rapidement classer de nouveaux exemples. Vous exécutez simplement une série de comparaisons booléennes.
la source
J'ajouterais que les arbres de décision peuvent être utilisés à la fois pour les tâches de classification et de régression. DT, d'autre part, prédit qu'une classe dans la réponse acceptée serait plus spécifique en décrivant des arbres de classification qui est techniquement un sous-type du concept générique DT. Une référence (en ignorant les couches inférieures qui discutent d'implémentations spécifiques): à
partir d'ici: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees
la source