Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >决策树:什么是基尼系数(“杂质 增益 指数 系数”辨析)「建议收藏」

决策树:什么是基尼系数(“杂质 增益 指数 系数”辨析)「建议收藏」

作者头像
全栈程序员站长
发布于 2022-11-08 03:12:24
发布于 2022-11-08 03:12:24
4.2K0
举报

决策树:什么是基尼系数

在我翻译学习这篇Random Forests for Complete Beginners的时候,对基尼系数和它相关的一些中文表达充满了疑问,查了一些资料以后,完成了这篇文章。其中基尼杂质系数的计算和解释参考了A Simple Explanation of Gini Impurity

如果你查看scikit-learnDecisionTreeClassifier的文档,你会看到这样的参数:

RandomForestClassifier文档里也谈到了gini。那么两者都提到并作为默认标准的基尼系数是什么?

名词辨析

你在不同的地方往往能看到关于基尼的不同名词,我查询了一大堆文献,发现它们的使用遵循以下规律:

  • 基尼杂质系数/基尼不纯系数(Gini Impurity):等效于我们通常说的基尼系数,在上面提到的分类器文档里的就是它,计算方法在后面将提到。
  • 基尼增益系数/基尼系数增益(Gini Gain):表征某个划分对基尼系数的增益,使用原基尼杂质系数减去按样本占比加权的各个分支的基尼杂质系数来计算,计算方法在后面将提到。
  • 基尼指数(Gini index):这是一个尴尬的问题,因为有人把它等价于gini impurity,但也有人把它用作gini coefficient。需要结合上下文来判断。
  • 基尼系数(Gini coefficient):表征在二分类问题中,正负两种标签的分配合理程度。当G=0,说明正负标签的预测概率均匀分配,模型相当于是随机排序。这个名词也在经济学中也有使用,本质是相同的,是用来表征一个地区财富的分配的合理程度。当G=0,说明财富均匀分配。

基尼杂质系数(Gini Impurity)的理解和计算

训练决策树包括将当前数据分成两个分支。假设我们有以下数据点:

现在,我们的分支里有5个蓝点和5个绿点。 如果我们在x=2处进行划分:

这很明显是个完美划分,因为它把数据集分成了两个分支:

  • 左分支全是蓝点
  • 右分支全是绿点

但如果我们在x=1.5处进行划分呢?

这个划分把数据集分成了两个分支:

  • 左分支,4个蓝点
  • 右分支,1个蓝点+5个绿点

很明显,这种划分更糟糕,但我们如何量化呢?

解决方法就是基尼杂质系数。

示例1:整个数据集

我们来计算整个数据集的基尼杂质系数。

如果随机选择一个数据点并随机给它分类,我们错误分类数据点的概率是多少?

我们的选择

实际的分类

可能性

对错

25%

25%

25%

25%

我们只在上面的两个事件中对其进行了错误的分类。因此,我们的错误概率是25% + 25% = 50%,也即基尼杂质系数是0.5.

公式 G = ∑ i = 1 C p ( i ) ∗ [ 1 − p ( i ) ] G = \sum_{i=1}^C {p(i)*[1-p(i)]} G=i=1∑C​p(i)∗[1−p(i)]

  • C: 类别数
  • p(i):一个样本被归类进第i类的概率

上面这个例子计算式即为: G = p ( 1 ) ∗ [ 1 − p ( 1 ) ] + p ( 2 ) ∗ [ 1 − p ( 2 ) ] = 0.5 ∗ [ 1 − 0.5 ] + 0.5 ∗ [ 1 − 0.5 ] = 0.5 \begin{aligned} G&=p(1)*[1-p(1)]+p(2)*[1-p(2)]\\ &=0.5*[1-0.5]+0.5*[1-0.5]\\ &=0.5 \end{aligned} G​=p(1)∗[1−p(1)]+p(2)∗[1−p(2)]=0.5∗[1−0.5]+0.5∗[1−0.5]=0.5​

示例2:完美划分

完美划分后数据集的基尼杂质系数是多少?

左分支的基尼杂质系数: G l e f t = 1 ∗ ( 1 − 1 ) + 0 ∗ ( 1 − 0 ) = 0 G_{left}=1∗(1−1)+0∗(1−0)=0 Gleft​=1∗(1−1)+0∗(1−0)=0

右分支的基尼杂质系数: G r i g h t = 0 ∗ ( 1 − 0 ) + 1 ∗ ( 1 − 1 ) = 0 G_{right}=0∗(1−0)+1∗(1−1)=0 Gright​=0∗(1−0)+1∗(1−1)=0

