机器学习方法:决策树(二):CART算法
来源:互联网 发布:电脑虚拟位置软件 编辑:程序博客网 时间:2024/05/20 22:40
该算法由Brieman, Friedman, Olshen和Stone 在1984年提出
1.CART即分类回归树。如果目标变量是离散变量,则是classfication Tree,如果目标是连续变量,则是Regression Tree。
2.CART树是二叉树。 二叉树有什么优点?不像多叉树那样形成过多的数据碎片
3.树的生长及变量处理
(1)对于离散变量X(x1…xn),分别取X变量各值的不同组合,将其分到树的左枝或右枝,并对不同组合而产生的树,进行评判,找出最佳组合。如变量年纪,其值有“少年”、“中年”、“老年”,则分别生产{少年,中年}和{老年},{上年、老年}和{中年},{中年,老年}和{少年},这三种组合,最后评判对目标区分最佳的组合。
(2)对于连续变量X(x1…xn),首先将值排序,分别取其两相邻值的平均值点作为分隔点,将树一分成左枝和右枝,不断扫描,进而判断最佳分割点。
4. 变量和最佳切分点选择原则
树的生长,总的原则是,让枝比树更纯,而度量原则是根据不纯对指标来衡量,对于分类树,则用GINI指标、Twoing指标、Order Twoing等;如果是回归树则用,最小平方残差、最小绝对残差等指标衡量
(1)GINI指标(Gini越小,数据越纯)——针对离散目标
(2)最小平方残差——针对连续目标
其思想是,让组内方差最小,对应组间方差最大,这样两组,也即树分裂的左枝和右枝差异化最大。
(3)通过以上不纯度指标,分别计算每个变量的各种切分/组合情况,找出该变量的最佳值组合/切分点;再比较各个变量的最佳值组合/切分点,最终找出最佳变量和该变量的最佳值组合/切分点
5. 目标值的估计
(1)分类树:最终叶子中概率最大的类
(2)回归树:最终叶子的均值或者中位数
6. 树的剪枝
(1)前剪枝( Pre-Pruning)
通过提前停止树的构造来对决策树进行剪枝,一旦停止该节点下树的继续构造,该节点就成了叶节点。一般树的前剪枝原则有:
a.节点达到完全纯度
b.树的深度达到用户所要的深度
c.节点中样本个数少于用户指定个数
d.不纯度指标下降的最大幅度小于用户指定的幅度
(2)后剪枝( Post-Pruning)
首先构造完整的决策树,允许决策树过度拟合训练数据,然后对那些置信度不够的结点的子树用叶结点来替代。CART 采用Cost-Complexity Pruning(代价-复杂度剪枝法),代价(cost) :主要指样本错分率;复杂度(complexity) :主要指树t的叶节点数,(Breiman…)定义树t的代价复杂度(cost-complexity):
注:参数α:用于衡量代价与复杂度之间关系,表示剪枝后树的复杂度降低程度与代价间的关系,如何定义α?
对t来说,剪掉它的子树s,以t中最优叶节点代替,得到新树new_t。 new_t可能会比t对于训练数据分错M个,但是new_t包含的叶节点数,却比t少:
CCP剪枝步骤:
第一步:
–
–
–
第二步:
–
–
–
- 机器学习方法:决策树(二):CART算法
- 机器学习方法:决策树(一):ID3算法
- (决策树)CART算法
- 【机器学习】分类算法:决策树(ID3、C4.5、CART)
- 机器学习—CART决策树算法详解
- 决策树(三)cart算法
- 《统计学习方法》 决策树 CART生成算法 分类树 Python实现
- 《统计学习方法》 决策树 CART生成算法 回归树 Python实现
- 机器学习方法:决策树(三):C4.5算法
- 机器学习方法:决策树(四):随机森林算法
- 《机器学习实战》学习笔记(二)之决策树(上)决策树的生成及修剪,ID3,C4.5CART算法
- 《机器学习实战》之决策树ID3、C4.5、CART算法【二】
- 机器学习算法(二):决策树算法
- 统计学习方法(二)决策树
- 机器学习算法之决策树(二)
- 机器学习(二):决策树算法
- 机器学习算法-决策树(二)
- 【机器学习】决策树(下)——CART算法及剪枝处理
- Android studio---如何导入V4包的源码(查看API)?
- ThreadLocal的用法
- uCOS-II任务延时函数
- iOS 按钮文字图片任意布局,随意定制
- js和java中正则表达式的易混淆点
- 机器学习方法:决策树(二):CART算法
- 初探JQuery
- xml基础理论与实操
- python导入urllib遇到的问题
- iOS 时间校准解决方案
- 在horizon(dashboard)上如何配置manila的UI
- CoreJAVA笔记
- 阿里云栖学习网址
- 安卓数据保存之——内部存储