决策树笔记-CART算法

概述

CART算法的提出比IDE3和C4.5还要早,它既可以应用于回归问题,也可以应用于分类问题。

相同于IDE3和C4.5,CART算法也由以下两步组成:
1. 决策树生成
2. 决策树剪枝

CART决策树的生成

回归树的生成

回归问题中,模型的输入输出都是连续的。
假设 X Y分别为输入和输出变量,给定训练数据集:

D=(x1,y1),(x2,y2),...,(xN,yN)

回归树模型是什么样子的呢?
一个回归树对应着输入空间的一个划分,以及在划分的一个个小区域上面的输出值;输入一个样本时,将这个样本点抛到这个划分好的特征空间上面去,然后通过一层层的二分(二叉树)查找,找到这个样本点所在的小区域,然后把这个区域所对应的输出值(提前学到)输出。

用数学公式来表示一下。假设输入空间划分为 M 个区域R1,R2,R3,...,RM,并且在每个区域 Rm 上面有一个固定的输出值 cm ,于是回归模型可以为:

f(x)=m=1McmI(xRm)

其中,
I(xRm)={1if xRm0else

这就是回归决策树的模型,那么怎么学到这个模型呢?也就是说怎么获得对输入空间的划分呢?

先把公式给出再解释:

minj,sminc1xiR1(j,s)(yic1)2+minc2xiR2(j,s)(yic2)2

这就是求解回归二叉树的模型,其中, j 表示选定第j个特征(输入变量向量的第 j 个维度),s表示在这个特征上选取的分界值,将按照这个分界值,将特征空间分为 R1(j,s),R2(j,s) 两个区域:
R1(j,s)={x|x(j)s}R2(j,s)={x|x(j)>s}

1. minj,s 表示选取分界特征以及在该特征上的分界值,一旦选定了特征以及分界值,那么就选定了对输入空间的一次划分;
2. minc1 minc2 表示在两个区域里面选取一个输出值。
3. xiR1(j,s)(yic1)2 xiR2(j,s)(yic2)2 表示使用平方误差法来衡量两个区域各自的预测误差。

注意,这只是完成了一次划分,整个的算法过程应该是,遍历所有的特征(或者叫输入变量的切分变量 j ),选定一个最优的特征及其分界值,将输入空间划分为两个区域;接着,重复上述划分过程,直到满足停止条件。

最小二乘回归树生成算法

输入:训练数据集D
输出:回归树 f(x)
1.选择最优切分变量 j 以及切分点s,求解:

minj,sminc1xiR1(j,s)(yic1)2+minc2xiR2(j,s)(yic2)2

2.用选定的 (j,s) 划分区域并决定相应的输出值:
R1(j,s)={x|x(j)s}R2(j,s)={x|x(j)>s}

cm^=1NxiRm(j,s)yi,xRm,m=1,2

3.继续对两个子区域调用步骤1-2,直到满足停止条件。
4.将输入空间划分所得的 M 个区域R1,R2,...,RM,生成决策树:
f(x)=m=1Mcm^I(xRm)

分类树的生成

分类树与回归树的不同之处在于,回归树在选择特征和分界值时使用的标准是平方误差,而分类树在选择特征和分界值时使用的标准是基尼指数。

基尼指数

给定一个变量的概率分布,基尼指数用来衡量变量的不确定性,基尼指数与不确定性正相关,与熵类似。

假设有 K 个类,样本属于第k类的概率为 pk ,则概率分布的基尼指数为:

Gini(p)=k=1Kpk(1pk)=1k=1Kp2k

对于给定的样本集合 D ,其基尼指数为:
Gini(D)=1k=1K(|Ck||D|)

其中, Ck 表示 D 中属于第k类的样本子集, K 为类别的数量。

假设有样本集合D,使用特征 A 和该特征的某个取值a将样本集合分为 D1 D2 两部分:

D1={(x,y)D|A(x)=a},D2=DD1

D1 表示特征 A a的样本集合,其他的归到 D2 中。
那么集合 D 关于A(x)=a的基尼指数为:
Gini(D,Aa)=|D1||D|Gini(D1)+|D2||D|Gini(D2)

分类树生成算法

输入:训练数据集 D ,停止计算的条件
输出:分类树
1.针对所有特征的所有取值,计算其基尼系数;例如针对特征A即其取值a,计算Gini(D,Aa)
2.选择一个基尼系数最小的特征及取值组合 (A,a) 作为最优特征及分界值,将训练集分为两部分,从现节点生成两个子节点,将训练数据集按照特征分配到两个子节点。
3.对两个子节点递归调用步骤1-2,知道满足停止条件。
4.返回分类树。

CART决策树的剪枝

(待)

说明

如有错误,敬请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值