In welchen Fällen ist es besser, einen Entscheidungsbaum und in anderen Fällen einen KNN zu verwenden?
Warum in bestimmten Fällen einen von ihnen verwenden? Und der andere in verschiedenen Fällen? (Betrachtet man die Funktionalität, nicht den Algorithmus)
Hat jemand Erklärungen oder Hinweise dazu?
machine-learning
data-mining
decision-trees
gchavez1
quelle
quelle
Antworten:
Sie dienen unterschiedlichen Zwecken.
KNN wird nicht überwacht, Decision Tree (DT) wird überwacht. ( KNN wird beim Lernen überwacht, während K-means nicht überwacht wird. Ich denke, diese Antwort führt zu Verwirrung. ) KNN wird zum Clustering verwendet, DT zur Klassifizierung. ( Beide werden zur Klassifizierung verwendet. )
KNN bestimmt Nachbarschaften, daher muss es eine Entfernungsmetrik geben. Dies bedeutet, dass alle Features numerisch sein müssen. Entfernungsmetriken können durch Variieren der Maßstäbe zwischen Attributen und auch des hochdimensionalen Raums bewirkt werden.
DT sagt andererseits eine Klasse für einen gegebenen Eingabevektor voraus. Die Attribute können numerisch oder nominal sein.
Wenn Sie ähnliche Beispiele finden möchten, können Sie KNN verwenden. Wenn Sie Beispiele klassifizieren möchten, können Sie DT verwenden.
quelle
knn
undk-means
sind verschiedene Algorithmen und diese Antwort verpasst leider (und irrtümlicherweise) diese beiden Prozeduren.knn
wird weder unbeaufsichtigt noch zum Clustering verwendet! Siehe Q: Diff kNN und kMeanKlassifikatoren wie Decision Tree, Bayesian, Backpropagation und Support Vector Machine fallen unter die Kategorie "Eager Learners" , da sie zunächst ein Klassifizierungsmodell auf der Grundlage des Trainingsdatensatzes erstellen, bevor sie eine [unsichtbare] Beobachtung anhand des Testdatensatzes tatsächlich klassifizieren können . Das erlernte Modell ist nun "eifrig" (lesehungrig), zuvor ungesehene Beobachtungen zu klassifizieren, daher der Name.
Der KNN-basierte Klassifizierer erstellt jedoch kein Klassifizierungsmodell. Es lernt direkt aus den Trainingsinstanzen (Beobachtungen). Die Datenverarbeitung beginnt erst, nachdem eine Testbeobachtung zur Klassifizierung durchgeführt wurde. Somit fällt KNN in die Kategorie der "Lazy Learner" -Ansätze.
Basierend auf den oben genannten fundamentalen Unterschieden können wir Folgendes schließen:
Da KNN das Lernen vor Ort durchführt, sind häufige Datenbanksuchen erforderlich, weshalb dies rechenintensiv sein kann. Decision Tree Classifier benötigt keine solchen Lookups, da das speicherinterne Klassifizierungsmodell bereitsteht.
Da KNN instanzbasiertes Lernen durchführt, kann ein gut abgestimmtes K komplexe Entscheidungsräume mit willkürlich komplizierten Entscheidungsgrenzen modellieren, die von anderen "eifrigen" Lernenden wie Decision Trees nicht einfach modelliert werden können.
"Eifrige" Lernende arbeiten stapelweise und modellieren jeweils eine Gruppe von Trainingsbeobachtungen. Sie sind also nicht für inkrementelles Lernen geeignet. Aber KNN unterstützt natürlich inkrementelles Lernen (Datenströme), da es ein instanzbasierter Lernender ist.
Darüber hinaus gibt der KNN-Klassifikator Testfehlerraten an, die denen des Bayes'schen Klassifikators (dem Goldstandard) ähneln. Wie in ISLR zitiert :
quelle
Aus Sebastian Raschkas Python Machine Learning :
Der Entscheidungsbaum kann jedoch schnell neue Beispiele klassifizieren. Sie führen nur eine Reihe von booleschen Vergleichen durch.
quelle
Ich möchte hinzufügen, dass Entscheidungsbäume sowohl für Klassifizierungs- als auch für Regressionsaufgaben verwendet werden können. DT sagt andererseits voraus, dass eine Klasse in der akzeptierten Antwort spezifischer sein würde, indem Klassifizierungsbäume beschrieben werden, die technisch ein Untertyp des generischen DT-Konzepts sind. Eine Referenz (ohne Berücksichtigung der untersten Ebenen, in denen bestimmte Implementierungen erläutert werden):
Von hier aus: http://www.simafore.com/blog/bid/62482/2-Hauptunterschiede-zwischen-Klassifizierungs-und-Regressionsbäumen
quelle