决策树CART算法原理详解

article/2025/10/31 0:31:25

大家好,今天用一个简单的例子来给大家介绍一下决策树中的CART算法。

CART分类树

CART分类树适用于预测结果为离散型数据的情况下,主要是计算每一组特征的Gini系数增益来确定决策树划分的优先规则,主要是采用一种二分方法,当一列特征有K个类别,第k个类别概率为pk时,其计算Gini系数系数的公式为:

                                                    

对于样本D,如果根据特征A的某个值a,把D分成D1和D2两部分,则在特征A的条件下,Gini系数计算公式为:

                                                

公式大家应该都不能理解,下面我们看一个例子,如图

                                           

在上述图中,属性有3个,分别是有房情况,婚姻状况和年收入,其中有房情况和婚姻状况是离散的取值,而年收入是连续的取值。拖欠贷款者属于分类的结果。

首先对数据集非类标号属性{是否有房,婚姻状况,年收入}分别计算它们的Gini系数增益,取Gini系数增益值最大的属性作为决策树的根节点属性。根节点的Gini系数。

首先,我们先求需要预测标签的Gini系数

                                           

Gini(是否拖欠贷款)=1−(3/10)^2−(7/10)^2=0.42

我们开始对是否有房这一列特征求Gini系数

                                                             

Gini(左子节点)=1−(0/3)^2−(3/3)^2=0

Gini(右子节点)=1−(3/7)^2−(4/7)^2=0.4898

Δ{是否有房}=Gini(是否拖欠贷款) - 特征概率*Gini系数= 0.42−7/10×0.4898−3/10×0=0.077

而对于婚姻状况属性来说,它的取值有3种,而我们要进行二分法,所以共有三种情况,按照每种属性值分裂后Gini指标计算如下:

1.当分组为{离异或已婚} | {单身}时

                                                             

 

Δ{婚姻状况}=0.42−4/10×0.5−6/10×[1−(1/6^)2−(5/6)^2]=0.053

2.当分组为{离异或单身} | {已婚}时

                                                              

Δ{婚姻状况}=0.42−4/10×0−6/10×[1−(3/6)^2−(3/6)^2]=0.12

3.当分组为{单身或已婚} | {离异}时

                                                             

Δ{婚姻状况}=0.42−2/10×0.5−8/10×[1−(2/8)^2−(6/8)^2]=0.02

CART回归树

上图第三列特征为连续型回归值,对此一一二分分类求Gini系数可能有些麻烦,所以我们加一步,去求它每一次分裂值两边的方差,然后再根据方差去决定它的最优二分位置,再去计算Gnin系数以及Gini系数增益

Gain_σ计算公式如下:

Gain_σA(S)=  σ(S1) + σ(S2)      注:σ(S1)和σ(S2)为二分后两边数据的方差

1. 根据第1个属性值划分为<=125和>125两部分:

<=125的有:125, 100, 70, 120, 95, 60, 85, 75, 90    均值为91.111
>125的有:220    均值为220

σ(S1) = 61.554

σ(S2) = 0

Gain_σ(S) = σ(S1) + σ(S2) = 61.554

 

2. 根据第2个属性值划分为<=100和>100两部分:

<=100的有:100, 70, 95, 60, 85, 75, 90    均值为82.143

>100的有:125,120,220    均值为155

σ(S1) = 35.254

σ(S2) = 79.687

Gain_σ(S) = σ(S1) + σ(S2) = 114.941

 

3. 根据第3个属性值划分为<=70和>70两部分:

Gain_σ(S) = σ(S1) + σ(S2) =129.085

 

4. 根据第4个属性值划分为<=120和>120两部分:

Gain_σ(S) = σ(S1) + σ(S2) =117.144

 

5. 根据第5个属性值划分为<=95和>95两部分:

Gain_σ(S) = σ(S1) + σ(S2) =122.347

 

6. 根据第6个属性值划分为<=60和>60两部分:

Gain_σ(S) = σ(S1) + σ(S2) =128.798

 

7. 根据第7个属性值划分为<=220和>220两部分:

Gain_σ(S) = σ(S1) + σ(S2) =136.894

 

8. 根据第8个属性值划分为<=85和>85两部分:

