分類木の学習

Pythonで学ぶ木ベースのMachine Learning

Elie Kawerk

Data Scientist

決定木の基本要素

  • 【決定木】: ノードの階層からなるデータ構造。

  • 【ノード】: 質問または予測。

Pythonで学ぶ木ベースのMachine Learning

決定木の基本要素

ノードは3種類:

  • 【根】: 親なし。質問により子ノードが2つ。

  • 【内部ノード】: 親が1つ。質問により子ノードが2つ。

  • 【葉】: 親が1つ。子なし → 予測。

Pythonで学ぶ木ベースのMachine Learning

予測

DTにラベル付け

Pythonで学ぶ木ベースのMachine Learning

情報利得(IG)

情報利得の図

Pythonで学ぶ木ベースのMachine Learning

情報利得(IG)

IGの式

ノードの不純度 $I (node)$ の指標:

  • ジニ不純度、
  • エントロピー。 ...
Pythonで学ぶ木ベースのMachine Learning

分類木の学習

  • ノードは再帰的に成長させる。

  • 各ノードで次により分割:

    • 特徴量 $f$ と分割点 $sp$ を選び、$IG(\text{node})$ を最大化。
  • $IG (\text{node})$=0 の場合、そのノードを葉とする。

    ...

Pythonで学ぶ木ベースのMachine Learning
# 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で学ぶ木ベースのMachine Learning

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で学ぶ木ベースのMachine Learning

Passons à la pratique !

Pythonで学ぶ木ベースのMachine Learning

Preparing Video For Download...