決定木

決定木は以下のようなモデルで分類します。

決定木

決定木は自動で条件を学習するif文の連続、と考えれば分かりやすいでしょう。 決定木は 線形非分離 なデータも分類できます。

決定木を使うにはscikit-learnの DecisionTreeClassifier を使います。

from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier()  # 初期化
tree.fit(X, y)  # 学習

この DecisionTreeClassifier も他の分類器と同様に、 .fit(...).score(...).predict(...) メソッドが使えます。

分類される領域

プロットされた領域を見ると、決定木の特徴が見てとれます。 決定木は軸に水平、垂直の場合のみ分類できます。

判定条件

学習した決定木の判定条件をあらわすと以下のようになります。

学習した決定木

if文では軸に対して平行な分類しかできませんでした。

if weight > 60 and height < 170:
    ...

決定木も特徴の大きさ比較を続けることによって分類しています。

詳しくは sklearn.tree.DecisionTreeClassifier を参照ください。