它们没有杂质,所以基尼杂质系数自然为0!此时就是最优情况。

示例3:不完美划分

那不完美划分呢?

易知左分支: G l e f t = 0 G_{left}=0 Gleft​=0

右分支: G r i g h t = 1 6 ∗ ( 1 − 1 6 ) + 5 6 ∗ ( 1 − 5 6 ) = 5 18 = 0.278 \begin{aligned} G_{right}&=\frac{1}{6}*(1-\frac{1}{6})+\frac{5}{6}*(1-\frac{5}{6})\\ &=\frac{5}{18}\\ &=0.278 \end{aligned} Gright​​=61​∗(1−61​)+65​∗(1−65​)=185​=0.278​

划分的选择

终于到了回答之前提出问题的时候了:我们如何量化划分的效果?

对这个划分:

我们已经计算了基尼系数杂质:

  • 划分前(整个数据集):0.5
  • 左分支:0
  • 右分支:0.278

我们将基于每个分支中的样本占比来进行加权来以确定划分的基尼增益。由于左分支有4个样本,右分支有6个样本,我们得到: ( 0.4 ∗ 0 ) + ( 0.6 ∗ 0.278 ) = 0.167 (0.4∗0)+(0.6∗0.278)=0.167 (0.4∗0)+(0.6∗0.278)=0.167

因此,我们用这个划分“降低”的杂质量是 0.5 − 0.167 = 0.333 0.5−0.167=0.333 0.5−0.167=0.333

这就被称为基尼增益系数。越好的划分基尼增益系数越大,比如此处0.5>0.333.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184168.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月9日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【机器学习】决策树算法
人工智能领域在当今可谓炙手可热,在人工智能与机器学习领域,决策树是一种简单直观却又功能强大的分类与回归方法。它的思想是通过构建一棵树状模型来进行决策或数据分类,其结构主要是以二叉树的形式为主。决策树是一种常用的机器学习算法,用于分类和回归任务。它通过学习简单的决策规则推断出目标值。
摆烂小白敲代码
2025/05/23
1230
【机器学习】决策树算法
机器学习入门 12-4 基尼系数
前几个小节介绍了以信息熵为指标对节点中的数据进行划分,从而构建决策树。作为指标的不只有信息熵还有本小节要介绍的基尼系数(Gini coefficient)。
触摸壹缕阳光
2021/01/18
8.5K0
1、决策树理论知识详解与sklearn实践
首先看决策树的相关理论,在我看过的一些资料中,李航老师的《统计机器学习》这部分写得最全面,因此下面的内容主要参考了这本书,但顺序我做了一些更改,改成了决策树理论建立的顺序,以便读者能够更容易看懂。
zstar
2022/06/13
4400
1、决策树理论知识详解与sklearn实践
决策树模型参数释义「建议收藏」
转自https://blog.csdn.net/qq_16000815/article/details/80954039
全栈程序员站长
2022/11/10
5890
【技术分享】决策树分类
所谓决策树,顾名思义,是一种树,一种依托于策略抉择而建立起来的树。机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。 树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,从根节点到叶节点所经历的路径对应一个判定测试序列。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。
腾讯云TI平台
2019/12/06
1.4K0
决策树 基尼系数算法
小小程序员
2023/12/07
4940
Numpy 实现基尼指数算法的决策树
小小程序员
2023/12/08
3711
Numpy 实现基尼指数算法的决策树
【机器学习-监督学习】决策树
  本文开始,我们将介绍机器学习中与神经网络并行的另一大类模型——决策树(decision tree)模型及其变种。决策树模型是非参数化模型。决策树模型简称树模型,顾名思义,它采用了和树类似的结构。图1展示了现实中的树与计算机中的树的异同。现实中的树是根在下、从下向上生长的,计算机中的树却是根在上、从上向下生长的。但是,两者都有根、枝干的分叉与叶子。在计算机的树中,最上面的节点称为根节点,最下面没有分叉的节点称为叶节点。其中,根节点和内部节点都有一些边指向其他节点,这些被指向的节点就称为它的子节点。叶节点是树的最末端,没有指向其他节点的边。而除了根节点之外,每个内部节点和叶节点都有唯一的节点指向它,该节点称为其父节点。
