Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで分類子を構築するために決定木をどのように使用できますか?


デシジョンツリーは、ランダムフォレストアルゴリズムの基本的な構成要素です。これは、機械学習で最も一般的なアルゴリズムの1つと見なされており、分類の目的で使用されます。わかりやすいのでとても人気があります。

決定木によって与えられた決定は、特定の予測が行われた理由を説明するために使用できます。これは、プロセスの内外がユーザーに明確になることを意味します。これらは、バギング、ランダムフォレスト、勾配ブースティングなどのアンサンブル手法の基盤でもあります。それらはCART、つまり分類および回帰ツリーとしても知られています。二分木(データ構造とアルゴリズムで研究されたもの)として視覚化できます。

ツリー内のすべてのノードは単一の入力変数を表し、リーフノード(ターミナルノードとも呼ばれます)には出力変数が含まれています。これらのリーフノードは、ノードの予測を行うために使用されます。デシジョンツリーが作成されるときの基本的な考え方は、指定されたスペースが複数のセクションに分割されることです。より少ないコストと最良の予測値を達成するために、すべての値が設定され、さまざまな分割が試行されます。これらの値は貪欲な方法で選択されます。

これらのノードの分割は、ツリーの最大深度に達するまで続きます。デシジョンツリーの使用の背後にある考え方は、すべてのターゲット変数が1つのカテゴリに分類されるまで、特定の特徴値に基づいて入力データセットをより小さなデータセットに分割することです。この分割は、すべてのステップで最大の情報ゲインを取得するために行われます。

すべての決定木はルートで始まり、これが最初の分割が行われる場所です。ノードが確実に定義されるように、効率的な方法を考案する必要があります。

ここでジニ値が浮かび上がります。ジニは、不平等を測定するために最も一般的に使用される測定の1つと見なされています。不等式とは、ノード内のすべてのサブセットが属する可能性のあるターゲットクラス(出力)を指します。

したがって、ジニ値は分割ごとに計算されます。ジニ値/不等式値に基づいて、情報ゲインを定義できます。

DecisionTreeClassifierは、マルチクラス分類を実行するために使用されます。

以下は同じ構文です。

class sklearn.tree.DecisionTreeClassifier(*, criterion='gini',…)

以下は例です-

from sklearn import tree
from sklearn.model_selection import train_test_split
my_data = [[16,19],[17,32],[13,3],[14,5],[141,28],[13,34],[186,2],[126,25],[176,28],
[131,32],[166,6],[128,32],[79,110],[12,38],[19,91],[71,136],[116,25],[17,200], [15,25], [14,32],[13,35]]
target_vals =['Man','Woman','Man','Woman',
'Woman','Man','Woman','Woman',
'Woman','Woman','Woman','Man','Man',
'Man','Woman', 'Woman', 'Woman',
'Woman','Man','Woman','Woman']
data_feature_names = ['Feature_1','Feature_2']
X_train, X_test, y_train, y_test = train_test_split(my_data, target_vals, test_size = 0.2, random_state = 1)
clf = tree.DecisionTreeClassifier()
print("The decision tree classifier is being called")
DTclf = clf.fit(my_data,target_vals)
prediction = DTclf.predict([[135,29]])
print("The predicted value is ")
print(prediction)
です。

出力

The decision tree classifier is being called
The predicted value is
['Woman']

説明

  • 必要なパッケージが環境にインポートされます。
  • このコードは、特徴値に基づいてターゲット値の値を分類するために使用されます。
  • 特徴ベクトルとターゲット値が定義されています。
  • データは、「train_test_split」関数を使用してトレーニングセットとテストセットに分割されます。
  • DecisionTreeClassifierが呼び出され、データがモデルに適合します。
  • 「予測」機能は、特徴値の値を予測するために使用されます。
  • 出力はコンソールに表示されます。

  1. PythonでBokehを使用して正弦波を生成するにはどうすればよいですか?

    Bokehは、データの視覚化に役立つPythonパッケージです。これはオープンソースプロジェクトです。 Bokehは、HTMLとJavaScriptを使用してプロットをレンダリングします。これは、Webベースのダッシュボードでの作業中に役立つことを示しています。 データを視覚化することは、実際に数値を調べたり複雑な計算を実行したりすることなく、データで何が起こっているかを理解するのに役立つため、重要なステップです。 Bokehは、NumPy、Pandas、およびその他のPythonパッケージと組み合わせて簡単に使用できます。インタラクティブなプロットやダッシュボードなどを作成するために使用

  2. matplotlibを使用してPythonを使用してヒストグラムを作成するにはどうすればよいですか?

    Matplotlibは、データの視覚化に使用される人気のあるPythonパッケージです。 データを視覚化することは、実際に数値を調べたり複雑な計算を実行したりすることなく、データで何が起こっているのかを理解するのに役立つため、重要なステップです。 定量的な洞察を聴衆に効果的に伝えるのに役立ちます。 Matplotlibは、データを使用して2次元プロットを作成するために使用されます。 Pythonアプリケーションにプロットを埋め込むのに役立つオブジェクト指向APIが付属しています。 Matplotlibは、IPythonシェル、Jupyterノートブック、SpyderIDEなどで使用できま