Python 3 – デシジョンツリー-Pythonチュートリアル

デシジョンツリーは、最も人気のある教師あり機械学習アルゴリズムの1つです。

観察から結論に至る予測モデルです。 観察は枝で表され、結論は葉で表されます。

モデルに離散値のセットを取ることができるターゲット変数がある場合、は分類ツリーです。

モデルに連続値をとることができるターゲット変数がある場合、は回帰ツリーです。

関連コース: Python機械学習コース

デシジョンツリーは、統計やデータマイニングでも一般的です。 シンプルですが便利な機械学習構造です。

デシジョンツリー

前書き

デシジョンツリーを理解する方法は? バイナリの例を設定しましょう!

コンピュータサイエンスでは、木は上から下に逆さまに成長します。

一番上の項目はルートノードと呼ばれる質問です。 本物の木と同じように、すべてはそこから始まります。

その質問には2つの可能な回答があるため、回答は(この場合)ツリーから出ている2つのブランチノードです。

根でも枝でもないものはすべて葉です。 リーフノードは、別の回答または基準で埋めることができます。 葉は決定と呼ぶこともできます。

デシジョンツリーが完了するまで、このプロセスを繰り返すことができます。 理論的には、それはとても簡単です。

デシジョンツリー

アルゴリズム

アルゴリズムはそれを次のように処理します。

デシジョンツリーにはオブジェクトがあり、オブジェクトにはステートメントがあります。
各ステートメントには機能があります。
機能はオブジェクトの属性です。
アルゴリズムは、すべてのステートメントとすべての機能が完了するまで、このプロセスを調査します。

プログラミング言語でディシジョンツリーを使用する手順は次のとおりです。

  1. データセットを提示します。
  2. 記述的特徴とターゲット特徴から学び、モデルをトレーニングします。
  3. 基準を達成するまでツリーを続けます。
  4. 予測を表すリーフノードを作成します。
  5. インスタンスを表示し、リーフノードに到達するまでツリーを実行します。

完了!

データセット

データセットから始めます

雨が降っている 決定
番号 傘なし
はい 傘を取る

次のように簡略化できます。

したがって、対応するX(機能)とY(決定/ラベル)は次のとおりです。

1
2
X = [[0], [1]]
Y = [0, 1]

デシジョンツリーコード

Sklearnは、箱から出してすぐに決定木をサポートします。
その後、次のコードを実行できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from sklearn import tree
from sklearn.model_selection import train_test_split
import numpy as np


features = ['raining']
X = [[0], [1]]
Y = [0, 1]

clf = tree.DecisionTreeClassifier()
clf.fit(X,Y)


dotfile = open("dtree.dot", 'w')
tree.export_graphviz(clf, out_file = dotfile, feature_names=features, filled=True, round
ed=True, impurity=False, class_names=['No Umbrella','Umbrella'])
dotfile.close()

これにより、ツリーが作成され、ドットファイルが出力されます。 使用できます Webgraphviz そこにドットコードを貼り付けることで、ツリーを視覚化します。

作成モデルは、既知の記述的特徴と既知のターゲット特徴との関係をモデル化するため、未知のインスタンスの予測を行うことができます。

1
print( clf.predict([[0]]) )

重要な概念

最後に、ディシジョンツリーと機械学習の4つの重要な概念をすばやく確認します。

  1. 期待値:確率変数の期待値を意味します。 リスクの重大度を判断するために、意思決定ツリーに対して期待値分析が行われます。 そのためには、リスクの確率を0.0から1.0までの数値で測定する必要があります。

  2. エントロピ:情報を測定します。 新しいインスタンスを分類する必要があるかどうかを指定するために必要となると予想される情報量です。 エントロピーの考え方は、可能な分類クラスに関して確率分布の不確実性を定量化することです。

  3. 正確さ:は、行われた正しい予測の数を、行われた予測の総数で割ったものです。 私たちがやりたいのは、機械学習モデルがどれほど正確かを確認することです。

  4. 過剰適合:トレーニングモデルがトレーニングデータに可能な限り適合しようとしているために発生します。 それを防ぐために、データのノイズを減らしてみてください。

デシジョンツリーと機械学習の基本は以上です。

機械学習を初めて使用する場合は、 それなら私はこの本を強くお勧めします。

例と演習をダウンロードする

Hope this helps!

Source link