CART决策树

本文深入解析CART算法,包括其采用的二分递归分割技术,适用于连续型和离散型变量的特点,以及如何通过基尼指数进行决策树构建。同时,文章详细介绍了CART分类树和回归树的工作原理。

CART简介

CART算法采用二分递归分割的技术将当前样本集分为两个子样本集,使得生成的每个非叶子节点都有两个分支。非叶子节点的特征取值为True和False,左分支取值为True,右分支取值为False,因此CART算法生成的决策树是结构简洁的二叉树。CART可以处理连续型变量和离散型变量,利用训练数据递归的划分特征空间进行建树,用验证数据进行剪枝。

  • 如果待预测分类是离散型数据,则CART生成分类决策树。
  • 如果待预测分类是连续性数据,则CART生成回归决策树。

CART分类树

描述不确定性可以使用熵也可以使用基尼指数。同熵,基尼指数越大,样本集合的不确定性越大。
假设有 K K K个类,样本点属于第 k k k个类的概率为 p k p_k pk,则概率分布的基尼指数定义为
G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2 Gini(p)=k=1Kpk(1pk)=1k=1Kpk2
根据基尼指数定义,可以得到样本集合 D D D的基尼指数,其中 C k C_k Ck表示数据集 D D D中属于第 k k k类的样本子集。
G i n i ( D ) = = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)==1-\sum_{k=1}^K\left(\frac{|C_k|}{|D|}\right)^2 Gini(D)==1k=1K(DCk)2
如果数据集 D D D根据特征 A A A在某一取值 a a a上进行分割,得到 D 1 , D 2 D1,D2 D1,D2两部分后,那么在特征 A A A下集合 D D D的基尼系数如下所示。
G i n i ( D , A ) = ∣ D 1 ∣ D G i n i ( D 1 ) + ∣ D 2 ∣ D G i n i ( D 2 ) Gini(D,A)=\frac{|D1|}{D}Gini(D1)+\frac{|D2|}{D}Gini(D2) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)
其中基尼系数 G i n i ( D ) Gini(D) Gini(D)表示集合 D D D的不确定性,基尼系数 G i n i ( D , A ) Gini(D,A) Gini(D,A)表示 A = a A=a A=a分割后集合 D D D的不确定性。
依据信息增益,决策树构建应该是选择最大的信息增益,首先选择最优分割点,即
m a x a ∈ A ( G i n i ( D ) − G i n i ( D , A ) ) \underset{a\in A}{max} (Gini(D)-Gini(D,A)) aAmax(Gini(D)Gini(D,A))
再然后,选择最优分割属性
m a x A ∈ A t t r i b u t e ( m a x a ∈ A ( G i n i ( D ) − G i n i ( D , A ) ) ) \underset{A\in Attribute}{max}(\underset{a\in A}{max} (Gini(D)-Gini(D,A))) AAttributemax(aAmax(Gini(D)Gini(D,A)))
由于针对当前步计算时Gini(D)为固定值,所以以上可以改写为
m i n a ∈ A   G i n i ( D , A ) m i n A ∈ A t t r i b u t e ( m i n a ∈ A   G i n i ( D , A ) ) \underset{a\in A}{min} \ Gini(D,A)\\ \underset{A\in Attribute}{min}(\underset{a\in A}{min} \ Gini(D,A)) aAmin Gini(D,A)AAttributemin(aAmin Gini(D,A))
实例参考:https://blog.youkuaiyun.com/ExtraMan/article/details/41744003

CART回归树

CART回归树预测回归连续型数据,假设 X X X Y Y Y分别是输入和输出变量,并且 Y Y Y是连续变量。即
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x n , y n ) } D = \{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\} D={(x1,y1),(x2,y2),,(xn,yn)}

  • 在训练数据集所在的输入空间中,递归的将每个区域划分为两个子区域并决定每个子区域上的输出值,构建二叉决策树。
  • 选择最优切分变量 j j j(属性)与切分点 s s s(值):遍历变量 j j j,对规定的切分变量 j j j扫描切分点 s s s,选择使下式得到最小值时的 ( j , s ) (j,s) (j,s)对。其中 R R R是被划分的输入空间, c c c是空间 R R R对应的固定输出值。
    在这里插入图片描述
    对于 G i n i ( D , A ) Gini(D,A) Gini(D,A)当分布较均匀时(或数据稳定时),值会小,类比于上式的方差(方差也是描述数据的稳定性)
  • 用选定的 ( j , s ) (j,s) (j,s)对,划分区域并决定相应的输出值
    在这里插入图片描述
  • 继续对两个子区域调用上述步骤,将输入空间划分为 M M M(为树的叶子节点数)个区域 R 1 , R 2 , ⋯   , R M R_1,R_2,\cdots,R_M R1,R2,,RM,生成决策树, I I I返回0或1。(某个输入只能对应到一个叶子节点,这个地方的理解可能有问题)
    在这里插入图片描述
    实例参考:
    1.https://www.cnblogs.com/limingqi/p/12421960.html
    2.https://blog.youkuaiyun.com/huahuaxiaoshao/article/details/86183738
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值