Inlärning med klassificeringsträd

Maskininlärning med trädbaserade modeller i Python

Elie Kawerk

Data Scientist

Beslutsträds byggstenar

  • Beslutsträd: datastruktur bestående av en hierarki av noder.

  • Nod: fråga eller prediktion.

Maskininlärning med trädbaserade modeller i Python

Beslutsträds byggstenar

Tre typer av noder:

  • Rot: ingen föräldernod, fråga som ger upphov till två barnnoder.

  • Intern nod: en föräldernod, fråga som ger upphov till två barnnoder.

  • Löv: en föräldernod, inga barnnoder --> prediktion.

Maskininlärning med trädbaserade modeller i Python

Prediktion

Märkt beslutsträd

Maskininlärning med trädbaserade modeller i Python

Informationsvinst (IG)

IG-diagram

Maskininlärning med trädbaserade modeller i Python

Informationsvinst (IG)

IG-formel

Kriterier för att mäta orenhet i en nod $I (node)$:

  • gini-index,
  • entropi. ...
Maskininlärning med trädbaserade modeller i Python

Inlärning med klassificeringsträd

  • Noder växer rekursivt.

  • I varje nod delas data upp baserat på:

    • särdrag $f$ och delningspunkt $sp$ för att maximera $IG(\text{node})$.
  • Om $IG (\text{node})$= 0, deklareras noden som ett löv.

    ...

Maskininlärning med trädbaserade modeller i 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)
Maskininlärning med trädbaserade modeller i Python

Informationskriterium i 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
Maskininlärning med trädbaserade modeller i Python

Nu kör vi en övning!

Maskininlärning med trädbaserade modeller i Python

Preparing Video For Download...