CART(分类回归树)
1.简单介绍
线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外)。当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法一个是困难一个是笨拙。此外,实际中很多问题为非线性的,例如常见到的分段函数,不可能用全局线性模型来进行拟合。
树回归将数据集切分成多份易建模的数据,然后利用线性回归进行建模和拟合。这里介绍较为经典的树回归CART(classification and regression trees,分类回归树)算法。
2.分类回归树基本流程
构建树:
1.找到[最佳待切分特征]
2.若不能再切分,则将该节点存为[叶子节点]并返回
3.按照最佳待切分特征将数据集切分成左右子树(这里为了方便,假设大于特征值则为左,小于则归为右)
4.对左子树进行[构建树]
5.对右子树进行[构建树]
最佳待切分特征:
1.遍历特征
1.1遍历特征所有特征值
1.1.1计算按该特征值进行数据集切分的[误差]
2.选择误差最小的特征及其相应值作为最佳待切分特征并返回
基于回归树的预测:
1.判断当前回归树是否为叶子节点,如果是则[预测],如果不是则执行2
2.将测试数据相应特征上的特征值与当前回归树进行比较,如果测试数据特征值大,则判别当前回归树的左子树是否为叶子节点,如果不是叶子节点则进行[基于回归树的预测],如果是叶子节点,则[预测];反之,判别当前回归树的右子树是否为叶子节点,如果不是叶子节点则进行[基于回归树的预测],如果是叶子节点,则[预测]
3.分类回归树的实践说明
误差、叶子节点和预测三者有相关的关联关系,一种相对简单的是误差采用的是y值均方差,叶子节点相应的建立为该节点下所有样本的y值平均值,预测的时候根据判断返回该叶子节点下y值平均值即可。
在进行最佳待切分特征选取的时候,一般还有两个参数,一个是允许的误差下降值,一个是切分最小样本数。对于允许误差下降值,在实际过程中,需要在分割之后其误差减少应该至少大于该bound;对于切分最小样本数,也就是说切分后的子树中包含的样本数应该多于该bound。其实这两种策略都是为了避免过拟合。
4树剪枝
通过在最佳待切分特征选取时进行参数设定来避免过拟合,这其实是一种预剪枝的行为;而在回归树建立后,再进行剪枝,则是一种后剪枝的行为。
后剪枝的过程如下:
如果存在任一子集是一棵树,则在该子集中递归剪枝
计算当前两个叶子节点合并后的误差
计算不合并的误差
比较合并前后误差,如果合并后的误差降低,则对叶子节点进行合并
5模型树
之前讲到误差、叶子节点和预测三者具备关联关系,当建立叶子节点是基于模型的,则构建了相应的模型树。这里可以使用之前的线性回归模型,建立相应的叶子节点。这样误差计算采用的将是线性回归中的误差,而预测则是基于该叶子节点拟合其样本后的参数。
6编程实现
这里createTree负责进行树的构建;chooseBestSplit函数负责进行最佳带切特征的选取,而ops参数则是进行了两个bound的设定;prune进行了相关后剪枝。
这里regErr、regLeaf、regTreeEval是基于简单均值计算的误差、叶子节点和预测;而modelErr、modelLeaf和modelTreeEval(+linearSolve)则是基于线性回顾模型的误差、叶子节点和预测。
数据集链接:http://pan.baidu.com/share/link?shareid=3744521160&uk=973467359 密码:9ivd
CART(分类回归树)的更多相关文章
- 机器学习技法-决策树和CART分类回归树构建算法
课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.决策树(Decision Tree).口袋(Bagging),自适应增 ...
- 决策树的剪枝,分类回归树CART
决策树的剪枝 决策树为什么要剪枝?原因就是避免决策树“过拟合”样本.前面的算法生成的决策树非常的详细而庞大,每个属性都被详细地加以考虑,决策树的树叶节点所覆盖的训练样本都是“纯”的.因此用这个决策树来 ...
- 机器学习之分类回归树(python实现CART)
之前有文章介绍过决策树(ID3).简单回顾一下:ID3每次选取最佳特征来分割数据,这个最佳特征的判断原则是通过信息增益来实现的.按照某种特征切分数据后,该特征在以后切分数据集时就不再使用,因此存在切分 ...
- 连续值的CART(分类回归树)原理和实现
上一篇我们学习和实现了CART(分类回归树),不过主要是针对离散值的分类实现,下面我们来看下连续值的cart分类树如何实现 思考连续值和离散值的不同之处: 二分子树的时候不同:离散值需要求出最优的两个 ...
- 利用CART算法建立分类回归树
常见的一种决策树算法是ID3,ID3的做法是每次选择当前最佳的特征来分割数据,并按照该特征所有可能取值来切分,也就是说,如果一个特征有四种取值,那么数据将被切分成4份,一旦按某特征切分后,该特征在之后 ...
- CART决策树(分类回归树)分析及应用建模
一.CART决策树模型概述(Classification And Regression Trees) 决策树是使用类似于一棵树的结构来表示类的划分,树的构建可以看成是变量(属性)选择的过程,内部节 ...
- 分类回归树(CART)
概要 本部分介绍 CART,是一种非常重要的机器学习算法. 基本原理 CART 全称为 Classification And Regression Trees,即分类回归树.顾名思义,该算法既 ...
- 秒懂机器学习---分类回归树CART
秒懂机器学习---分类回归树CART 一.总结 一句话总结: 用决策树来模拟分类和预测,那些人还真是聪明:其实也还好吧,都精通的话想一想,混一混就好了 用决策树模拟分类和预测的过程:就是对集合进行归类 ...
- 分类-回归树模型(CART)在R语言中的实现
分类-回归树模型(CART)在R语言中的实现 CART模型 ,即Classification And Regression Trees.它和一般回归分析类似,是用来对变量进行解释和预测的工具,也是数据 ...
随机推荐
- 什么是WeakHashMap--转
原文地址:http://laravel.iteye.com/blog/2303244 Java WeakHashMap 到底Weak在哪里,它真的很弱吗?WeakHashMap 的适用场景是什么,使用 ...
- HTML5本地存储 Web Storage
Web Storage基本介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API sessionStorage 和 localStorage,二者的差异主要是数 ...
- SQLServer学习笔记系列4
一.写在前面的话 好多天没有记录sql学习笔记了,要坚持下去,坚信每一点的进步都是为在积蓄力量.今天看到一幅图,特此分享出来. 通过这幅图,我看到的是每人站在自己的角度看问题,感受是不一样的,就如同学 ...
- [SDK2.2]Windows Azure Virtual Network (5) 重启、关闭、开启VNet中Virtual Machine
<Windows Azure Platform 系列文章目录> 我们知道,Windows Azure VM的IP分为以下两种:Internal IP Address和Public VIP ...
- 我如何调优SQL Server查询
我是个懒人,我只想干尽可能少的活.当我干活的时候我不想太多.是,你没看错,这看起来很糟糕,作为一个DBA这很不合格.但在今天的文章里,我想给你展示下,当你想对特定查询创建索引设计时,你如何把你的工作和 ...
- 基于HT for Web矢量实现3D叶轮旋转
在上一篇<基于HT for Web矢量实现2D叶轮旋转>中讲述了叶轮旋转在2D上的应用,今天我们就来讲讲叶轮旋转在3D上的应用. 在3D拓扑上可以创建各种各样的图元,在HT for Web ...
- 浅谈图片蒙版效果-webkit-mask
会用PS的童鞋一定知道“蒙版”的概念,它可以在图片上实现一定的遮罩效果,当然这里我们不介绍ps里的蒙版,而是介绍利用CSS3的新属性-webkit-mask来实现网页中的图片遮罩效果. 大家对-web ...
- ::selection{}
::selectiion{}这是一个伪类选择器,这个是当我们在选择网页上某些文字时(通常是为了复制文字),文字的背景颜色和文字颜色都会发生变化(一般为背景变成蓝色,文字变成白色),这样的写法在IE9及 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码
在Web开发的时候,我们很多时候,需要引用很多CSS文件.JS文件,随着使用更多的插件或者独立样式文件,可能我们的Web界面代码会越来越臃肿,看起来也很累赘,在MVC里面提供了一个Bundle的对象, ...
- C#异步调用的方法
最经公司工作需要调用一个外部的webservice,同时要将传出的数据进行保存,以自己以前的习惯,就打算逐步操作,失败啊,完全没考虑过用户体验效果,在同事指点下,意识到使用异步调用的好处,随便将自己找 ...