技術共有

機械学習 - デシジョン ツリー (メモ)

2024-07-12

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

目次

1. デシジョンツリーを理解する

1 はじめに

2. 決定木の生成プロセス

2. sklearnのデシジョンツリー

1.tree.DecisionTreeClassifier (分類ツリー)

(1) モデルの基本パラメータ

(2) モデルの属性

(3)インターフェース

2.tree.DecisionTreeRegressor (回帰木)

3.tree.export_graphviz (生成されたデシジョン ツリーを描画専用の DOT 形式にエクスポート)

4. その他(補足)

3. デシジョンツリーの長所と短所

1. 利点

2. デメリット


1. デシジョンツリーを理解する

1 はじめに

デシジョン ツリーは、ノンパラメトリック教師あり学習法のシリーズから選択できます。 特徴とラベルを含むデータから決定ルールが要約され、これらのルールは分類と回帰の問題を解決するために樹形図構造で表示されます。決定木アルゴリズムは理解しやすく、さまざまなデータに適用でき、さまざまな問題解決に優れた性能を発揮します。特に、ツリーモデルを核としたさまざまな統合アルゴリズムは、さまざまな業界や分野で広く使用されています。

2. 決定木の生成プロセス

上記のデータセットは、 既知の種とそのカテゴリーのリストに関するデータ 。私たちの現在の目標は、動物を次のように分類することです。哺乳類と非哺乳類 。収集されたデータに基づいて、デシジョン ツリー アルゴリズムは次のデシジョン ツリーを計算できます。

今、体に鱗を持つ冷血動物で胎生ではない新種 A を発見した場合、この決定木を通じてその種を判断できます。 カテゴリー

関連する主要な概念: ノード

①ルートノード : 入力エッジはありませんが、出力エッジはあります。機能に焦点を当てた最初の質問が含まれています。

②中間ノード : 入力エッジと出力エッジの両方があります。入力エッジは 1 つだけですが、出力エッジは多数存在する可能性があります。それらはすべて特性に関する質問です。

③リーフノード: 入力エッジはありますが、出力エッジはありません。各リーフ ノードはカテゴリ ラベルです。

④子ノードと親ノード: 接続された 2 つのノードのうち、ルート ノードに近い方が親ノード、もう一方が子ノードになります。

2. sklearnのデシジョンツリー

関与するモジュール: sklearn.tree

1.tree.DecisionTreeClassifier (分類ツリー)

(1) モデルの基本パラメータ

(2) モデルの属性

(3)インターフェース

2.tree.DecisionTreeRegressor (回帰木)

重要なパラメータ基準

        回帰木はブランチの品質を測定します、サポートされている標準は 3 つあります。

    ① 平均二乗誤差 (MSE) を使用するには、「mse」と入力します。、親ノードとリーフ ノード間の平均二乗誤差の差が特徴選択の基準として使用されます。この方法では、リーフ ノードの平均値を使用して L2 損失を最小限に抑えます。

     ② フェルドマン平均二乗誤差を使用するには、「friedman_mse」と入力します。、潜在分岐の問題に対してフリードマンの修正平均二乗誤差を使用するメトリクスです。

     ③ 平均絶対誤差 MAE (平均絶対誤差) を使用するには、「mae」と入力します。、このメトリクスは、リーフ ノードの中央値を使用して L1 損失を最小限に抑えます。

3.tree.export_graphviz (生成されたデシジョン ツリーを描画専用の DOT 形式にエクスポート)

4. その他(補足)

        ① 情報エントロピーの計算はビキニ係数よりも遅くなります。 , ジニ係数の計算には対数が含まれないためです。さらに、情報エントロピーは不純物に対してより敏感であるため、情報エントロピーを指標として使用すると、決定木の成長がより「細かく」なりますしたがって、高次元のデータやノイズの多いデータの場合、情報エントロピーが過学習になりやすく、この場合はジニ係数の方がよく機能することがよくあります。

