树回归

一.背景

  传统的线性回归算法用于拟合所有的数据,当数据量非常的大,特征之间的关联非常的复杂的时候,这个方法就不太现实。这个时候就可以采用对数据进行切片的方式,然后在对切片后的局部的数据进行线性回归,如果首次切片之后的数据还是不符合线性的要求,那么就继续执行切片。在这个过程中树结构和回归算法是非常有用的。而cart算法又是一种常用的树回归算法。

二.概念

  树回归算法总的来说,就是找到一个最优的特征,然后根据该特征的最优的特征值进行二元划分子树,如果值大于给定特征值就走左子树,否则就走右子树。通过不断的迭代这个过程就能创建一棵回归树或者分类树。二者区别只在于输入的数据是连续型还是离散型,以及采用的选择最优的特征和特征值的准则。

三.python实现

1.获得输入数据

时间: 2024-10-11 16:48:22

树回归的相关文章

学习日志---树回归(回归树,模型树)

CART算法的树回归: 返回的每个节点最后是一个最终确定的平均值. #coding:utf-8 import numpy as np # 加载文件数据 def loadDataSet(fileName):      #general function to parse tab -delimited floats     dataMat = []                #assume last column is target value     fr = open(fileName)  

机器学习day14 机器学习实战树回归之CART与模型树

这几天完成了树回归的相关学习,这一部分内容挺多,收获也挺多,刚刚终于完成了全部内容,非常开心. 树回归这一章涉及了CART,CART树称作(classify and regression tree) 分类与回归树,既可以用于分类,也可以用于回归.这正是前面决策树没有说到的内容,在这里补充一下.正好也总结一下我们学的3种决策树. ID3:用信息增益来选择特性进行分类,只能处理分类问题.缺点是往往偏向于特性种类多的特性进行分解,比如特性A有2种选择,特性B有3种选择,混乱度差不多的情况下,ID3会偏

机器学习实战之树回归

一,引言 尽管线性回归包含了一些强大的方法,但这些方法创建的模型需要拟合所有的样本数据.当数据拥有众多特征并且特征之间的关系比较复杂时,构建全局线性模型就会非常困难.并且,在实际生活中很多问题都是非线性的,很难通过全局线性模型来拟合所有数据. 解决上述非线性数据的拟合问题的一个可行的方法是,将数据集切分成很多份容易建模的数据,然后再利用线性回归方法来对切分后的数据子集分别建模,如果切分后仍难以拟合线性模型就继续切分.这样,就可以比较好的拟合全局数据. 二,CART算法 CART算法,即分类回归树

Machine Learning in Action -- 树回归

前面介绍线性回归,但实际中,用线性回归去拟合整个数据集是不太现实的,现实中的数据往往不是全局线性的 当然前面也介绍了局部加权线性回归,这种方法有些局限 这里介绍另外一种思路,树回归 基本思路,用决策树将数据集划分成若干个子集,然后再子集上再用线性回归进行拟合 决策树是种贪心算法,最简单典型的决策树算法是ID3 ID3,每次都选取最佳特征来进行划分,并且按照特征的取值来决定划分的个数,比如性别,就划分为男,女 在决定最佳特征时,用香农熵作为指标,表示当前的划分是否会让数据更加有序 ID3的局限是,

深入学习高级非线性回归算法 --- 树回归系列算法

前言 前文讨论的回归算法都是全局且针对线性问题的回归,即使是其中的局部加权线性回归法,也有其弊端(具体请参考前文:) 采用全局模型会导致模型非常的臃肿,因为需要计算所有的样本点,而且现实生活中很多样本都有大量的特征信息. 另一方面,实际生活中更多的问题都是非线性问题. 针对这些问题,有了树回归系列算法. 回归树 在先前决策树 (链接) 的学习中,构建树是采用的 ID3 算法.在回归领域,该算法就有个问题,就是派生子树是按照所有可能值来进行派生. 因此 ID3 算法无法处理连续性数据. 故可使用二

机器学习——树回归

线性回归创建模型需要拟合所有的样本点(局部加权线性回归除外).当数据拥有众多特征并且特征之间关系十分复杂的时候,构建全局模型的想法就显得太难了,也略显笨拙.而且,实际生活中很多问题都是非线性的,不可能使用全局限性模型来拟合任何数据. 一种可行的方法是将数据集切分成很多份易建模的数据,然后再利用线性回归技术来建模.如果首次切分之后仍然难以拟合线性模型就继续切分. 决策树是一种贪心算法,它要在给定时间内做出最佳选择,但是并不关心能否达到全局最优. CART(classification and re

第九章:树回归

模型树——就是回归树的分段常数预测修改为线性回归 对于非线性回归有较好的预测效果

说完了树回归,再简单的提下模型树,因为树回归每个节点是一些特征和特征值,选取的原则是根据特征方差最小.如果把叶子节点换成分段线性函数,那么就变成了模型树,如(图六)所示: (图六) (图六)中明显是两个直线组成,以X坐标(0.0-0.3)和(0.3-1.0)分成的两个线段.如果我们用两个叶子节点保存两个线性回归模型,就完成了这部分数据的拟合.实现也比较简单,代码如下: [python] view plain copy def linearSolve(dataSet):   #helper fun

CART(分类回归树)

1.简单介绍 线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外).当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法一个是困难一个是笨拙.此外,实际中很多问题为非线性的,例如常见到的分段函数,不可能用全局线性模型来进行拟合. 树回归将数据集切分成多份易建模的数据,然后利用线性回归进行建模和拟合.这里介绍较为经典的树回归CART(classification and regression trees,分类回归树)算法. 2.分类回归树基本流程 构建树: 1.找到[最佳待切分