Entscheidungsbaum in Sklearn

Entscheidungsbaum in Sklearn
Entscheidungsbäume sind hierarchische Modelle im maschinellen Lernen, die auf Klassifizierungs- und Regressionsprobleme angewendet werden können. Sie vergleichen rekursiv die Merkmale der Eingangsdaten und prognostizieren schließlich den Ausgang am Blattknoten. Wir werden über die Entscheidungsbäume und ihre Umsetzung in der Sklearn -Bibliothek diskutieren.

Was ist ein Entscheidungsbaumalgorithmus?

Die Klassifizierungs- und Regressionsmodelle werden unter Verwendung einer Entscheidungsbaumtechnik konstruiert. Es ordnet die Vektoren von Werten auf Beschriftungen ab und repräsentiert den Klassifikator als Entscheidungsbaum. Ein solcher Baum kann mit den verschachtelten If-dann-Else-Aussagen verglichen werden, bei denen der Zustand immer ein einfacher Test der Werte im Vektor ist. Und die dann und sonst Zweige sind entweder weiter, wenn es sich um andere Aussagen handelt oder eine Kategorisierungsbezeichnung angibt. Ein Entscheidungsbaum lernt aus den Daten, findet die am besten geeigneten Merkmale für die Differenzierung der Ausgabe und überprüft rekursiv auf die angegebenen Eingabedaten, um die Etikett vorherzusagen. Ein Entscheidungsbaum könnte beispielsweise so aussehen, wenn der Eingangsvektor (a, b, c) ist:

Wenn a> 10
Dann wenn b < 20
Dann zurück "1" zurückkehren
Sonst wenn a < 15
Dann zurück "0" zurückgeben
Sonst kehre "1" zurück
Sonst wenn c 5
Dann zurück "1" zurückkehren
Sonst return "0"
Sonst kehre "1" zurück

Beachten Sie, dass die anderen Entscheidungsbäume neben diesem dieses Merkmal haben. Folglich besteht das Problem nicht nur darin, einen solchen Entscheidungsbaum zu lokalisieren, sondern auch die am besten geeigneten zu identifizieren. Die Tatsache, dass die Eingabe eine Stichprobe aus einer beträchtlichen realen Sammlung ist und dass der Entscheidungsbaum erstellt wurde, um die Vektoren in diesem umfangreicheren Satz genau zu identifizieren, bestimmt genau, was „geeignet“ in diesem Fall bedeutet. Daher hängt die Definition von „geeignet“ von (1) von den Eigenschaften dieses breiteren Satzes (z. B. der Wahrscheinlichkeit für jeden Vektor) und (2) den finanziellen Auswirkungen der Fehlklassifizierung in jeder bestimmten Instanz ab.

Terminologien im Zusammenhang mit Decision Tree

Wurzelknoten: Der Wurzelknoten des Entscheidungsbaums ist dort, wo alles beginnt. Der gesamte Datensatz ist dargestellt, was dann in zwei oder mehr homogene Sätze unterteilt ist.

Blattknoten: Die Blattknoten sind die letzten Ausgabeknoten des Baumes. Danach kann der Baum nicht weiter geteilt werden.

Aufteilung: Die Aufteilung des Entscheidungsknotens/Root-Knotens in Subnodes gemäß den angegebenen Bedingungen wird als Split bezeichnet.

Zweig: Ein Zweig oder ein Unterbaum ist ein Baum, der aus einem Knoten eines übergeordneten Baums erstellt wurde.

Beschneidung: Beschneiden ist das Verfahren, um die unerwünschten Zweige des Baumes zu entfernen.

Eltern- und Kinderknoten: Der Wurzelknoten des Baumes wird als übergeordnete Knoten bezeichnet, während die Knoten, die daraus stammen.

Umsetzung von Entscheidungsbäumen in Sklearn

Importieren der Bibliotheken:

von Sklearn.Datensätze importieren make_classification
von Sklearn.Tree Import DecisionTreeClassifier
von Sklearn.model_selection import cross_val_score

Erstellen des Datensatzes:

X, y = make_classification (random_state = 42)
print ('Zugdaten ist', x)
print ('Testdaten ist', y)

Ausgang:

Die Zugdaten sind [-2.02514259 0.0291022 -0.47494531… -0.33450124 0.86575519
-1.20029641]
[1.61371127 0.65992405 -0.15005559… 1.37570681 0.70117274
-0.2975635]
[0.16645221 0.95057302 1.42050425… 1.18901653 -0.55547712
-0.63738713]

[-0.03955515 -1.60499282 0.22213377… -0.30917212 -0.46227529
-0.43449623]
[1.08589557 1.2031659 -0.6095122… -0.3052247 -1.31183623
-1.06511366]
[-0.00607091 1.30857636 -0.17495976… 0.99204235 0.32169781
-0.66809045]]]
Die Testdaten sind [0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0
0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0
1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0]

Erstellen des Modells:

Modell = DecisionTreeClassifier (random_state = 0)
CROSS_VAL_SCORE (Modell, x, y, cv = 10)

Ausgang:

Array ([0).9, 1. , 0.8, 1. , 1. , 0.9, 0.9, 1. , 0.9, 1. ]))

Abschluss

Wir haben die Entscheidungsbäume-Modelle in sklearn besprochen, die eine baumähnliche Struktur zur Klassifizierung oder Vorhersage der Ausgangsbezeichnungen erzeugen. Sie teilen die Knoten, um die Tiefe des Baumes zu verringern. Wir haben auch die verschiedenen Begriffe im Zusammenhang mit den Entscheidungsbäumen wie Blattknoten, übergeordneten Knoten, Beschneiden usw. gesehen. Dann diskutierten wir später die Implementierung von Sklearn.