决策树(二):回归树和模型树
下面介绍的回归树和另一篇文章介绍的分类树,都属于决策树范畴。分类树的模型是每个非叶子节点都是一个分类特征,按照该分类特征的不同取值,将数据集分为多少个子集;并且分类树模型我们要找的是测试数据集的最终分类结果,而这个结果是标称型数据。而在回归树的概念中,每个非叶子节点也是需要根据某个特征分出子树,但是这个特征的取值是连续的,就不可能像分类树那样依据多少个取值分为多少个子树,所以在回归树模型中,一般都是二叉树,每个非叶子节点的分类特征都取一个值,小于这个值的数据分到左子树,大于这个值的分到右子树,等于这个值的我感觉是两边都可。
换一种说法,二叉树内部取“是”和“否”的分法,一个节点的条件时x<=a(a是我们计算出来的合适的分隔数据点),其中小于等于a的我们取“是”,也就是放到左子树,大于a的,我们取“否”,放到右子树。
- 回归树的生成
我们知道,不管是在回归树的生成过程中,还是生成之后,所有的叶子节点都是一堆数据集,而我们的目标就是对叶子节点上的数据集进行误差最小化分析,不断划分,直到叶子节点的误差小于一定的阈值。所以在每个叶子节点上,我们用平方误差
,来表示回归树训练过程中的预测误差,其中f(xi)是期望最优值,我们取所有yi的平均值,即 。下来就是需要取,最优的分割特征及其分割值,我们采用启发式方法(我理解的启发式方法,通俗的说,就是每次拿一个特征,然后取此特征按照一定步长改变该特征的值从小到大去试,然后遍历完所有特征后,取到误差最小的特征及其分割值)。下面先给出公式,然后对这个公式做解释:
上面的两个公式是对数据集进行预划分,R1和R2分别是划分后的两个数据集,j是选择第j个变量,也就是我们熟悉的第j个特征,s是划分标准,x(j)是每个样本中第j个变量的取值。上面已经将数据预划分成了两个数据集,下面就是要计算这两个数据集的误差:
上式中的中括号里面的表示,在父节点划分标准为第j个变量,划分点为s的情况下,取两个子集小误差,里面是两个最小值的和,分别表示取一个合适的c1和c2,使子集的平方和最小,而这个c1和c2的取值分别是子集yi的平均数。而外层的循环,就是取合适的变量j,以及其合适的划分标准s使划分后的子集误差最小。
所以以上过程是个不断迭代的过程,不断取j和其对应的s值,等取完所有的j和s后,得到误差最小的那个j和s,作为此次的划分依据。
- 模型树的生成
其实模型树和回归树生成过程差不多,只不过是叶子结点的损失计算方式不同。从上面的回归树的生成过程可知,构建过程中每个叶子结点的预测值是yi的平均值,然后再用取平方误差的方式。但是模型树构建过程中,不用平均值作为预测值,而是用节点的样本拟合一条直线 ,然后计算 作为预测值,放到回归树的生成过程中,f(xi)就是所有yi的平均值。
具体的直线拟合的公式,可以参考我的另一篇文章《回归》中拟合直线的方式。这里只给出计算公式:
是直线的拟合参数,X是样本数据,y是样本数据对应的结果。
- 决策树的剪枝
其实回归树和模型树的剪枝过程和分类树的剪枝过程类似,其损失函数都可以写成以下的表达式:
,和分类树不同的是预测误差的计算方式不同,即C(T)的计算方式不同。 ,这里f(xi)是预测值或者平均数。
不过有的书上损失的函数的损失函数的计算方法没有考虑数的复杂程度,也就是没有α|T|项,这个应该是不同的书上有不同的方法,得知道有这么种方法。
决策树(二):回归树和模型树相关推荐
- 经典算法详解--CART分类决策树、回归树和模型树
Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Reg ...
- 机器学习十大算法之-CART分类决策树、回归树和模型树
转载(http://blog.163.com/zhoulili1987619@126/blog/static/35308201201542731455261/) Classification And ...
- 树模型之回归树,模型树,树剪枝
在前面决策树的介绍中,我们使用ID3算法来构建决策树:这里我们使用CART算法来构建回归树和模型树.ID3算法是每次选取当前最佳的特征来分割数据,并按照该特征的所有可能取值来区分.比如,如果一个特征有 ...
- 机器学习理论与实战(九)回归树和模型树
前一节的回归是一种全局回归模型,它设定了一个模型,不管是线性还是非线性的模型,然后拟合数据得到参数,现实中会有些数据很复杂,肉眼几乎看不出符合那种模型,因此构建全局的模型就有点不合适.这节介绍的树回归 ...
- 模型树------构建模型树
上一节我们讨论了回归树,今天我们来讨论模型树,回归树的叶子节点是数值,模型树的叶子节点是线性函数,这里需要将上一节的函数稍加修改即可,上一节中的叶子节点生成函数.错误率函数需要进行稍加修改. def ...
- CART分类决策树、回归树和模型树算法详解及Python实现
机器学习经典算法详解及Python实现–CART分类决策树.回归树和模型树 摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用 ...
- 算法模型---树相关---决策树
决策树的特点 决策树的用途 决策树的适用范围 数据类型 特征可以连续和离散 因变量分类时是离散,回归时是连续 算法 支持模型 树结构 特征选择 连续值处理 缺失值处理 剪枝 ID3 分类 多叉树 信息 ...
- CART回归树模型树 生成 剪枝 in Python
现实中,数据集中经常包含一些复杂的相互关系,使得输入数据和目标变量之间呈现非线性关系.对这些复杂的关系建模,一种可行的方式是使用树来对预测值进行分段,包括分段常数或者分段直线,即通过树结构对数据进行切 ...
- Python实现Stacking回归模型(随机森林回归、极端随机树回归、AdaBoost回归、GBDT回归、决策树回归)项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 Stacking通常考虑的是异质弱学习器(不同的学习算法被组合在 ...
最新文章
- 夫妻北漂10年后返乡,程序员丈夫花8万元将土屋改成别墅:边学边做
- 4698: Sdoi2008 Sandy的卡片
- 微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
- VS code配置c环境
- input按钮中的onclick事件
- Antd Table树形展示,分页后有时候数据渲染不出的问题
- win10没有windows无线服务器,win10系统电脑没windows无线服务的解决方法
- Spring中的自动装配和Autowired
- 【转】人脸识别:AI产品经理需要了解的CV通识
- python爬取某音乐歌词,将内容保存制作词云图
- Unity -Demo 之 ✨ 语音识别-讯飞SDK使用过程
- erp是企业内部最重要的使用程序,它对日常运作至关重要
- (转)给想立志入行网络或已经初入行的朋友的建议
- 怎样完成MES系统实施?
- 习题3.6 阅读下面程序,分析其执行过程,写出输出结果
- Jenkins - 插件安装失败处理方法
- 服务器如何查看 网站访问记录,如何查看服务器远程的访问记录
- 在C语言中为什么c1出现错误,我在用C语言编程时,编译后总出现Error:spawning C1.exe的错误,看不懂,是什么意思啊??快快快,谢谢!...
- boox android 4.4,纷极阅读app
- 最新车载以太网解决方案