白话机器学习算法(十九)CART算法

来源:互联网 发布:extjs object转json 编辑:程序博客网 时间:2024/05/21 06:16

http://blog.csdn.net/wangxin110000/article/details/23759341

CART (classification and regression tree)分类与回归树算法

前面说的决策树就是分类树,分类树是一种对空间的划分方法,将输入空间(特征空间)按照属性的取值范围划分为若干个不相交的区域;

这里的cart是一种二叉树

还是三个步骤

1)属性选择

2)生成树(划分)

3)剪枝

先概述下:

这里的三个步骤与前面说的两种分类树不同,对于第一点,ID3与C4.5并没有强调将每个属性的范围划分为两类,每个属性有几个离散的取值范围,那么就有几个子节点,在CART中,执行的是递归的两类划分策略,当属性的取值范围超过两类的时候,以其中的一个取值作为中点,大于小于该值的各分一类,对于离散无法比较大小的取值,采取是否的策略;

因而在CART中可以很方便的处理属性为连续取值的情况,但是相比于ID3其除了需要解决选取哪个属性作为决策节点的问题,还要解决在给定属性的情况下,选取该属性的哪个值作为划分中点;

同时在ID3与C4.5中树的一层是一个属性,但是在CART中每次向下生长都会寻找所有属性与取值中的最佳切分点,所以可能出现不同层次都是同一个属性的划分;虽然CART是二分的方法,但是其不同层次的划分属性可以相同,具体取哪个属性取决于需要划分的集合;

在剪枝方面:

CART采取的是交叉验证的方式,其使用验证数据来剪枝,使得树在正确率与复杂度方面有所权衡;

基尼指数:

基尼指数是个类似熵的东西,公式如下:


这是一个可以度量集合中纯度的公式,比如集合中{1,1,1,1,2,2,3, 3, 3, 3}集合中有三类,每类的概率分别为0.4,0.2,0.4

则Gini(p)=1-(0.16+0.04+0.16)=0.64;Gini指数在0-1之间;

当集合为{1,1,1,1,1,1}的时候,该集合的Gini指数为0,纯度最大;即基尼指数越小,纯度越高;愈大不确定性越大,跟熵类似;


当Gini(D,A)越小说明,该划分使得划分以后纯度升高,即有效的将不同种类从一个集合中划分开;在CART中就要寻找这样的A(属性)以及对应的划分中心值;

我们依照Gini(D,A)不断的将样本集合进行递归的划分,直到集合中样本小于某个值,或是Gini(D,A)小于某个阈值;

对于每个属性,我们通过Gini(D,A)求出相应的属性划分值,递归的生成子树;

以上说的是关于分类树,下面说说回归树

回归是输入x,给出f(x);

在CART中采用的是最小二乘回归的方法,在线性回归中,我们假定输出是输入的线性函数,通过最小二乘来求线性函数的系数;

但是在CART中我们不做任何假设,我们只是将输入空间进行递归的划分,使得划分以后两个输出空间各自的方差之和最小;通过这样的目标函数,我们决定以哪个属性,以及在哪个取值处进行划分;划分以后的空间输出值,即当有一个新的输入变量落入这个空间时,我们取这个空间的平均输出作为新落入变量的预测值;

所以本质上,回归树也是对输入空间的划分;如果当两个输入相近,但是输出却相距很远,决策树会自动的再次将两个输入分在两个空间中;


http://www.cnblogs.com/happyblog/archive/2011/09/30/2196901.html

推荐一篇博客,讲cart很好;

CART的剪枝是很复杂的过程,未完待续



0 0
原创粉丝点击