CART分类回归树

原创 2015年11月20日 23:03:52

这一篇主要是CART,有几个重点的词语先写下来,重点哦:基尼指数(Gini index,跟经济学的基尼系数长这么像,八杆子打得着吗)、最小二乘回归树(least squares regression tree)
CART:classification and regression tree。分类回归树。
简单的说呢,CART就是个二叉树(广义的决策树并不一定就是二叉树,可能好几叉。。。哈哈),所以内部节点的取值就是“是”“否”的了。
直接介绍算法吧,CART的基本原理和广义的决策树是一样的,就相当于二叉树都有普通树的特征。

下面直接介绍回归树的算法:
1. 回归树的生成:基于训练数据集生成决策树,尽量大点。
2. 回归树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。
完了,,,很简单的。哈哈

下面介绍一下详细的算法,重点还是大多参考了统计学习方法的:
简单介绍一下理论:给定数据集这里写图片描述
假设已经将输入空间划分为M个单元R_1、R_2、…R_M,并且每个单元都有一个固定的输出值C_m,则回归树的模型为:
这里写图片描述

训练数据集的预测误差为:平方误差这里写图片描述
平方误差是用来球每个单元上的最优输出值
即:这里写图片描述
那么怎么选择划分的那条线呢?
选择第j个变量x_j和取得值s,定义两个区域:
这里写图片描述
那么在这里我们就寻找最优的j和s,也就是求解:
这里写图片描述
书上是这样的,但是我感觉中括号里的两个min就不要了。删掉就好。
求解的过程待会见回归树生成算法。

通常,通过以上过程建立的回归树叫做最小二乘回归树。
最小二乘回归树的生成算法:
输入:训练数据集D
输出:回归树f(x)
在训练数据集所在的输入空间中,递归的将每个区域划分为两个子区域并决定每个子区域上的输出值,构建二车决策树:
1). 选择最优划分变量j和s;
求解:
这里写图片描述

遍历变量j,对固定的j扫描s,选择是上式最小值的(j,s);
2). 用选定的(j,s)划分区域并决定相应的输出值;
这里写图片描述
这里写图片描述
3). 继续1)、2)步骤,直至满足条件;
4).将输入空间划为M个区域,R_1…….R_m,生成决策树:
这里写图片描述

接下来是什么呢?上边是回归,下边就是分类了,分类树的生成是怎么做的呢?
最开始的基尼指数就要开始登场了:
分类树是通过基尼指数来选择最优特征的,同时决定该特征的最优切分点。
基尼指数:假设有k个类,样本属于第k个类的概率为P_k, 则此概率分布的基尼指数定义为:这里写图片描述
对于给定的离散数据集D, 其基尼指数为:这里写图片描述
如果样本集合D根据特征A是否去某一个值a被分割为D_1、D_2,
即: 这里写图片描述
那么这就是在特征A的条件下D的基尼指数是:
这里写图片描述
基尼指数求出来了,那么基尼指数有什么意义呢?
基尼指数表示集合D的不确定性,基尼指数这里写图片描述 表示经过特征A分割后D的不确定性,跟条件熵是不是很相似。。。Gini(D)和熵也是很类似的。
CART的分类树生成算法:
输入: 训练数据集D,停止计算的条件。
输出: CART决策树.
根据训练数据集,从根节点开始,递归的对每一个结点进行以下操作,构建决策树。
1. 设结点的训练集为D,计算现有特征对该数据集的基尼指数,此时,对每一个特征A,对其可能取的每一个值a,根据样本点对A=a的测试是“是”还是“否”,将D分割成D_1,D_2,利用上边的式子计算A=a时的基尼指数。
2. 在所有可能的特征A以及它们所有可能的切分点a中,选择基尼指数最小的特征及其对应的切分点作为最优特征与最优切分点(基尼指数越大不确定性越大,不好,所以选小的)。依最优特征与最优切分点,从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去。
3. 对两个子结点递归的调用步骤1. 2.直至满足条件。
4. 生成CART决策树。
算法停止的条件是结点中的样本个数小于预定阈值,或样本的基尼指数小于预定阈值(样本基本属于同一类),或者没有更多特征了。

完了。。。。。这就是分类回归树的理论原理,还剩了个剪枝没记录,但是剪枝就涉及自己实现的时候用到的,等以后自己实现的时候用到了再详细解释吧。下一个是随机森林和随机蕨。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数据挖掘十大经典算法--CART: 分类与回归树

一、决策树的类型  在数据挖掘中,决策树主要有两种类型: 分类树 的输出是样本的类标。 回归树 的输出是一个实数 (例如房子的价格,病人呆在医院的时间等)。 术语分类和回归树 (CART) 包含了...

机器学习经典算法8-树回归

1.简单介绍         线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外)。当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法一个是困难一个是笨拙。此外,实际中很多问题为...

简单易学的机器学习算法——分类回归树CART

一、树回归的概念 二、

分类树和回归树的区别

分类树 以C4.5分类树为例,C4.5分类树在每次分枝时,是穷举每一个feature的每一个阈值,找到使得按照feature阈值分成的两个分枝的熵最大的阈值(熵最大的概念可理解成尽可能每个分枝的男女...

CART分类与回归树的原理与实现

CART(Classification And Regression Tree)算法采用一种二分递归分割的技术,将当前的样本集分为两个子样本集,使得生成的的每个非叶子节点都有两个分支。因此,CART算...

从回归树到GBDT

GBDT可以看做是由多棵回归树组成的,所以要理解GBDT,就要先理解回归树。回归树也是为了做预测,只是将特征空间划分成了若干个区域,在每个区域里进行预测。...
  • zqxnum1
  • zqxnum1
  • 2015年03月17日 20:28
  • 2114

[完]机器学习实战 第九章 树回归

将数据集切分成很多份易建模的数据,然后利用线性回归技术建模。如果首次切分后仍难以拟合线性模型就继续切分,在这种切分模式下,树结构和回归法相当有用。CART(分类回归树)算法,用于构建二元树并处理离散型...

最小二乘回归树生成算法

算法:\qquad 输入:训练数据集 DD; \qquad 输出:回归树 f(x)f(x) . \qquad 在训练数据集所在的输入空间中,递归地将每个区域划分为两个子区域并决定每个子区域上的输出...

Scikit-Learn与回归树

回归算法原理 CART(Classification and Regression Tree)算法是目前决策树算法中最为成熟的一类算法,应用范围也比较广泛。它既可以用于分类。 西方预测理论一...

《统计学习方法》 决策树 CART生成算法 回归树 Python实现

《统计学习方法》Cart回归树的Python实现。 应用了最小二乘回归树。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CART分类回归树
举报原因:
原因补充:

(最多只允许输入30个字)