技術共有

デシジョン ツリー アルゴリズム、原則、実装事例の紹介

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

デシジョン ツリー アルゴリズムは、分類および回帰タスクに使用できる、非常に人気のある機械学習アルゴリズムです。以下は、原則と実装例、および対応する Python コードを含む、ディシジョン ツリー アルゴリズムの詳細な紹介です。

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

基本的な考え方

デシジョン ツリーは、データの分類または回帰に使用されるツリー構造です。これはノードとエッジで構成され、各内部ノードは機能のテストを表し、各ブランチはテストの結果を表し、各リーフ ノードはカテゴリまたは回帰値を表します。

ビルドプロセス

デシジョン ツリーの構築プロセスには通常、次の手順が含まれます。

  1. 最適な機能を選択する: 特定の基準 (情報ゲイン、ジニ指数など) に従ってデータ セットを分割するための最適な特徴を選択します。
  2. ノードの作成: 最適な特徴を使用してデータセットを分割し、ブランチごとに新しいノードを作成します。
  3. サブツリーを再帰的に構築する: 最適な特徴を選択してデータセットを分割するプロセスは、停止条件が満たされるまで (ノードの純度が特定のレベルに達するか、ツリーの深さが事前設定値に達するなど)、子ノードごとに繰り返されます。
  4. リーフノードを構築する: リーフ ノードは、分割が必要なくなったときに作成されます。通常、分類ツリーの多数派クラス ラベル、または回帰ツリーのサブセット内のすべてのデータ ポイントの平均です。
分割基準
  • 情報獲得: 特徴によるデータセットの分類における不確実性の減少を測定します。
  • ジニ指数: データセットの純度を測定します。ジニ指数が小さいほど、データセットの純度が高くなります。
  • 最小平均二乗誤差 (MSE): 回帰ツリーの分割基準。

事例の実装

以下は、Python と scikit-learn ライブラリを使用して実装された決定木分類のケースです。 3 つのアイリスの花 (セトーサ、バーシカラー、バージニカ) の特徴とカテゴリが含まれる有名なアイリス データセットを使用します。

1. データの準備
  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. # 加载数据集
  4. iris = load_iris()
  5. X, y = iris.data, iris.target
  6. # 拆分数据集为训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
デシジョン ツリー モデルをトレーニングする
  1. from sklearn.tree import DecisionTreeClassifier
  2. # 初始化决策树分类器
  3. clf = DecisionTreeClassifier()
  4. # 训练模型
  5. clf.fit(X_train, y_train)
評価モデル
  1. from sklearn.metrics import accuracy_score
  2. # 预测测试集
  3. y_pred = clf.predict(X_test)
  4. # 计算准确率
  5. accuracy = accuracy_score(y_test, y_pred)
  6. print(f"Accuracy: {accuracy:.2f}")
視覚的な意思決定ツリー
  1. import matplotlib.pyplot as plt
  2. from sklearn.tree import plot_tree
  3. # 可视化决策树
  4. plt.figure(figsize=(12, 12))
  5. plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
  6. plt.show()

要約:

上記のコードは、scikit-learn ライブラリを使用して Iris データセットを読み込み、デシジョン ツリー分類器をトレーニングし、モデルのパフォーマンスを評価し、デシジョン ツリーを視覚化する方法を示しています。この事例を通じて、デシジョン ツリーがどのように機能するのか、そしてそれを実際のアプリケーションでどのように使用するのかを知ることができます。

気に入っていただけましたら、ぜひ「いいね!」を押して保存してください。