Uczenie drzewa klasyfikacji

Uczenie maszynowe z modelami drzewiastymi w Pythonie

Elie Kawerk

Data Scientist

Elementy składowe drzewa decyzyjnego

  • Drzewo decyzyjne: struktura danych złożona z hierarchii węzłów.

  • Węzeł: pytanie lub predykcja.

Uczenie maszynowe z modelami drzewiastymi w Pythonie

Elementy składowe drzewa decyzyjnego

Trzy rodzaje węzłów:

  • Korzeń: brak węzła nadrzędnego, pytanie dające dwa węzły podrzędne.

  • Węzeł wewnętrzny: jeden węzeł nadrzędny, pytanie dające dwa węzły podrzędne.

  • Liść: jeden węzeł nadrzędny, brak węzłów podrzędnych --> predykcja.

Uczenie maszynowe z modelami drzewiastymi w Pythonie

Predykcja

Drzewo decyzyjne z etykietami

Uczenie maszynowe z modelami drzewiastymi w Pythonie

Zysk informacji (IG)

Diagram zysku informacji

Uczenie maszynowe z modelami drzewiastymi w Pythonie

Zysk informacji (IG)

Wzór na zysk informacji

Kryteria miary nieczystości węzła $I (node)$:

  • indeks Giniego,
  • entropia. ...
Uczenie maszynowe z modelami drzewiastymi w Pythonie

Uczenie drzewa klasyfikacji

  • Węzły są rozwijane rekurencyjnie.

  • W każdym węźle dane są dzielone na podstawie:

    • cechy $f$ i punktu podziału $sp$ maksymalizującego $IG(\text{node})$.
  • Jeśli $IG (\text{node})$= 0, węzeł staje się liściem.

    ...

Uczenie maszynowe z modelami drzewiastymi w Pythonie
# 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)
Uczenie maszynowe z modelami drzewiastymi w Pythonie

Kryterium informacji w 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
Uczenie maszynowe z modelami drzewiastymi w Pythonie

Czas na ćwiczenia!

Uczenie maszynowe z modelami drzewiastymi w Pythonie

Preparing Video For Download...