Francek Chen
2025/01/22
1520
【机器学习-监督学习】决策树
西瓜书4-决策树
从西瓜书和统计学习方法中学习了决策树的相关知识,同时在网上查找了树的知识点,最重要的是二叉树和树3种的遍历方式
皮大大
2021/03/02
1.1K0
决策树(Decision Tree,DT)
Quinlan在1986年提出的ID3算法、1993年提出的C4.5算法 Breiman等人在1984年提出的CART算法
Michael阿明
2020/07/13
1.7K0
决策树(Decision Tree,DT)
常用决策树算法
再使用某一特征A对数据及逆行分类后,其不确定度会减少(已经进行过一定程度的分类),此时的信息熵也会减小。假设特征A 将数据分为
Steve Wang
2023/10/12
2940
分类和回归-决策树算法(ID3、C4.5和CART)
决策树(Decision Tree)是⼀种树形结构,每个节点表示⼀个属性上的判断,每个分⽀代表⼀个判断结果的输出,最后每个叶节点代表⼀种分类结果,本质是⼀颗由多个判断节点组成的树。
唔仄lo咚锵
2022/10/31
1K0
分类和回归-决策树算法(ID3、C4.5和CART)
sklearn调包侠之决策树算法
决策树原理 之前我们详细讲解过决策树的原理,详细内容可以参考该链接(https://www.jianshu.com/p/0dd283516cbe)。 改进算法 但使用信息增益作为特征选择指标(ID3算法)容易造成过拟合。举一个简单例子,每个类别如果都有一个唯一ID,通过ID这个特征就可以简单分类,但这并不是有效的。为了解决这个问题,有了C4.5和CART算法,其区别如下所示: ID3 是信息增益划分 C4.5 是信息增益率划分 CART 做分类工作时,采用 GINI 值作为节点分裂的依据 实战——泰坦尼克号
罗罗攀
2018/07/03
6180
【机器学习】--决策树和随机森林
决策树是一种非线性有监督分类模型,随机森林是一种非线性有监督分类模型。线性分类模型比如说逻辑回归,可能会存在不可分问题,但是非线性分类就不存在。 二、具体原理
LhWorld哥陪你聊算法
2018/09/13
9860
【机器学习】--决策树和随机森林
从零开始在Python中实现决策树算法
原文地址:https://machinelearningmastery.com/implement-decision-tree-algorithm-scratch-python/
Steve Wang
2018/02/02
3.4K1
从零开始在Python中实现决策树算法
AI - 决策树模型
决策树的思想来源可以追溯到古希腊时期,当时的哲学家们就已经开始使用类似于决策树的图形来表示逻辑推理过程。然而,决策树作为一种科学的决策分析工具,其发展主要发生在20世纪。
@小森
2024/03/24
1860
AI - 决策树模型
机器学习算法决策树
决策树是一种常见的分类模型,在金融风控、医疗辅助诊断等诸多行业具有较为广泛的应用。决策树的核心思想是基于树结构对数据进行划分,这种思想是人类处理问题时的本能方法。例如在婚恋市场中,女方通常会先询问男方是否有房产,如果有房产再了解是否有车产,如果有车产再看是否有稳定工作……最后得出是否要深入了解的判断。
@小森
2024/03/15
1310
机器学习算法决策树
决策树2: 特征选择中的相关概念
熵是热力学中的概念,表示混乱程度。熵越大,热力系统中粒子无规则的运动越剧烈;熵越小,粒子越趋近于静止的状态。
木东居士
2019/12/23
1.8K0
《大话机器学习算法》决策树—看这一篇就够了
这是一个新的系列,主要讲机器学习的相关算法,希望想入门的你能耐心看完《写在前面的话》
小一不二三
2020/04/18
7170
使用 scikit-learn 玩转机器学习——决策树
决策树算法是计算机科学家罗斯.昆兰(下图大佬,没错,是图灵,因为我没找到昆兰大佬的照片)在学术休假时提出的。期间,他到斯坦福大学访问,选修了图灵的助手 D.Michie 开设的一门研究生课程。课上布置的一个大作业就是用程序写出一个完备正确的规则,以判定国际象棋的残局是否会在2步后被将死,昆兰在这个任务中得到灵感,之后又将该部分工作整理出来于1979年发表,并命名为 ID3 算法。之后很多其他的决策树算法也相继问世,比如ID4、ID5、C4.5、和 CART(Classification and Regression Tree) 等。scikit-learn 中决策树的实现是基于 CART。
小小詹同学
2018/12/29
8650
相关推荐
【机器学习】决策树算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档