白话机器学习算法(十九)CART算法
2015-02-13 10:18
162 查看
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的剪枝是很复杂的过程,未完待续
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的剪枝是很复杂的过程,未完待续
相关文章推荐
- 白话机器学习算法(十九)CART算法
- 白话机器学习算法(七)LDA
- 白话机器学习算法(一)分层聚类
- 白话机器学习算法(十七)熵,条件熵
- 无公式无代码白话机器学习算法之决策树
- 白话空间统计十九:热点分析(上)
- 白话机器学习算法(八)MDS
- 白话机器学习算法(二)KNN
- 白话机器学习算法(十八)决策树
- 白话机器学习算法(十八)决策树
- 白话机器学习算法(三)基于密度的聚类 DBSCAN
- 白话机器学习算法(二十)梯度下降算法
- 白话机器学习算法(九)朴素贝叶斯
- 白话机器学习算法(四)K-means
- 白话机器学习算法(二十一)logistic回归
- 白话机器学习算法(五)自组织映射SOM
- 白话机器学习算法(十五)文档与图片的特征提取(学习笔记)
- 白话机器学习算法(六) PCA
- 白话机器学习算法(十四)数据降维
- 白话机器学习算法(七)LDA