Gain_σ(S) = σ(S1) + σ(S2) =126.656

 

9. 根据第9个属性值划分为<=75和>75两部分:

Gain_σ(S) = σ(S1) + σ(S2) =125.568

 

根据第10个属性值划分为<=90和>90两部分:

Gain_σ(S) = σ(S1) + σ(S2) =125.511

通过计算 Gain_σ 可知最优二分点为第一种情况,即125

对其求Gini系数增益

Gini(S1)= 1 - [(6/9)^2+(3/9)^2] = 0.667

Gini(S2)= 1 - [(1/1)^2+(0/1)^2] = 0

Δ{年收入} = 0.42 - 9/10*0.667 - 0 =  -0.1803

到此计算完毕,通过上面的一系列计算,我们可知最优划分特征(即Gini增益最大)为婚姻状况分组为{离异或单身} | {已婚}时为最优划分列

 

 

 

 

 

 

 

 

 

 

 

 

                    


http://chatgpt.dhexx.cn/article/rCRdHTVe.shtml

相关文章

决策树—ID3、C4.5、CART

目录 一、决策树模型与学习 1、决策树模型 2、决策树学习 二、特征选择 1、信息增益 2、信息增益率 三、决策树的生成 1、ID3算法 2、C4.5算法 3、CART算法 四、决策树停止分裂的条件 五、连续值和损失值处理 决策树&#xff08;decision tree&#xff09;是一…

CART决策树----基尼指数划分

文章目录 CART决策树----基尼指数划分一.决策树算法的构建二.划分选择——基尼指数三.剪枝处理1.预剪枝2.后剪枝 四.算法代码 CART决策树----基尼指数划分 一.决策树算法的构建 一般的&#xff0c;一棵决策树包含一个根节点&#xff0c;若干个内部结点和若干个叶结点&#xff…

决策树之CART 算法(回归树,分类树)

CART 算法&#xff0c;英文全称叫做 Classification And Regression Tree&#xff0c;中文叫做分类回归树。 ID3 和 C4.5 算法可以生成二叉树或多叉树&#xff0c;而 CART 只支持二叉树。 同时 CART 决策树比较特殊&#xff0c;既可以作分类树&#xff0c;又可以作回归树。 …

决策树之CART(分类回归树)详解

决策树之CART&#xff08;分类回归树&#xff09;详解 主要内容 CART分类回归树简介CART分类回归树分裂属性的选择CART分类回归树的剪枝 1、CART分类回归树简介   CART分类回归树是一种典型的二叉决策树&#xff0c;可以做分类或者回归。如果待预测结果是离散型数据&#…

CART模型

(一)简介 1.CART(classification and regression tree)是应用广泛的决策树学习方法,既可以用于分类也可以用于回归; 2.CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并…

免费前端网站页面模板

分享几个好的前端的免费模板的网站链接&#xff1a; 免费HTML5链接 网站展示&#xff1a; 网站模板链接2 模板网站3 网站展示&#xff1a; 精品插件以及模板 展示如下&#xff1a;

简洁实用的前端模板

好用的前端模板&#xff1a; 给兄弟萌推荐一个好用的前后端分离里面用到的前端的模板项目&#xff0c;使用Vue2.xElementUI写的。是一个非常可以值得借鉴的后台管理系统的前端模板。需要的同学可以下载之后&#xff0c;在此基础上修改&#xff0c;然后用到自己的项目中。 git…

web前端基础——背景图片

作用&#xff1a;设置背景图片大小 语法&#xff1a;background-size: 宽度 高度 取值&#xff1a; 取值场景数字px简单方便&#xff0c;常用百分比相对于当前盒子自身的宽高百分比contain包含&#xff0c;将背景图片等比例缩放&#xff0c;直到不会超出盒子的最大范围cover…

html+css+js实现的前端模板

代码功能 实现一个为用户提供能够快速制作主流表情包的网站。提供丰富的模板和在线自定义图片功能。可以对图片添加文字、水印和图片等功能。丰富的动画效果搭配颜值的前端模板&#xff0c;可以用来学习学习。 话不多说&#xff0c;上图片 有需要的可以去下载。 https://do…

