欢迎使用CSDN-markdown编辑器

机器学习之决策树CART

概念

    分类和回归树(CART)模型有Breiman等人在1984年提出,是应用广泛的决策树学习方法,CART同样由特征选择、树的生成及树的剪枝组成,既可以用于分类也可以用于回归.

    CART是在给定输入随机变量 X 条件下输出随机变量Y的条件概率分布的学习方法. CART假设决策树是二叉树, 内部节点特征取值为”是”和”否”, 即这样的决策树等价于递归地二分每一个特征, 将输入空间划分为有限个单元, 并在这些单元上确定预测的概率分布, 也就是在输入给定的条件下输出的条件概率分布.

CART算法分为两个部分:
     (1) 决策树的生成: 基于训练数据集生成决策树, 生成的决策树要尽量大;
     (2) 决策树剪枝: 用验证数据集对已生成的输进行剪枝并选择最优子树, 这是用损失函数最小作为剪枝的标准.

CART生成

    决策树的生成就是递归地构建二叉树的过程. 对回归树用平方误差最小化准则, 对分类树用基尼指数(亦可以用信息增益)最小化准则, 进行特征选择, 生成二叉树.

1. 回归树的生成

    假设 X Y分别为输入和输出变量, 且 Y 是连续变量, 给定训练数据集

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

考虑如何生成回归树.
     一个回归树对应着输入空间的一个划分及在划分的单元上的输出值. 假设已将输入空间划分为 M 个单元R1,,RM, 并且在每个单元 Rm 上有一个固定的输出值 cm , 即模型的输出, 于是回归树的模型可以表示为

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

    当输入空间的划分确定时, 可以用平方误差 xiRm(yif(xi))2 来表示回归树对训练数据的预测误差, 用平方误差最小的准则求解每个单元上的最优输出值. 显然, 要使的平方误差最小, 那么每个单元 Rm 上的最优值 c^m Rm 上的所有输入实例 xi 对应的输出 yi 的均值, 即
c^m=ave(yi|xiRm)

    问题是怎样对输入空间进行划分. 这里采用启发式的方法, 选择第 j 个变量x(j)和它的值 s , 作为切分变量和切分点, 并定义两个区域:
R1(j,s)={x|x(j)s}R2(j,s)={x|x(j)>s}

然后最小化
minj,sminc1xiR1(j,s)(yic1)2minc2xiR2(j,s)(yic2)2

对固定输入变量 j 可以找到最优的切分点s.
c^1=ave(yi|xiR1(j,s))c^2=ave(yi|xiR2(j,s))

    遍历所有变量, 找到最优的切分变量 j , 构成一个对(j,s), 即找到最优的分类特征及其切分点. 依此将输入空间划分为两个区域. 接着, 对每个区域重复上述划分过程, 直到满足停止条件为止. 这样就得到了一颗回归树. 这样的回归树通常称为最小二乘回归树. 其算法如下:
     最先二乘回归树算法
    输入:训练数据集 D ;
    输出:回归树f(x).
    在训练数据集所在的输入空间中, 递归地将每个区域划分为两个子区域并决定每个子区域上的输出值, 构建二叉树:
    (1)选择最优切分变量 j 与切分点s, 求解
minj,sminc1xiR1(j,s)(yic1)2+minc2xiR2(j,s)(yic2)2

遍历变量 j , 对固定的切分变量j扫描分点 s , 选择使得上式达到最小值的对(j,s).
    (2)用选定的对 (j,s) 划分区域并决定相应的输出值:
R1(j,s)={x|x(j)s},R2(j,s)={x|x(j)>s}

c^m=1NmxiRm(j,s)yi,   xRm,  m=1,2

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值