机器学习中的信息增益与互信息

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251108104742414616/decisiontreesplit.webp">decisiontreesplit信息增益与互信息

基于信息的度量指标的必要性

这些度量指标之所以至关重要,原因如下:

  • 能够识别出最有效减少目标预测不确定性的属性。
  • 通过选择有意义的切分点,改善基于树的模型中的决策边界。
  • 支持高维数据集(如文本或基因组学)中的特征选择。
  • 通过展示哪些特征对结果影响最大,提高模型的可解释性。
  • 通过避免使用噪声或不相关的特征,防止过拟合。

信息增益量化了在特定特征上分割数据后的减少量。增益越高意味着分割越有用。

公式

> IG(S, A) = H(S) – \sum \frac{

Sv

}{

S

} H(Sv)

其中:

  • H(S) 是分割前的熵,
  • H(S_v) 是分割后每个子集的熵。

特性

  • 倾向于能产生纯子节点的属性。
  • 在 ID3 和 C4.5 等决策树算法中工作高效。
  • 略微偏向于多值属性。

实现

使用 iris 数据集计算信息增益。

Python


CODEBLOCK_305d7736

输出:

> Information Gain for each feature: [0.50576572 0.27875048 0.98425371 0.99358193]

与萼片长度和萼片宽度相比,花瓣长度和花瓣宽度是预测鸢尾花品种信息量更大的特征。

互信息用于衡量两个变量之间的依赖程度。它对于线性和非线性关系都能很好地发挥作用。

公式

> I(X;Y) = \sum_{x,y} p(x,y) \log \frac{p(x,y)}{p(x)p(y)}

其中:

  • p(x, y) 是联合概率,
  • p(x) 和 p(y) 是边缘概率。

特性

  • 可以捕捉任何形式的依赖关系,不仅仅是线性关系。
  • 在高维特征空间中表现稳定。
  • 与单纯的相关性相比,对噪声具有更强的鲁棒性。

实现

使用 mutualinforegression 实现互信息并生成合成数据。

Python


CODEBLOCK_136b0f20

输出:

> Mutual Information for each feature: [0.42283584 0.54090791]

较高的互信息值表明特征与目标变量之间存在更强的关系或依赖性。

信息增益率

信息增益率是对信息增益进行归一化处理,以减少对具有多个值的属性的偏好。

公式

> \mathrm{IGR} = \frac{IG(S, A)}{H(A)}

其中:

  • IG(S,A) 是基于属性分割获得的信息增益,
  • H(A) 是属性 A 的熵,表示它分割数据的广度。
  • IGR 是归一化值,用于避免偏向具有多个不同值的属性。

特性

  • 减少多值分割的偏差。
  • 在 C4.5 算法中用于做出平衡的决策。
  • 提高模型在未见数据上的泛化能力。

实现

计算 IGR。

Python


CODEBLOCK_56ba0b8a

输出:

> IGR: 0.11232501392736335

0.1123 的 IGR 值被认为是较低的,这意味着与其他可能的特征相比,该特征对于分割数据的信息量不大。

信息增益 vs 互信息

信息增益和互信息之间的区别:

标准

信息增益 (IG)

互信息 (MI) —

— 定义

衡量当已知某个特征时,目标变量不确定性的减少量。

衡量两个变量之间相互依赖的程度。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43611.html
点赞
0.00 平均评分 (0% 分数) - 0