Der Entscheidungsbaum ist eine Methode, um Bedingungen nacheinander für Daten zu definieren und sie nach jeder Bedingung zu klassifizieren. In der folgenden Abbildung versuche ich zu entscheiden, ob ich Windsurfen möchte oder nicht. Also kategorisieren wir zuerst nach der Stärke des Windes und dann danach, ob es sonnig ist oder nicht.
Dieses Modell auf der rechten Seite wird als Entscheidungsbaum bezeichnet. Im Entscheidungsbaum wird, wie in der Abbildung links gezeigt, durch mehrmalige lineare Klassifizierung klassifiziert.
Extracted by 'Introduction to Machine Learning', Udacity
Übrigens scheint der Entscheidungsbaum eine Regression und Klassifizierung zu haben, aber dieses Mal werde ich über die Klassifizierung sprechen.
python
DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None,
min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0,
max_features=None, random_state=None, max_leaf_nodes=None,
min_impurity_split=1e-07, class_weight=None, presort=False)
Es hat viele Inhalte. Im Folgenden werden nur die wichtigsten erläutert.
Wenn min_samples_split = 2 ist und der Wert des Verzweigungsziels 2 oder mehr beträgt, wird die Verzweigung fortgesetzt. In der folgenden Abbildung hat der vom hellblauen Kreis umgebene Bereich mehr als 2 Stichproben, sodass die Verzweigung fortgesetzt wird. Abhängig von der Anzahl der Proben besteht jedoch eine hohe Wahrscheinlichkeit eines Übertrainings, sodass eine Anpassung erforderlich ist. Extracted from 'Introduction to Machine Learning', Udacity
Geben Sie an, wie die Daten mit'gini 'oder'entropy' aufgeteilt werden sollen.
'gini': Je niedriger die Reinheit (gini-Koeffizient) des k-ten Klassifizierungsziels ist, desto besser. Verwenden Sie 'Entropie': Informationsgewinn, um die effizientesten Bedingungen zu finden. Es scheint, dass es keinen großen Unterschied gibt, aber die Details sind hier und hier. blog / sklearn-gini-vs-entropy-kriterien)
Dies bestimmt und begrenzt die maximale Tiefe des Entscheidungsbaums, um ein Überlernen zu verhindern.
python
from IPython.display import Image
dot_data = tree.export_graphviz(clf, out_file=None,
feature_names=iris.feature_names,
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)
Image(graph.create_png())
The image and the code are extracted from 'Sklearn document'
Während andere Algorithmen eine Datennormalisierung und die Erstellung von Dummy-Variablen erfordern, erfordert Decision Tree nur eine geringe Verarbeitung vor Ort, um kategoriale und numerische Daten zu verarbeiten. Da es wie oben dargestellt werden kann, können Sie auch sehen, dass es sich um einen sehr leicht verständlichen Algorithmus handelt.
--Schlechter Punkt
Leicht zu überlernen. Daten werden durch vertikale und horizontale gerade Linien klassifiziert. Wenn die Daten also nicht durch eine Grenzlinie parallel zur Achse getrennt werden können, können sie nicht gut klassifiziert werden.
Das Obige ist der Umriss des Entscheidungsbaums, soweit ich verstehen kann. Wir werden es täglich aktualisieren. Wenn Sie also etwas hinzufügen oder reparieren müssen, würden wir uns freuen, wenn Sie einen Kommentar abgeben könnten.
Recommended Posts