Python 機械学習 (6) デシジョン ツリー (上) 構築ツリー、情報エントロピーの分類と測定、情報ゲイン、CART アルゴリズム、枝刈り

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

合コンのプロセスをシミュレーションする合コン意思決定マップでは、男性が合コンに行く際に、まず性別を女性として選択し、年齢などの情報をもとに相手のことを知り、容姿、収入、職業。
意思決定図を通して、私たちは人生においてさまざまな選択に直面していることがわかります。私たちの経験と私たち自身のニーズに基づいて、判断の背後にあるロジックを構造図にフィルタリングすると、ツリー状の図が見つかります。構造、いわゆるツリーです。
私たちが意思決定を行う際には、構築と剪定という 2 つの段階を経ます。

建設ツリー

構築とは、完全な決定木を生成することです。簡単に言うと、構築プロセスは、どの属性をノードとして使用するかを選択するプロセスです。構築プロセスでは、次の 3 種類のノードが存在します。

  • ルート ノード: この位置はツリーの最上部にあり、カテゴリの分割を最大化し、データのフィルタリングに役立ちます。
  • 内部ノード: ツリーの中央に位置するノードであり、子ノードでもあります。
  • リーフノード: 各ノードの決定の結果、子ノードは存在しません。

したがって、ツリーを構築する過程で、次の 3 つの重要な問題を解決する必要があります。

  • ルート ノードとして選択する属性
  • どの属性が内部ノード (子ノード) として選択されるか
  • いつ停止してターゲット状態を取得するか (リーフ ノード)

ルート ノードの選択が異なると、ツリーの選択も異なります。
質問: プログラムを使用してルート ノードを選択するにはどうすればよいですか?
目標: メジャーを使用して、さまざまな特徴を通じて選択されたブランチの分類を計算し、ルート ノードとして最適なものを見つけます。
ルート ノードはデータをより適切に分割するために使用でき、内部ノードはデータをより適切に再分割するために使用されます。

情報エントロピー (エントロピー)

情報エントロピーは、確率変数の不確実性の尺度です。エントロピーは物理学の知識点であり、物体の内部のカオスの程度を示します。たとえば、口紅には多くの種類がありますが、ショッピング モールで完全に満足できる口紅を簡単に購入できる確率は非常に低いことを意味します。確実性が高いほど、エントロピーは大きくなります。たとえば、Huawei 社の携帯電話を購入したい場合は、Huawei ストアで購入できます。確実性が高いほど、エントロピーは小さくなります。

エントロピーと分類の関係

ここに画像の説明を挿入
図 1 は、分類後はさらに混沌としています。混乱の程度が大きくなるほど、不確実性が増し、エントロピー値も大きくなります。図 2 の分類後、データは比較的純粋で、分類は明確で規則的であり、エントロピー値が小さくなります。
プログラムを使用してそれを達成する場合は、指標を定量化する必要があります。

情報エントロピーの尺度

単位:1bit
コインには表と裏がある コインを投げる確率は50%、証明できる確率も50% 最も単純な二値分類問題 コインを投げたときの不確実性を1bitとして記録するコイン投げの回数は、それがもたらす不確実な結果と指数関数的に関係します。

1枚硬币:不确定性为2,正反
2枚硬币:不确定性为4,全正,全反,一正一反,一反一正
3枚硬币:不确定性为8
n枚硬币:不确定性为2^n

等しい確率で一様分布

4 つの不確実な結果 = 2 2 2^222、エントロピーは 2 ビット、2 = log 2 4 2=log_242=ログ_ _24
8 不確実な結果 =2 3 2^323、エントロピーは 3 ビット、3 = log 2 8 3=log_283=ログ_ _28m
の不確実な結果 =2 n 2^n2n、エントロピーは nbit、n = log 2 mn=log_2mn=ログ_ _2m の
確率は等しい、n = log 2 mn=log_2mn=ログ_ _2m、m は不確実な結果の数です。

不等確率分布

