ホームページ >バックエンド開発 >Python チュートリアル >Pythonで決定木アルゴリズムを実装する原理と実装方法
デシジョン ツリー アルゴリズムは教師あり学習アルゴリズムのカテゴリに属し、連続的およびカテゴリカルな出力変数に適しており、通常、分類および回帰問題を解決するために使用されます。
デシジョン ツリーはフローチャートに似たツリー構造で、各内部ノードが属性のテストを表し、各ブランチがテストの結果を表し、各ノードがクラス ラベルに対応します。
トレーニング セット全体をルートとして扱うことから始めます。
情報獲得の場合、属性はカテゴリカルであると想定され、Gini インデックスの場合、属性は連続的であると想定されます。
レコードは属性値に基づいて再帰的に分散されます。
統計手法を使用して属性をルート ノードに並べ替えます。
最適な属性を見つけて、ツリーのルート ノードに配置します。
次に、データセットのトレーニング セットをサブセットに分割します。サブセットを作成するときは、トレーニング データセットのすべてのサブセットが同じ属性値を持つようにしてください。
各サブセットで 1 と 2 を繰り返して、すべてのブランチのリーフ ノードを見つけます。
構築と操作の 2 つの段階が必要です:
構築段階、データ セットの前処理。 Python sklearn パッケージを使用して、データセットをトレーニングとテストから分割します。分類器をトレーニングします。
運用フェーズでは、予測を行います。計算精度。
データのインポートでは、データをインポートして操作するために、Python で提供される pandas パッケージを使用します。
ここでは、URL を使用して、データセットをダウンロードせずに UCI サイトから直接データセットを取得します。システム上でこのコードを実行しようとするときは、システムにアクティブなインターネット接続があることを確認してください。
データセットは「,」で区切られているため、sep パラメータの値を次のように渡す必要があります。
もう 1 つ注意すべき点は、データセットにはヘッダーが含まれていないため、Header パラメーターの値を none として渡します。 header パラメーターを渡さない場合、データセットの最初の行がヘッダーと見なされます。
データ スライスでは、モデルをトレーニングする前に、データ セットをトレーニング データ セットとテスト データ セットに分割する必要があります。
トレーニングとテストのためにデータセットを分割するには、sklearn モジュール train_test_split を使用しました
まず、データセット内の属性からターゲット変数を分離する必要があります。
X=balance_data.values[:,1:5] Y=balance_data.values[:,0]
上記は、データセットを分割するコード行です。変数 X には属性が含まれ、変数 Y にはデータセットのターゲット変数が含まれます。
次のステップは、トレーニングとテストの目的でデータセットを分割することです。
X_train,X_test,y_train,y_test=train_test_split( X,Y,test_size=0.3,random_state=100)
前の行では、トレーニングとテスト用にデータセットを分割しています。データセットをトレーニングとテストの間で 70:30 の比率で分割しているため、test_size パラメーターの値を 0.3 として渡します。
random_state 変数は、ランダム サンプリングに使用される擬似乱数生成器の状態です。
以上がPythonで決定木アルゴリズムを実装する原理と実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。