基尼系数:机器学习中的核心度量指标

基尼系数是用于衡量数据集中不平等性或不纯度的指标。在机器学习中,尤其是在决策树算法里,它量化了节点中类别的混合程度。基尼指数为 0 意味着完全纯度(所有元素属于同一类别),而较高的基尼指数则表示较高的不纯度。

什么是基尼系数?

  • 范围:0 到 0.5(针对二元分类): 基尼系数的范围从 0(纯节点,只有一类,例如全是“Yes”)到 0.5(最大不纯度,两类均匀混合,例如 50% “Yes” 和 50% “No”)。在多分类问题中,最大基尼值可能更高,但仍 ≤ 1。
  • 计算速度比熵更快: 基尼仅使用概率的平方(无对数运算),这使得计算更加轻量且迅速。
  • 用于 CART 树(分类与回归树): CART 是 scikit-learn 中决策树分类器背后的算法。默认情况下,它使用基尼系数来评估分割效果。
  • 对类别不平衡敏感: 如果某一类占主导地位(例如 95% “A” 和 5% “B”),基尼系数可能不会强烈惩罚不纯度,从而导致决策树产生偏差。它可能更倾向于选择有利于多数类的分割。
  • 无对数计算: 如前所述,基尼避免了对数计算带来的计算负担。这使得速度更快,特别是在大型数据集上训练时。
  • Gini = 0 意味着纯节点: 基尼 = 0 的叶节点意味着它只包含一个类别。我们的目标是让叶节点尽可能纯净,以获得高模型精度。

数学表示

基尼系数可以通过以下方式进行数学表示:

> Gini(p) = 1 – \sum{i=1}^{n} pi^2

其中 p_i 是节点中类别 i 的概率。

分步计算

让我们举个例子,假设我们有一个包含以下内容的节点:

  • 3 个类别 A 的实例
  • 2 个类别 B 的实例

那么:

> pA = \frac{3}{5},\quad pB = \frac{2}{5}

>

> Gini = 1 – (pA^2 + pB^2)\\ = 1 – \left(\frac{9}{25} + \frac{4}{25}\right) = 1 – \frac{13}{25} \\ = \frac{12}{25} = 0.48

代码实现

1. 导入所有依赖项并加载数据集

这一步涉及安装所有必要的库并从 scikit-learn 加载鸢尾花数据集。

Python


CODEBLOCK_0719eab8

2. 数据分割与模型训练

  • 将数据集分割为 70% 的训练集和 30% 的测试集。 这有助于在一部分数据上训练模型,并在未见过的数据上进行评估。
  • Random state 确保可复现性(每次结果相同)。
  • 创建一个使用基尼不纯度来衡量节点分割的决策树分类器。现在,我们在训练数据上训练模型并设置最大树深度。

Python


CODEBLOCK_8530cf84

3. 预测与评估

  • 训练好的决策树用于预测测试集的类别标签。
  • 将包含每个测试样本的预测类别(花卉类型)。
  • 生成一个分类报告,用于对比真实标签和预测标签。

Python


CODEBLOCK_5b2985ee

输出

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250723163802366949/giniCR.webp">giniCR分类报告

4. 特征重要性分析

  • 这显示了每个特征在所有分割中减少基尼不纯度的程度。
  • 如果某个特征被频繁用于分割并能带来高纯度,其重要性得分就会更高。

Python


CODEBLOCK_6a38f9b2

输出

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250723163802353186/giniFI.webp">giniFI特征重要性分析

5. 使用基尼不纯度可视化决策树

想象一下在树中绘制不同的分割点。基尼系数通过追求低基尼分数的节点,帮助我们找到类别分离最明显的分割点。这里,使用基尼作为分割标准形成的决策树如下所示:

Python


CODEBLOCK_47be5a3a

输出

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250723163802198525/giniDT.webp">giniDT使用基尼不纯度的决策树

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