决策树的基尼系数计算过程

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、统计

  1. Chest Pain

    1. true

      Heart Disease

      1. Yes:105
      2. No:39
    2. false

      Heart Disease

      1. Yes:34
      2. No:125
  2. Good Blood Circulation

    1. true

      Heart Disease

      1. Yes:37
      2. No:127
    2. false

      Heart Disease

      1. Yes:100
      2. No:33
  3. Blocked Arteries

    1. true

      Heart Disease

      1. Yes:92
      2. No:31
    2. false

      Heart Disease

      1. Yes:45
      2. 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、上述例子的计算过程

第一次分支

  1. Chest Pain

    Gini_index = 0.364

  2. Good Blood

    Gini_indx = 0.360

  3. Blocked Arteries

    Gini_index = 0.381

有上面这些结果可知,我们第一次分叉应该选择Good Blood这个特征,因为前面我们提到,在同一情况下一个特征的基尼指数越小,其纯度也就越高,也就越具有代表性,分类的效果也就越好。上面三个例子相比较,我们应该选择Good Blood这个作为决策树的一个分支。

第二次分支

我们第一次是以Good Blood为分支的那么,假设选定该分支的true,那么其基尼指数,用上面的公式可以得到大概是0.35(false分支上的计算也是同理,这里我们只进行true分支上的基尼指数的计算)

进行分支后我们对剩余的两个特征的值进行统计

  1. Chest Pain

    1. true

      Heart Disease

      1. Yes:13
      2. No:98
    2. false

      Heart Disease

      1. Yes:24
      2. No:29
  2. Blocked Arteries

    1. true

      Heart Disease

      1. Yes:24
      2. No:25
    2. false

      Heart Disease

      1. Yes:13
      2. No:102

并在此基础上,我们进行第二次分支

接下来来计算Chest Pain和Blocked Arteries这两类特征在Good Blood这类特征的分支下的基尼指数

  1. Chest Pain

    Gini_index = 0.3

  2. Blocked Arteries

    Gini_index = 0.29

因为0.29<0.3<0.35,故我们选择Blocked Arteries作为 Good Blood的true分支下的一个分支节点

第三次分支

假设选定该分支的true,那么其基尼指数,用上面的公式可以得到大概是0.5

进行分支后我们对剩余的特征的值进行统计

  1. Chest Pain

    1. true

      Heart Disease

      1. Yes:17
      2. No:3
    2. false

      Heart Disease

      1. Yes:7
      2. No:22

并在此基础上,我们进行第三次分支

接下来来计算Chest Pain这类特征在Blocked Arteries这类特征的分支下的基尼指数

  1. Chest Pain

    Gini_index = 0.33

因为0.33<0.5,故我们选择Chest Pain作为Blocked Arteries的true分支下的一个分支节点

但假如选定的分支是false,那么其基尼指数计算得到大概是0.2

  1. Chest Pain

    1. true

      Heart Disease

      1. Yes:7
      2. No:26
    2. false

      Heart Disease

      1. Yes:6
      2. No:76

接下来来计算Chest Pain这类特征在Blocked Arteries这类特征的分支下的基尼指数

  1. Chest Pain

    Gini_index = 0.29

因为0.29>0.2故该节点不需要分支,因为分支的目的是提纯,而提纯,则是选择使基尼指数变小的那个特征,而0.29>0.2基尼系数上升,没有达到提纯的目的,故不需要分支。

学习视频:https://www.bilibili.com/video/BV17J411C7zZ?p=59

