Навчання класифікаційних дерев

Машинне навчання з деревоподібними моделями в Python

Elie Kawerk

Data Scientist

Будівельні блоки дерева рішень

  • Дерево рішень: структура даних з ієрархією вузлів.

  • Вузол: запитання або передбачення.

Машинне навчання з деревоподібними моделями в Python

Будівельні блоки дерева рішень

Три типи вузлів:

  • Корінь: немає батьківського вузла, запитання, що породжує два нащадні вузли.

  • Внутрішній вузол: один батьківський вузол, запитання, що породжує два нащадні вузли.

  • Листок: один батьківський вузол, немає нащадних вузлів → передбачення.

Машинне навчання з деревоподібними моделями в Python

Передбачення

Підписане дерево рішень

Машинне навчання з деревоподібними моделями в Python

Інформаційний виграш (IG)

Діаграма інформаційного виграшу

Машинне навчання з деревоподібними моделями в Python

Інформаційний виграш (IG)

Формула IG

Критерії вимірювання нечистоти вузла $I (node)$:

  • індекс gini,
  • ентропія. ...
Машинне навчання з деревоподібними моделями в Python

Навчання класифікаційних дерев

  • Вузли ростять рекурсивно.

  • У кожному вузлі розбийте дані за:

    • ознакою $f$ та точкою поділу $sp$, щоб максимізувати $IG(\text{node})$.
  • Якщо $IG (\text{node})$ = 0, оголосіть вузол листком.

    ...

Машинне навчання з деревоподібними моделями в 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)
Машинне навчання з деревоподібними моделями в Python

Інформаційний критерій у 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
Машинне навчання з деревоподібними моделями в Python

Давайте потренуємось!

Машинне навчання з деревоподібними моделями в Python

Preparing Video For Download...