Classification-Tree Learning

Maschinelles Lernen mit baumbasierten Modellen in Python

Elie Kawerk

Data Scientist

Bestandteile eines Entscheidungsbaums

  • Entscheidungsbaum: Eine Datenstruktur, die aus einer Hierarchie von Knoten besteht.

  • Knoten: Frage oder Vorhersage

Maschinelles Lernen mit baumbasierten Modellen in Python

Bestandteile eines Entscheidungsbaums

Drei Arten von Knoten:

  • Wurzel (root): kein übergeordneter Knoten, eine Fragen führt zu zwei untergeordneten Knoten.

  • Interner Knoten: ein übergeordneter Knoten, eine Fragen führt zu zwei untergeordnete Knoten.

  • Blatt: ein Elternknoten, keine Kindknoten --> Vorhersage

Maschinelles Lernen mit baumbasierten Modellen in Python

Vorhersage

DT-markiert

Maschinelles Lernen mit baumbasierten Modellen in Python

Informationsgewinn (IG – Information Gain)

IG-diagram

Maschinelles Lernen mit baumbasierten Modellen in Python

Informationsgewinn (IG – Information Gain)

IG-formula

Kriterien, um die Unreinheit eines Knotens $I (node)$ zu messen:

  • gini index
  • Entropie
Maschinelles Lernen mit baumbasierten Modellen in Python

Classification-Tree Learning

  • Knoten werden rekursiv erzeugt.

  • An jedem Knotenpunkt teilst du die Daten nach folgenden Kriterien auf:

    • Merkmal $f$ und Split-Point $sp$, um $IG(\text{node})$ zu maximieren
  • Wenn $IG (\text{node})$= 0 ist, deklarierst du den Knoten zu einem Blatt.
Maschinelles Lernen mit baumbasierten Modellen in Python
# Import DecisionTreeClassifier
from sklearn.tree import DecisionTreeClassifier
# Import train_test_split
from sklearn.model_selection import train_test_split
# Import accuracy_score
from sklearn.metrics import accuracy_score
# Split dataset into 80% train, 20% test
X_train, X_test, y_train, y_test= train_test_split(X, y, 
                                                   test_size=0.2, 
                                                   stratify=y,
                                                   random_state=1)
# Instantiate dt, set 'criterion' to 'gini'
dt = DecisionTreeClassifier(criterion='gini', random_state=1)
Maschinelles Lernen mit baumbasierten Modellen in Python

Informationskriterium in scikit-learn

# Fit dt to the training set
dt.fit(X_train,y_train)

# Predict test-set labels
y_pred= dt.predict(X_test)

# Evaluate test-set accuracy
accuracy_score(y_test, y_pred)
0.92105263157894735
Maschinelles Lernen mit baumbasierten Modellen in Python

Lass uns üben!

Maschinelles Lernen mit baumbasierten Modellen in Python

Preparing Video For Download...