ホームページ  >  記事  >  バックエンド開発  >  Pythonで決定木アルゴリズムを実装する原理と実装方法

Pythonで決定木アルゴリズムを実装する原理と実装方法

PHPz
PHPz転載
2024-01-22 19:24:11466ブラウズ

决策树算法原理 Python实现决策树算法

デシジョン ツリー アルゴリズムは教師あり学習アルゴリズムのカテゴリに属し、連続的およびカテゴリカルな出力変数に適しており、通常、分類および回帰問題を解決するために使用されます。

デシジョン ツリーはフローチャートに似たツリー構造で、各内部ノードが属性のテストを表し、各ブランチがテストの結果を表し、各ノードがクラス ラベルに対応します。

デシジョン ツリー アルゴリズムのアイデア

トレーニング セット全体をルートとして扱うことから始めます。

情報獲得の場合、属性はカテゴリカルであると想定され、Gini インデックスの場合、属性は連続的であると想定されます。

レコードは属性値に基づいて再帰的に分散されます。

統計手法を使用して属性をルート ノードに並べ替えます。

最適な属性を見つけて、ツリーのルート ノードに配置します。

次に、データセットのトレーニング セットをサブセットに分割します。サブセットを作成するときは、トレーニング データセットのすべてのサブセットが同じ属性値を持つようにしてください。

各サブセットで 1 と 2 を繰り返して、すべてのブランチのリーフ ノードを見つけます。

Python でデシジョン ツリー アルゴリズムを実装するには、

構築と操作の 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 サイトの他の関連記事を参照してください。

声明:
この記事は163.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。