ここに画像の説明を挿入
DDを入れるDは 6 つの状況に分割され、不確実性の結果は 6、つまりm = 6 m=6 になります。メートル=6DDDのエントロピーは次のとおりです:E nt ( D ) = log 2 6 Ent(D)=log_26エント( D ) _ _=ログ_ _26
実際の状況は、以下の図に示すように、さらに複雑になる可能性があります。DDDの不確かさはA、B、CA、B、CA B Cの3種類、AAA には 1/2 の確率で 3 つのケースがあり、BBBには確率 1/3 の 2 つのケースがあり、CCCの確率は 1 件につき 1/6 です。AAAAにはm(A)=3 に対応する 3 つの可能性があり、単一 A のエントロピーはlog 2 3 log_23ログ_ _23DDDのデータの方が純度が高く、データそのものの純度は、純度の低いデータから純度の高いデータを減算し、確率問題を考慮して重みを掛けることで求められます。
AAAAにおけるエントロピーはEnt ( A ) = 1 2 ( log 2 6 − log 2 3 ) Ent(A)=\frac{1}{2}(log_26-log_23) です。エント( A ) _ _=21(ログ_ _26ログ_ _23 )。B
、CB、CB Cなどのエントロピー。
Ent ( B ) = 1 3 ( log 2 6 − log 2 2 ) Ent(B)=\frac{1}{3}(log_26-log_22)エント( B ) _ _=31(ログ_ _26ログ_ _22 )
Ent ( C ) = 1 6 ( log 2 6 − log 2 1 ) Ent(C)=\frac{1}{6}(log_26-log_21)エント( C ) _ _=61(ログ_ _26ログ_ _21 )
ここに画像の説明を挿入
DDDの関数は次のとおりです。E nt ( D ) = En nt ( A ) + En nt ( B ) + En nt ( C ) Ent(D)=Ent(A)+Ent(B)+Ent(C)エント( D ) _ _=エント( A ) _ _+エント( B ) _ _+En t ( C )を導出すると、次の結果が得られます。下の図は対数グラフであり、点( 1 , 0 ) (1,0)
ここに画像の説明を挿入
を通過する必要があります。( 1 0 )、横軸はP k P_kP、縦軸はEnt ( A ) Ent(A)です。E n t ( A )P k = 1 P_k=1P=1 の場合、確率が 1、エントロピーが 0 であることを意味し、データが最も純粋であることを意味します。P k = 1 P_k=1P=1の範囲は 0 と 1 の間であるため、グラフには 1 を超える部分はありません。
ここに画像の説明を挿入
言い換えれば、確率が大きければ大きいほど、カオスの度合いは低くなり、エントロピーは低くなります。

  • 演習 1

下図では、図2のエントロピー値が大きく混乱の度合いが高いのに対し、図1のデータは比較的純粋ですべて円であり、不確実性が小さいほどエントロピー値は小さくなります。
ここに画像の説明を挿入

  • 演習 2
    セット A: [1,2,3,4,5,6,7,8,9,10]
    セット B: [1,1,1,1,1,1,1,1,1,9,10]
    集合 B のエントロピー値は小さく、B のデータは比較的純粋で、1 の出現確率が比較的高く、エントロピー値が小さく、安定性が比較的高い。
    決定木を作成する場合、エントロピー値が低いほどデータが純粋になり、分類の効果がより明確になりますが、数値モデルではエントロピー値がどんどん小さくなることが期待されます。

情報獲得

エントロピーはサンプルセットの不確実性を表すことができ、エントロピーが大きいほどサンプルの不確実性も大きくなります。したがって、分割前後の集合のエントロピーの差を利用して、現在の特徴を使用してサンプル集合 Y の分割結果の品質を測定することができます。
情報利得は、特徴 X がクラス Y の不確実性を低減する程度を表し、ノードの選択を決定します。
下の図では、ルート ノード Y のエントロピー データは 0.9 と比較的大きく、データは比較的カオス的ですが、Y を Y_1 と Y_2 に分割し、エントロピー分布は 0.2 と 0.5 であることがわかります。 Y_1 の分類効果はより明らかです。0.9 − 0.2 > 0.9 − 0.5 0.9-0.2>0.9-0.50.90.2>0.90.5
ここに画像の説明を挿入

