Mímisbrunnr知恵の泉

← 情報理論 一覧

🎓 レベル:標準 | 重要度:B(重要)

📎 前提:相互情報量 | 関連:機械学習(決定木・特徴選択)

要点(BLUF)

IG(X)=H(Y)H(YX)=I(X;Y)\mathrm{IG}(X) = H(Y) - H(Y\mid X) = I(X;Y)

1. 情報利得=相互情報量

ラベル YY の不確かさは H(Y)H(Y)。特徴 XX の値で場合分けすると、残る不確かさは条件付きエントロピー H(YX)=xp(x)H(YX=x)H(Y\mid X)=\sum_x p(x)H(Y\mid X=x)。その減り分が情報利得です:

IG(X)=H(Y)H(YX)=I(X;Y)0\mathrm{IG}(X) = H(Y) - H(Y\mid X) = I(X;Y) \ge 0

これは 相互情報量 の定義そのもの。IG=0\mathrm{IG}=0(独立)なら特徴はラベルについて何も教えず、IG=H(Y)\mathrm{IG}=H(Y)XXYY を完全決定)なら分割でラベルが確定します。決定木は各ノードで全特徴の情報利得を計算し、最大の特徴で分割して、子ノードで再帰します。

2. コード:情報利得で特徴を選ぶ(底2, bit)

「外出するか」を天気・風の2特徴から予測する小データで、各特徴の情報利得を計算し、利得最大の特徴が選ばれることを確かめます。

import numpy as np
# 情報利得 IG = I(特徴;ラベル) = H(ラベル) - H(ラベル|特徴) (底2)
data=[  # (天気, 風, 外出)
 ('晴','弱',1),('晴','強',1),('晴','弱',1),('曇','弱',1),('曇','強',0),
 ('雨','弱',0),('雨','強',0),('雨','弱',1),('曇','弱',1),('晴','強',0),
]
def H(labels):
    vals,counts=np.unique(labels,return_counts=True)
    p=counts/counts.sum(); return -np.sum(p*np.log2(p))
def info_gain(idx):
    base=H([d[2] for d in data])
    feats=set(d[idx] for d in data)
    cond=sum(len([d for d in data if d[idx]==fv])/len(data)
             * H([d[2] for d in data if d[idx]==fv]) for fv in feats)
    return base-cond

print(f"ラベル(外出)のエントロピー H(Y)={H([d[2] for d in data]):.4f} bit")
gains={}
for name,idx in [('天気',0),('風',1)]:
    gains[name]=info_gain(idx)
    print(f"特徴『{name}』の情報利得 IG=I(特徴;Y)={gains[name]:.4f} bit")
best=max(gains,key=gains.get)
print(f"-> 情報利得が最大の『{best}』(IG={gains[best]:.4f})を決定木は最初の分割に選ぶ")

出力:

ラベル(外出)のエントロピー H(Y)=0.9710 bit
特徴『天気』の情報利得 IG=I(特徴;Y)=0.0955 bit
特徴『風』の情報利得 IG=I(特徴;Y)=0.2564 bit
-> 情報利得が最大の『風』(IG=0.2564)を決定木は最初の分割に選ぶ

出力の意味:外出ラベルの不確かさは H(Y)=0.971H(Y)=0.971 bit。これを天気で分けると不確かさが 0.09550.0955 bit、風で分けると 0.25640.2564 bit 減ります——風の方がラベルをよく説明するので、決定木は最初の分割に風を選びます。情報利得は相互情報量 I(特徴;Y)I(\text{特徴};Y) そのものなので、必ず非負(情報不等式とデータ処理不等式)で、無関係な特徴は利得0。こうして「ラベルの不確かさを最も減らす質問」を貪欲に選んでいくのが決定木の学習で、その心臓部は情報理論のエントロピーと相互情報量です。

3. 数式の直観的意味

情報利得による分割は「最も情報量の多い質問から順に聞く」戦略です。これは20の質問ゲームで「答えを最も絞り込む質問」を選ぶのと同じで、エントロピー(自己情報量とエントロピー)が「平均質問回数」だった話と直結します。注意点として、情報利得は取りうる値が多い特徴を過大評価する偏りがあり(極端には ID のような特徴は H(YX)=0H(Y\mid X)=0 で利得最大だが無意味)、実用の決定木では利得比(information gain ratio)やジニ不純度で補正します。この補正や木の剪定・アンサンブル(ランダムフォレスト)の実装は機械学習分野の領分で、ここでは「分割基準=相互情報量」という情報理論の核を示すに留めます。データ処理不等式(情報不等式とデータ処理不等式)から、特徴を加工しても元の情報量は増えない——だから良い特徴を選ぶことに意味があります。

⚠️ よくある誤解

対応シミュレーション

関連ノート