前端案例:飞机大战( js+dom 操作,代码完整,附图片素材)

目录 一、案例效果 二、实现思路 三、完整代码详细注释 四、涉及要点 五、案例素材 一、案例效果 二、实现思路 创建游戏背景板&#xff1b;创建我方战机&#xff0c;鼠标进入游戏面板后其随鼠标轨迹运动&#xff1b; onmousemove创建子弹&#xff0c;让子弹周期性的在战…

博客前端模板

文章目录 序言效果展示菜单栏实现内容布局底部代码 序言 一直后端开发写接口&#xff0c;时间久了&#xff0c;把前端知识忘得一干二净了。最近公司项目不是很忙&#xff0c;想写一个博客练练手。模仿别人博客用bootstrap写了一个博客模板记录下。 效果展示 首页大屏效果&am…

前端设计类网站汇总

设计前端类网站汇总 一、素材类 1、图片 其实国内对图片版权保护这块的意识不是很够&#xff0c;在免费的素材库和收费素材库都能找到同一张图片&#xff0c;但作者署名却都不一样。所以小编现在基本不用国内这些图库网&#xff0c;跟大家推荐几个免费又没有版权纠纷的图库网站…

前端的你平时都在哪找免费的可商业用的图片素材?

周末好&#xff01;有段时间没有更新了&#xff0c;最近遇到找素材的苦恼&#xff0c;所以总结了一篇文章。前端中少不了与素材打交道&#xff0c;UI设计就更用说了&#xff0c;但能白嫖就白嫖&#xff0c;嘿嘿&#xff01;&#xff01;&#xff01;下面推荐一下有关能免费的可…

三个漂亮的网页登录页面源码及素材——可用于前端初学者练习HTMLCSS

注&#xff1a;这三个登录页面涉及到的图片素材可自行寻找&#xff0c;字体图标素材可以在阿里字体图标库获取&#xff08;https://www.iconfont.cn/home/index?spma313x.7781069.1998910419.2&#xff09;&#xff0c;如需原版素材可联系作者QQ&#xff08;3416252112&#x…

前端素材库网站集合——网站集合

UI矢量图库 1.摄图网 https://699pic.com/ https://699pic.com/tupian/tubiao.html?from215 图片素材图库 1.图库 https://picsum.photos/ 随机获取图片&#xff1a;&#xff08;每次刷新都可以获取一个新的图片&#xff09; http://picsum.photos/360/460?random1<d…

分享三个免费的前端模板网站

1、模板之家 网页模板,网站模板,DIVCSS模板,企业网站模板下载 http://www.cssmoban.com/ 2、站长之家 HTML5模板 HTML5模板免费下载 https://sc.chinaz.com/tag_moban/html5.html 3、jQuery之家 自由分享jQuery、html5、css3的插件库 http://www.htmleaf.com/

前端好用的素材网站分享

前端设计推荐的一些网站&#xff09; 1.[站酷](https://www.zcool.com.cn/)2.[ColorPalette](https://arco.design/palette/list)3.[unDraw](https://undraw.co/illustrations)4.[OUCH](https://icons8.cn/illustrations/style--pale)&#xff08;应该是叫这个吧&#xff09;5.…

前端常用素材网站整理

最近整理了网页收藏夹&#xff0c;将平时遇到与前端相关的素材网站归置归置 注意&#xff1a;有的下载模版需要充值 PPChart 让图表更简单 echarts图表案例 很全 啥图都有 http://www.ppchart.com/#/ ———————————————————————————————————…

Redis可视化管理工具推荐

AnotherRedisDesktopManager 码云地址&#xff1a;https://gitee.com/qishibo/AnotherRedisDesktopManager github地址&#xff1a;https://github.com/qishibo/AnotherRedisDesktopManager/ 很好用。推荐一下。

Redis 管理工具 RedisInsight

Redis 安装好并运行一段时间后&#xff0c;如何清晰的看到 Redis 占了多大内存&#xff0c;有多少个 KEY&#xff0c;所占的网络如何&#xff0c;这个在 RedisInsight 下就是一目了然了&#xff0c;特别方便。 下载也特别简单&#xff0c;到此网站下载你想要的版本就行。 ps&a…