②random_stateはブランチ内のランダムパターンのパラメータを設定するために使用されます。デフォルトはNoneです。ランダム性は高次元でより顕著になります。低次元データ (虹彩データセットなど) では、ランダム性はほとんど現れません。 。任意の整数を入力すると、常に同じツリーが成長し、モデルが安定します。

③ スプリッターは決定木のランダムなオプションを制御するためにも使用されます。入力値は 2 つあります。決定木は分岐時にランダムですが、より重要な特徴 (重要度) が優先されます。属性 feature_importances_) を介して表示できます。「random」と入力すると、分岐時のデシジョン ツリーがよりランダムになります。、ツリーにはより多くの不必要な情報が含まれるため、ツリーはより深く、より大きくなり、これらの不必要な情報によりトレーニングセットへのフィッティングが低下します。

④ 制限がなければ、不純物を測定する指標が最適になるまで、または利用可能な特徴がなくなるまで、そのような決定木はオーバーフィットすることがよくあります。デシジョン ツリーをより一般化するには、デシジョン ツリーを次のようにする必要があります。剪定 。枝刈り戦略はデシジョン ツリーに大きな影響を与えます。正しい枝刈り戦略は、デシジョン ツリー アルゴリズムの最適化の中核です。

3. デシジョンツリーの長所と短所

1. 利点

①木を描いて見ることができるので分かりやすく説明しやすい。

② データの準備がほとんど必要ありません。他の多くのアルゴリズムでは、ダミー変数の作成や null 値の削除などのデータ正規化が必要になることがよくあります。しかしsklearn のデシジョン ツリー モジュールは欠損値の処理をサポートしていません

③利用する 木のコスト(たとえば、データを予測する場合) は、ツリーのトレーニングに使用されるデータ ポイントの数の対数であり、他のアルゴリズムと比較して非常に低コストです。

④ 数値データとカテゴリデータを同時に処理できる、回帰と分類の両方を実行できます 。他の手法は、多くの場合、変数タイプが 1 つだけのデータ セットの分析に特化しています。

⑤ 多出力問題、すなわち複数のラベルの問題にも対応できる(1つのラベル内に複数のラベル分類がある問題とは区別されることに注意)

⑥は ホワイトボックスモデル 、結果は簡単に解釈できます。モデル内で特定の状況が観察できる場合、その状況はブール論理によって簡単に説明できます。対照的に、ブラックボックス モデル (人工ニューラル ネットワークなど) では、結果の解釈がより困難になる可能性があります。

⑦ モデルは統計検定により検証できるため、モデルの信頼性を検討できます。たとえその仮定がデータを生成した実際のモデルにある程度違反している場合でも、適切なパフォーマンスを発揮できます。

2. デメリット

① デシジョン ツリー学習者は、データを適切に一般化できない過度に複雑なツリーを作成する可能性があります。これを過学習といいます。プルーン、リーフノードに必要な最小サンプル数の設定やツリーの最大深さの設定などのメカニズムこの問題を回避するには必要です。

② 決定木は不安定である可能性があり、データの小さな変更によりまったく異なる木が生成される可能性があります。この問題は統合されたアルゴリズムによって解決する必要があります。

③ 決定木の学習は、貪欲なアルゴリズム、それはに依存します 局所最適を最適化する (各ノードの最適) 全体的な最適を達成しようとしますが、このアプローチは全体的な最適な決定木を返すことを保証しません。この問題は、アンサンブル アルゴリズムによっても解決できます。ランダム フォレストでは、分岐プロセス中にフィーチャとサンプルがランダムにサンプリングされます。

④ XOR、パリティ、マルチプレクサの問題など、一部の概念はデシジョン ツリーで簡単に表現できないため、学習が困難です。

⑤ ラベル内の特定のクラスが支配的な場合、決定木学習器は支配的なクラスに偏ったツリーを作成します。したがって、決定木を当てはめる前に、バランスの取れたデータセット