当前位置: 首页 > news >正文

【漫话机器学习系列】274.基尼指数(Gini Index)

决策树中的基尼指数(Gini Index)详解 —— 从公式理解到实际应用

在构建决策树模型时,一个核心问题是:如何选择最优的特征来进行节点划分?
这就涉及到了“划分准则”的问题。常见的准则有信息增益、信息增益率以及本文的主角:基尼指数(Gini Index)

在这篇文章中,我们将借助一张手绘风图解,深入浅出地理解基尼指数的含义、公式构成、应用场景及其在构建决策树过程中的作用。


一、什么是基尼指数?

基尼指数(Gini Index)是一种用于衡量一个数据集合“纯度”的指标,主要用于分类问题中的决策树构建,尤其是 CART(Classification and Regression Tree)算法。

通俗理解:

基尼指数越小,说明这个集合中样本类别越“集中”,即越“纯”;反之,值越大,说明类别混杂,纯度低。


二、基尼指数的数学定义

参考图中的公式:

公式如下:

G = \sum_{k=1}^{K} \hat{p}_{mk} (1 - \hat{p}_{mk})

各符号说明如下:

  • G:某个节点的基尼指数

  • K:类别的总数(比如二分类问题中 K = 2)

  • \hat{p}_{mk}:在第 m 个节点中,属于第 k 类的样本比例

举例说明:

假设我们有一个节点,其中 70% 是正类(positive),30% 是负类(negative),那么:

G = 0.7(1-0.7) + 0.3(1-0.3) = 0.21 + 0.21 = 0.42

如果节点中全部为正类,即 \hat{p}_{mk}=1,那么:

G = 1(1 - 1) = 0

也就是说,这个节点是完全纯的(只含一个类别),基尼指数为 0。


三、基尼指数的直觉理解

图中给出了简洁直观的解释:

G 的值越小,节点中的分布就越平均(即越纯)
G 的值越大,说明分布越分散(即越杂乱)

这是决策树在每一个节点要选择分裂的依据:选择使得 G 值最小的特征和分裂方式,从而得到更“纯”的子集。


四、基尼指数的应用场景

  • 在 CART 决策树中,基尼指数是默认的分裂指标。

  • 对于分类任务,尤其是二分类问题,基尼指数表现良好,计算速度快。

  • 相比信息增益(用于 ID3),它对多分类特征不太偏倚,因此广泛应用。


五、与其他指标的对比

指标定义方式偏好特性应用模型
信息增益熵的减少偏向类别多的特征ID3
增益率信息增益/特征熵对类别数较多的惩罚C4.5
基尼指数p(1-p)偏向二元分裂,计算快速CART 分类树

六、图解亮点总结

图中总结如下重点:

  • 每个节点使用基尼指数,决定最佳的划分特征;

  • 公式中每一项代表某一类别的“混乱度”;

  • 基尼指数是衡量随机方法中分类纯度的一种工具。


七、总结与建议

  • 什么时候用基尼指数?
    当你使用的是 CART 决策树时,或者在意分类速度、效率优先时。

  • 为什么选择基尼指数?
    相比熵的计算(涉及对数),Gini 指数更易实现、速度更快,且在许多实际场景下效果相当。

  • 下一步建议

    • 实现一个基于 Gini 指数的二分类决策树;

    • 用 sklearn 决策树时,设置 criterion='gini' 来启用它。


参考资料

  • Chris Albon 的手绘教程;

  • 《统计学习方法》第九章;

  • sklearn 官方文档。


如果你觉得这篇文章对你有帮助,欢迎点赞 + 收藏 + 关注!后续我会继续发布更多图解机器学习的内容!

相关文章:

  • Oracle常用函数
  • LVS 负载均衡集群应用实战
  • 数据库系统概论(九)SQL连接查询语言超详细讲解(附带例题,表格详细讲解对比带你一步步掌握)
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(28):ばかり
  • SQL 的 DECODE 函数
  • MacOS Docker 启动 RustDesk Server OSS
  • 多版本Node.js共存管理工具NVM详细使用教程
  • postgresql 常用参数配置
  • 第七部分:第二节 - 在 Node.js 中连接和操作 MySQL:厨房与仓库的沟通渠道
  • Postgresql 数据库体系架构
  • 从逆流监测到智慧用电:ADL200N-CT系列单相导轨表赋能家庭绿色能源
  • 储能电站:风光储一体化能源中心数字孪生
  • TiDB迁移实战:解决“Region is unavailable”报错与隐式类型转换引发的索引失效
  • PHP序列化数据格式详解
  • 多模态大语言模型arxiv论文略读(九十)
  • 【Python 基础与实战】从基础语法到项目应用的全流程解析
  • 编程技能:字符串函数10,strchr
  • php 根据另一个数组中 create_time 的时间顺序,对原始数组进行排序。
  • 计算机操作系统(十二)详细讲解调计算机操作系统调度算法与多处理机调度
  • 使用 Elasticsearch 和 Red Hat OpenShift AI 提升工作流程效率
  • 做纯净系统的网站/关键词包括哪些内容
  • 免费制作自己的网站长/外贸平台排行榜前十名
  • 怎样查看网站制作公司/网络营销策划书应该怎么写
  • 企业做网站建设/排名优化公司哪家效果好
  • 只做汽车的网站/直接进网站的浏览器
  • 水磨沟区做网站的/国际新闻最新