トレーニング データ セット D に対する特徴 A の情報利得g ( D , A ) g(D,A)g ( D ,A )、集合DDD の情報エントロピーH ( D ) H(D)H ( D )および機能AA与えられた条件DDD の情報条件付きエントロピーH ( D ∣ A ) H(D|A)H ( D A )の差。つまり、式は次のとおりです。g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A)g ( D ,=H ( D )H ( D A )
は本質的に、初期エントロピーと情報エントロピーの間のギャップです。

  • 情報利得の計算例
    下図のように、天気、気温、湿度、風の4つの特性に基づいてゴルフをするかどうかを判断します。
    ここに画像の説明を挿入
    特徴: 天気、気温、湿度、風
    ラベル: バスケットボールをするかどうか
    各特徴がラベルを決定し、最終結果に与える影響は下図に示されています。
    ここに画像の説明を挿入
    計算プロセス:
    どの特徴がルート ノードであるかを判断することはできません。データのみです。情報ゲインは、ルート ノードの特性を選択するために使用されます。情報ゲインが大きければ大きいほど、より効果的になります。ゲインが大きいほど、除算はより効果的になり、データは不純なデータからより純粋なデータに移行します。
    • 1. 初期エントロピーを計算する
    • 2. 各特徴のエントロピーを計算する
    • 3. 球面収差を実行して情報利得を得る
    • 4. 情報利得が大きいフィーチャをルート ノードとして選択します

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
計算結果は、温度の情報利得が最も大きく、ルート ノードとして温度を選択し、次に湿度、天気、風から子ノードを選択して完全な決定木を構築します。
情報獲得を通じて決定木を取得することは、ID3 アルゴリズムと呼ばれる一種の意思決定アルゴリズムです。

ID3 アルゴリズムの欠陥

ここに画像の説明を挿入
先ほどテーブルに列 ID を追加すると、ID 列の各数値は異なり、分類に ID 機能が使用されます。各 ID 値は等しくなく、別個のカテゴリです。各カテゴリにはそれ自体しかありません。つまり、データは比較的純粋で、各データの出現確率は 100% です。つまり、ID が 0 の場合、そのエントロピーは 0 であり、ID が 6 の場合、エントロピーは 0 のままです。情報ゲインが使用される場合、ID 列はルート ノードとして使用され、プレイするかどうかの最終結果とは関係がありません。
したがって、ID3 アルゴリズムには欠陥があります。情報ゲインにより、より多くの特徴が分類される傾向があります。一部のノイズ データは、全体の分類やツリー全体の構造にさえ影響を与えます。この欠陥を解決するために、情報ゲイン率が提案されています。

情報取得率 (C4.5)

ID3 を計算する場合、より多くの値を持つ属性が選択される傾向があります。この問題を回避するために、C4.5 では属性の選択に情報獲得率の方法を採用しています。情報獲得率 = 情報獲得 / 属性エントロピー、属性は特徴です。エントロピーはデータのカオス度、データの不確実性を表します。属性が複数の値を持つ場合、データが複数の部分に分割され、データの確率が増加するため、情報利得は増加しますが、属性エントロピーも増加し、全体の情報利得率はあまり変化しません。複数の部分に分割すると、各カテゴリのエントロピーは小さくなり、サンプル全体では不確実性が増加し、エントロピーが増加します。分類が増えるほど、情報利得が大きくなり、情報エントロピーが大きくなります。情報利得とエントロピーは同時に同じ方向に変化するため、この 2 つの比率が影響を軽減し、両者の関係は情報利得の増加を抑制するのに比例します。

CARTアルゴリズム

CART アルゴリズム、英語の正式名は (Classification And Regression Tree)、中国語名は Classification and Regression Tree です。ID3 および C4.5 アルゴリズムはバイナリ ツリーまたはマルチフォーク ツリーを生成できますが、CART はバイナリ ツリーのみをサポートします。同時に、CART デシジョン ツリーは非常に特殊であり、分類ツリーとしても回帰ツリーとしても使用できます。
CART 分類ツリーは、情報利得または情報利得率の代わりにジニ係数が属性選択の測定指標として使用されることを除いて、C4.5 アルゴリズムに似ています。ジニ係数は、国の所得格差を測定するために使用される一般的な指標です。ジニ係数自体がサンプルの不確実性を反映しており、ジニ係数が小さいほどサンプル間の差が小さく、不確実性の度合いが低いことを意味します。分類の過程自体が浄化の過程であり、CARTアルゴリズムを用いて分類木を構築する際には、エントロピーの逆でジニ係数が最も小さいものが属性区分として選択されます。
ジニ係数の式: G ini ( D ) = 1 − ∑ k = 1 ∣ y ∣ P k 2 Gini(D)= 1-\displaystyle{\sum_{k=1}^{|y|}P_k^2}ジニ( D ) _=1k = 1yPk2
確率が 1 の場合、データの純度が高いほど、ジニ係数は 0 になります。2 つの分類の問題では、y は 0 または 1 ではなく、
ジニ係数によって決定木が構築されます。

  • 初期ジニ係数を計算する
  • 各特徴のジニ係数を個別に計算する
  • 差分を実行してジニ係数ゲインを計算します
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    。計算によると、温度が最大のジニ係数を持ち、ルート ノードとして選択できます。

継続的なデータ処理の実装

実際の処理では連続値が多く、例えば下図の年収は連続値であり、実際には数値属性ですが、ジニ係数はどのように計算するのでしょうか。
ここに画像の説明を挿入
プロセスは次のとおりです。

  • 順序が崩れた値を小さい値から大きい値に並べ替えます
  • 連続二分法
    ここに画像の説明を挿入
    たとえば、60 と 70 の中間値は 65、70 と 75 の中間値は 72.5 など、ペアのデータの中間値を取得します。65 を分割点とすると、65 より小さい数値は 1 つだけあり、データの 10 分の 1 を占めます。残りの 9/10 のうち、6 人にはローンがなく、3 人にはローンがあります。ジニ ゲインは 0.02 として計算されます。次に、72.5 が分割として使用されます。上の図のジニ係数ゲインを取得するためにポイントが計算され、最良のジニ ゲインを持つポイントがルート ノードとして取得されます。
    ここに画像の説明を挿入
    連続データの加工処理とは、連続値を離散化する処理である。

剪定

枝刈りは決定木をスリム化することであり、このステップの目標は、あまり判断せずに異なる結果を得ることです。たとえば、勾配降下法を 10,000 回実行した場合、最良の結果が得られるのは数百回である可能性がありますが、枝刈りは「過剰適合」(Overfitting) の発生を防ぐために行われ、最良の結果が得られた時点で停止します。過学習トレーニング セットが完璧すぎる場合、テスト中のテスト セットの結果は満足のいくものではなくなります。
過剰適合を防ぐために枝刈りを使用する必要がありますが、枝刈りを行わずに分割を続けると、データの 100% が正しい結果に分割されます。下図に示すように、分割は最後まで行われます。
ここに画像の説明を挿入

継続的に分割することの効果は半分に分割することと同じであるため、分割し続ける必要はありません。そうしないと、常にコンピューターのリソースが消費されてしまいます。

剪定前

ブランチを構築する前に、いくつかの設定を行います。

  • ツリーの高さまたは深さを指定します。たとえば、上図では 10 を 4 回分割しますが、高さの指定が 3 の場合、4 回目は実行されません。
  • 各ノードに含まれるサンプルの最小数。たとえば、サンプルの最小数が 3 に指定された場合、3 を超えると実行されなくなります。
  • 指定したノードのエントロピーが一定値未満の場合、分割は行われなくなります。例えば、指定したノードのエントロピーが0.2で、ちょうど2箇所のエントロピーが0.2の場合、それ以上は実行されません。

剪定後の

枝刈りされた決定木の簡略化されたバージョンは、生成された過適合決定木を枝刈りすることによって取得できます。

おすすめ

転載: blog.csdn.net/hwwaizs/article/details/131942399