决策树的基尼系数计算过程相关推荐

  1. 基尼系数 java_决策树的基尼系数计算过程

    决策树的基尼系数计算过程 1.基尼指数的计算 在介绍具体的计算之前,先从一个例子入手吧. 先看看下面这个数据,我们需要通过前三列的特征来推断出最后一列是yes,no 1.数据 Chest Pain G ...

  2. 动画版RNN、LSTM和GRU计算过程

    公众号关注 "视学算法" 设为"星标",第一时间知晓最新干货~ 编辑 | Python遇见机器学习 地址 | https://zhuanlan.zhihu.co ...

  3. python计算小数点后有几位_数学提高小数除法竖式计算过程

    除数是小数时:先把除数变成整数,除数扩大到原来的多少倍,被除数也要扩大到原来的多少倍(即小数点也向右移动几位,位数不够的用0补),然后按照除数是整数的除法进行计算.计算小数除法,除到被除数的末尾仍有余 ...

  4. 交叉熵损失(Cross Entropy Loss)计算过程

    交叉熵损失(Cross Entropy Loss)计算过程_藏知阁-CSDN博客_交叉熵计算公式

  5. 衡量计算机的平均无故障时间6,平均无故障时间MTBF测试及计算过程

    <平均无故障时间MTBF测试及计算过程>由会员分享,可在线阅读,更多相关<平均无故障时间MTBF测试及计算过程(4页珍藏版)>请在人人文库网上搜索. 1.一.寿命估算模型常温下 ...

  6. 【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★

    文章目录 一.下推自动机计算过程 二.上下文无关文法 CFG 转为下推自动机 PDA 流程 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 ...

  7. 【计算理论】图灵机 ( 非确定性图灵机 | 非确定性图灵机指令分析 | 计算过程 | 非确定性指令出现多个分支 | 非确定性图灵机转为计算树 | 计算树 )

    文章目录 一.非确定性图灵机 二.非确定性图灵机 指令 三.非确定性图灵机 计算示例 初始状态 四.计算步骤 1 五.计算步骤 2 六.计算步骤 3 ( 出现非确定性分支 ) 七.计算步骤 3-1 ( ...

  8. 【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )

    文章目录 一.非确定性自动机 计算过程 ( 计算树 ) 二.判定 非确定性自动机 接受的字符串 三.自动机 设计要求 四.非确定性有限自动机设计 五.非确定性有限自动机 与 确定性 有限自动机 比较 ...

  9. 举例说明信息熵、互信息的计算过程

    举例说明信息熵.互信息的计算过程_tangxianyu的博客-CSDN博客_互信息计算

最新文章

  1. 使用malloc创建头结点的坑
  2. 水题(water)(非详细解答)
  3. python selenium 处理弹窗_python+selenium 抓取弹出对话框信息
  4. python自动化办公实例展示_python自动化办公?学这些就够用了
  5. MyBatisPlus_AR篇_入门试炼_06
  6. Web前端工作笔记012---IE8兼容_WebSocket
  7. Spring-tx-TransactionAnnotationParser接口
  8. oracle用分号拼接函数,ORACLE以逗号分隔连接列的值   函数名:wmsys.wm_concat
  9. pandas.read_csv() 详解与如何合适的读取行序号与列名
  10. 楼板计算塑形弹性_阶梯教室板模板支架工程方案计算书(仅供参考)
  11. 《解读量化投资:西蒙斯用公式打败市场的故事》内容简介及PDF下载
  12. 软件工程实验报告一模板
  13. 大卫科波菲尔优秀读后感范文4000字
  14. Kite Compositor制作下雨打雷特效详细教学
  15. 手机图片转换成文字怎么办
  16. 【qq机器人】定时发送消息大全
  17. vue 项目打印时去掉页眉页脚
  18. Tungsten Fabric如何实现路由的快速收敛?收敛速度有多快?
  19. java8 Predicate
  20. HTML虚拟键盘带声音特效

热门文章

  1. jquery 点击元素以外任意地方隐藏该元素的方法
  2. 冰箱选得好,带娃没烦恼——高知宝妈冰箱选购经验分享
  3. 本地文件上传centos服务器
  4. mysql新建数据库字符集选择
  5. 神机百炼1.15-双指针/滑动窗口
  6. 直播学习---基础流程知识点
  7. 怎样让百度收录你的网站
  8. c语言输出成绩表格制作模板,《C语言程序设计》课程设计汇本汇本报告模板(样例).doc...
  9. 2022QS世界大学排名公布!
  10. XnView v1.99.5