决策树的基尼系数计算过程
决策树的基尼系数计算过程
1、基尼指数的计算
在介绍具体的计算之前,先从一个例子入手吧。
先看看下面这个数据,我们需要通过前三列的特征来推断出最后一列是yes,no
1、数据
Chest Pain | Good Blood Circulation | Blocked Arteries | Heart Disease |
---|---|---|---|
No | No | No | No |
Yes | Yes | Yes | Yes |
Yes | Yes | No | No |
Yes | No | ??? | Yes |
etc… | etc… | etc… | etc… |
2、统计
Chest Pain
true
Heart Disease
- Yes:105
- No:39
false
Heart Disease
- Yes:34
- No:125
Good Blood Circulation
true
Heart Disease
- Yes:37
- No:127
false
Heart Disease
- Yes:100
- No:33
Blocked Arteries
true
Heart Disease
- Yes:92
- No:31
false
Heart Disease
- Yes:45
- No:129
在统计数据的时候,若遇见缺失值,最简单的办法就是先跳过这个缺失值
从统计的数据可以看出,在某一特征的条件下,无论是true或者false都有患有Heart Disease的人,同时也都有健康的人。且这两个分布是不同,有的true中患有Heart Disease的多一些,有的false中患有Heart Disease的多一些,则就要引出另一个概念—纯度。刚刚将的那种情况其实就是不纯的,那么我们接下来的操作就是对其不断的提纯。
接下来引出基尼指数的概念:基尼指数遵循最小的准则,计算得到的基尼指数越小,则越纯。接下来则以该特征作为决策树的一个分支。但若当前节点的基尼指数小于待划分节点的基尼指数时,则不需要划分。
3、基尼指数的基本公式
Single_gini = 1−(aa+b)2−(ba+b)21-(\dfrac{a}{a+b})^2-(\dfrac{b}{a+b})^21−(a+ba)2−(a+bb)2
Gini_Index = Single_gini_true * a+ba+b+c+d\dfrac{a+b}{a+b+c+d}a+b+c+da+b + Single_gini_false * c+da+b+c+d\dfrac{c+d}{a+b+c+d}a+b+c+dc+d
4、上述例子的计算过程
第一次分支
Chest Pain
Gini_index = 0.364
Good Blood
Gini_indx = 0.360
Blocked Arteries
Gini_index = 0.381
有上面这些结果可知,我们第一次分叉应该选择Good Blood这个特征,因为前面我们提到,在同一情况下一个特征的基尼指数越小,其纯度也就越高,也就越具有代表性,分类的效果也就越好。上面三个例子相比较,我们应该选择Good Blood这个作为决策树的一个分支。
第二次分支
我们第一次是以Good Blood为分支的那么,假设选定该分支的true,那么其基尼指数,用上面的公式可以得到大概是0.35(false分支上的计算也是同理,这里我们只进行true分支上的基尼指数的计算)
进行分支后我们对剩余的两个特征的值进行统计
Chest Pain
true
Heart Disease
- Yes:13
- No:98
false
Heart Disease
- Yes:24
- No:29
Blocked Arteries
true
Heart Disease
- Yes:24
- No:25
false
Heart Disease
- Yes:13
- No:102
并在此基础上,我们进行第二次分支
接下来来计算Chest Pain和Blocked Arteries这两类特征在Good Blood这类特征的分支下的基尼指数
Chest Pain
Gini_index = 0.3
Blocked Arteries
Gini_index = 0.29
因为0.29<0.3<0.35,故我们选择Blocked Arteries作为 Good Blood的true分支下的一个分支节点
第三次分支
假设选定该分支的true,那么其基尼指数,用上面的公式可以得到大概是0.5
进行分支后我们对剩余的特征的值进行统计
Chest Pain
true
Heart Disease
- Yes:17
- No:3
false
Heart Disease
- Yes:7
- No:22
并在此基础上,我们进行第三次分支
接下来来计算Chest Pain这类特征在Blocked Arteries这类特征的分支下的基尼指数
Chest Pain
Gini_index = 0.33
因为0.33<0.5,故我们选择Chest Pain作为Blocked Arteries的true分支下的一个分支节点
但假如选定的分支是false,那么其基尼指数计算得到大概是0.2
Chest Pain
true
Heart Disease
- Yes:7
- No:26
false
Heart Disease
- Yes:6
- No:76
接下来来计算Chest Pain这类特征在Blocked Arteries这类特征的分支下的基尼指数
Chest Pain
Gini_index = 0.29
因为0.29>0.2故该节点不需要分支,因为分支的目的是提纯,而提纯,则是选择使基尼指数变小的那个特征,而0.29>0.2基尼系数上升,没有达到提纯的目的,故不需要分支。
学习视频:https://www.bilibili.com/video/BV17J411C7zZ?p=59
决策树的基尼系数计算过程相关推荐
- 基尼系数 java_决策树的基尼系数计算过程
决策树的基尼系数计算过程 1.基尼指数的计算 在介绍具体的计算之前,先从一个例子入手吧. 先看看下面这个数据,我们需要通过前三列的特征来推断出最后一列是yes,no 1.数据 Chest Pain G ...
- 动画版RNN、LSTM和GRU计算过程
公众号关注 "视学算法" 设为"星标",第一时间知晓最新干货~ 编辑 | Python遇见机器学习 地址 | https://zhuanlan.zhihu.co ...
- python计算小数点后有几位_数学提高小数除法竖式计算过程
除数是小数时:先把除数变成整数,除数扩大到原来的多少倍,被除数也要扩大到原来的多少倍(即小数点也向右移动几位,位数不够的用0补),然后按照除数是整数的除法进行计算.计算小数除法,除到被除数的末尾仍有余 ...
- 交叉熵损失(Cross Entropy Loss)计算过程
交叉熵损失(Cross Entropy Loss)计算过程_藏知阁-CSDN博客_交叉熵计算公式
- 衡量计算机的平均无故障时间6,平均无故障时间MTBF测试及计算过程
<平均无故障时间MTBF测试及计算过程>由会员分享,可在线阅读,更多相关<平均无故障时间MTBF测试及计算过程(4页珍藏版)>请在人人文库网上搜索. 1.一.寿命估算模型常温下 ...
- 【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★
文章目录 一.下推自动机计算过程 二.上下文无关文法 CFG 转为下推自动机 PDA 流程 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 ...
- 【计算理论】图灵机 ( 非确定性图灵机 | 非确定性图灵机指令分析 | 计算过程 | 非确定性指令出现多个分支 | 非确定性图灵机转为计算树 | 计算树 )
文章目录 一.非确定性图灵机 二.非确定性图灵机 指令 三.非确定性图灵机 计算示例 初始状态 四.计算步骤 1 五.计算步骤 2 六.计算步骤 3 ( 出现非确定性分支 ) 七.计算步骤 3-1 ( ...
- 【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )
文章目录 一.非确定性自动机 计算过程 ( 计算树 ) 二.判定 非确定性自动机 接受的字符串 三.自动机 设计要求 四.非确定性有限自动机设计 五.非确定性有限自动机 与 确定性 有限自动机 比较 ...
- 举例说明信息熵、互信息的计算过程
举例说明信息熵.互信息的计算过程_tangxianyu的博客-CSDN博客_互信息计算
最新文章
- 使用malloc创建头结点的坑
- 水题(water)(非详细解答)
- python selenium 处理弹窗_python+selenium 抓取弹出对话框信息
- python自动化办公实例展示_python自动化办公?学这些就够用了
- MyBatisPlus_AR篇_入门试炼_06
- Web前端工作笔记012---IE8兼容_WebSocket
- Spring-tx-TransactionAnnotationParser接口
- oracle用分号拼接函数,ORACLE以逗号分隔连接列的值 函数名:wmsys.wm_concat
- pandas.read_csv() 详解与如何合适的读取行序号与列名
- 楼板计算塑形弹性_阶梯教室板模板支架工程方案计算书(仅供参考)
- 《解读量化投资:西蒙斯用公式打败市场的故事》内容简介及PDF下载
- 软件工程实验报告一模板
- 大卫科波菲尔优秀读后感范文4000字
- Kite Compositor制作下雨打雷特效详细教学
- 手机图片转换成文字怎么办
- 【qq机器人】定时发送消息大全
- vue 项目打印时去掉页眉页脚
- Tungsten Fabric如何实现路由的快速收敛?收敛速度有多快?
- java8 Predicate
- HTML虚拟键盘带声音特效