回归树

GBDT回归树过程详解

百般思念 提交于 2020-04-06 09:53:18
GBDT回归树过程详解 转载 简单点1024 最后发布于2018-04-11 22:56:46 阅读数 10281 收藏 展开 综述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。   GBDT中的树是回归树(不是分类树),GBDT用来做回归预测,调整后也可以用于分类。   GBDT的思想使其具有天然优势可以发现多种有区分性的特征以及特征组合。业界中,Facebook使用其来自动发现有效的特征、特征组合,来作为LR模型中的特征,以提高 CTR预估(Click-Through Rate Prediction)的准确性(详见参考文献5、6);GBDT在淘宝的搜索及预测业务上也发挥了重要作用(详见参考文献7)。 一、Regression Decision Tree:回归树 回归树总体流程类似于分类树,区别在于,回归树的每一个节点都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分枝时穷举每一个feature的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化平方误差。也就是被预测出错的人数越多

随机森林学习笔记

蓝咒 提交于 2020-04-02 15:03:21
1.分类回归树CART 随机森林是由多颗CART树组成的 1、下面简单叙述下CART树及生成树的原理。 CART(Classification and regression tree)是决策树的一种,主要由特征选择,树的生成和剪枝三部分组成。它主要用来处理分类和回归问题。 (1)、回归树:使用平方误差最小准则 训练集为:D={(x1,y1), (x2,y2), …, (xn,yn)}。 输出Y为连续变量,将输入划分为M个区域,分别为R 1 ,R 2 ,…,R M ,每个区域的输出值分别为:c1,c2,…,c m 则回归树模型可表示为: 则平方误差为: 假如使用特征j的取值s来将输入空间划分为两个区域,分别为: 我们需要最小化损失函数,即:   其中c1,c2分别为R1,R2区间内的输出平均值。(此处与统计学习课本上的公式有所不同,在课本中里面的c1,c2都需要取最小值,但是,在确定的区间中,当c1,c2取区间输出值的平均值时其平方会达到最小,为简单起见,故而在此直接使用区间的输出均值。)   为了使平方误差最小,我们需要依次对每个特征的每个取值进行遍历,计算出当前每一个可能的切分点的误差,最后选择切分误差最小的点将输入空间切分为两个部分,然后递归上述步骤,直到切分结束。此方法切分的树称为最小二乘回归树。 最小二乘回归树生成过程: 1)依次遍历每个特征j,以及该特征的每个取值s

3.机器学习之决策树详解

半腔热情 提交于 2020-03-16 13:47:41
本篇博客主要介绍机器学习中的决策树模型。决策树算法在机器学习中算是很经典的一个算法系列。它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林。决策树模型是一类算法的集合,在数据挖掘十大算法中,具体的决策树算法占有两席位置,即C4.5和CART算法。 决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话: 女儿:多大年纪了? 母亲:26。 女儿:长的帅不帅? 母亲:挺帅的。女儿:收入高不? 母亲:不算很高,中等情况。 女儿:是公务员不? 母亲:是,在税务局上班呢。 女儿:那好,我去见见。 这个女孩的决策过程就是典型的分类树决策。相当于通过年龄、长相、收入和是否公务员对将男人分为两个类别:见和不见。假设这个女孩对男人的要求是:30岁以下、长相中等以上并且是高收入者或中等以上收入的公务员,那么这个可以用下图表示女孩的决策逻辑:  决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。 决策树是在已知各种情况发生概率((各个样本数据出现中

预测海藻的数量

老子叫甜甜 提交于 2020-03-09 10:51:44
问题描述与目标 希望通过建立预测模型预测河流中有害海藻的数量。同时了解藻类的频率和水样的某些化学性质以及其他特征。 数据说明 本文采用R语言里面自带的海藻数据样本共200个,有以下几种因素影响海藻的生长,用summary对数据进行整合,如图所示。 图 每个记录有11个变量,其中3个变量是名义变量,它们分别描述水样收集的季节、收集河流的大小和河水速度。余下的8个变量是所观察水样的不同化学参数,即最大pH值、最小含氧量(O2)、平均氯化物含量(cl)、平均硝酸盐含量(NO3)、平均氨含量(NH4)、平均正磷酸含量(PO4)、平均磷酸盐含量(PO4)、平均叶绿素含量。与这些参数相关的是7种不同有害藻类在相应水样中的频率数目。并未提供所观察藻类的名称的有关信息。 数据处理 画出海藻mxPH的频数直方图、密度图。 图 我们可以从图中得到一些信息。左边的MxPH的直方图,同时显示了变量分布的核密度。右边是QQ图,绘制正态分布的散点图,虚线显示95%置信区间,可以看出上图符合正态分布。 为了了解不同河流区域PH值在不同水体中分布情况 图 但是我们从图一可以看出有许多没有用的数据,因此我们必须对数据进行清洗。剔除掉无效数据184组数据。因所以需要对数据进行填补。 填补缺失数据最简便和便捷的方法是使用一些代表中心趋势的值。代表中心趋势的值反映了变量分布的最常见值。有多个代表数据中心趋势的指标

论文笔记 XGBoost: A Scalable Tree Boosting System

吃可爱长大的小学妹 提交于 2020-02-03 10:30:38
  XGBoost是boosting算法的其中一种。Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器,其更关注与降低基模型的偏差。XGBoost是一种提升树模型(Gradient boost machine),其将许多树模型集成在一起,形成一个很强的分类器。而所用到的树模型则是CART回归树模型。讲解其原理前,先讲解一下CART回归树。 一、CART回归树    CART回归树中定义树为二叉树,通过GINI增益函数选定最优划分属性。由于CART为二叉树,与其他决策树相比其在选择了最优分类特征之后,还需要选择一个最优的特征值划分点。比如当前树结点是基于第j个特征值进行分裂的,设该特征值小于s的样本划分为左子树,大于s的样本划分为右子树。 CART回归树实质上就是在该特征维度对样本空间进行划分,而这种空间划分的优化是一种NP难问题,因此,在决策树模型中是使用启发式方法解决。典型CART回归树产生的目标函数为: 因此,当我们为了求解最优的切分特征j和最优的切分点s,就转化为求解这么一个目标函数: 所以我们只要遍历所有特征的的所有切分点,就能找到最优的切分特征和切分点。最终得到一棵回归树。 二、XGBoost基本思想    XGBoost的核心思想与GBM一致,其在实现的过程中通过不断地添加新的树(基模型),不断地进行特征分裂来生长一棵树,每次添加一个树

机器学习实战08:树回归

ε祈祈猫儿з 提交于 2020-01-28 04:46:17
树回归 优点:可以对复杂和非线性的数据建模。 缺点:结果不易理解。 适用数据类型:数值型和标称型数据。 连续和离散型特征的树的构建 在树的构建过程中,需要解决多种类型数据的存储问题,可以使用一部字典来存储树的数据结构,该字典将包含以下4个元素: (1)待切分的特征 (2)待切分的特征值 (3)右子树。当不再需要切分的时候,也可以是单个值 (4)左子树。与右子树类似 树包含左键和右键,可以存储另一棵子树或者单个值。字典还包含特征和特征值这两个键,它们给出切分算法所有的特征和特征值。 树的每个分枝还可以再包含其他树、数值型数据甚至是向量。 函数createTree ( ) 的伪代码: 找到最佳的待切分特征: 如果该节点不能再分,将该节点存为叶节点 执行二元切分 在右子树调用createTree ( ) 方法 在左子树调用createTree ( ) 方法 将 CART 算法用于回归 回归树假设叶节点是常数值,这种策略认为数据中的复杂关系可以用树结构来概括。为成功构建以分段常数为叶节点的树,需要度量出数据的一致性。 使用树进行分类,可以在给定节点时计算数据的混乱度。 首先计算所有数据的均值,然后计算每条数据的值到均值的差值。为了对正负差值同等看待,一般使用绝对值或平方值来代替上述差值。上述做法有点类似于前面介绍过的统计学中常用的方差计算。唯一的不同就是,方差是平方误差的均值(均方差)

GBDT与LR融合提升广告点击率预估模型

£可爱£侵袭症+ 提交于 2020-01-14 02:12:11
1GBDT和LR融合 LR模型是线性的,处理能力有限,所以要想处理大规模问题,需要大量人力进行特征工程,组合相似的特征,例如user和Ad维度的特征进行组合。 GDBT天然适合做特征提取,因为GBDT由回归树组成所以, 每棵回归树就是天然的有区分性的特征及组合特征,然后给LR模型训练,提高点击率预估模型(很多公司技术发展应用过,本人认为dnn才是趋势)。 例如,输入样本x,GBDT模型得到两颗树tree1和tree2,遍历两颗树,每个叶子节点都是LR模型的一个维度特征,在求和每个叶子*权重及时LR模型的分类结果。 2广告长尾性 1)gbdt和随机森林rf的对比: rf主要选择对大多数样本有区分度的特征;gbdt的过程,前面树针对大多数样本有区分 ,后面树针对残差依然较大的样本,即针少数的对长尾样本。更适合ctr模型预估。 2)针对广告的长尾性,广告id这个特征就很重要,比如:某少量长尾用户就喜欢点某类广告主的广告。 方案:分别针对ID类和非ID类建树,ID类树:用于发现曝光充分的ID对应的有区分性的特征及组合特征;非ID类树:用于曝光较少的广告。 3gbdt得到的特征维度 维度会降低,总维度是所有叶子节点数之和。 4gdbt模型原理 1)BT回归树 年龄预测:简单起见训练集只有4个人,A,B,C,D,他们的年龄分别是14,16,24,26。其中A、B分别是高一和高三学生;C

对xgboost和lightgbm的理解及其调参应该关注的点

戏子无情 提交于 2019-12-27 18:49:27
这两个算法都是集成学习了分类回归树模型,先讨论是怎么集成的。 集成的方法是 Gradient Boosting 比如我要拟合一个数据如下: 第一次建了一个模型如上图中的折线,效果不是很理想,然后要新建一个模型来综合一下结果,那么第二个模型如何建,我们将实际目标值和我们第一个模型的预测的差值 作为第二次模型的目标值如下图再建一个模型: 然后不断地新建新的模型,过程如下: 最后就能集成这些模型不断提升预测的精度。 步骤如下: 损失函数: 最小化目标: 对每一个基学习器求偏导: 这两个算法的基学习器都是分类回归树,也就是先分类然后回归的树,这里采用决策树来做特征分类。 建立决策树要考虑主要的问题是,我们如何找到合适的特征和合适的切分点来做数据集划分。判断标准是什么。 可以采用遍历的方式,遍历每一个特征的每一个数据,注意为了能够快速划分数据集,在分某一个特征的时候,就根据这个特征进行排序,这样切割数据集的时候就不要每一个数据重新进行和切分点的阈值进行比较。 划分依据是分类之后的数据集的目标值的方差和要下降的最多(对于目标值是连续值)。 假设下面代码中最后一列为目标值: def err_cnt(dataSet): '''回归树的划分指标 input: dataSet(list):训练数据 output: m*s^2(float):总方差 ''' data = np.mat(dataSet)

【机器学习基础算法系列】【肆】全面详解GBDT(Gradient Boosting Decision Tree)

泄露秘密 提交于 2019-12-26 15:43:41
文章目录 算法流程 常见问题 算法流程 回归树的生成【参考李航书, CART决策树算法浅谈(回归树部分) 讲的也比较好】: 1)穷举扫描每一个属性特征及其取值,选取使均方误差最小的特征进行分枝; 2)根据划分到两个分枝的数据子集对应的y的平均值获得c1和c2,分别计算两个数据子集的平均绝对误差,选取可以使均方误差最小的特征和取值对作为节点,并确定子节点处的预测值为对应的c1和c2; 3)对子节点重复1)2)直到满足停止条件,递归地将数据集分割为更小的部分,直到总均方差的下降值小于某阈值或者数据集中只剩下一类数据为止; 4)将输入空间分为M个区域R 1 R M~,生成决策树; 前向分步算法,拟合残差直到分类完成或达到预设的终止条件,实现决策树的递归构建。 常见问题 gbdt 如何选择特征 ? CART回归树用平方误差最小化选择特征 gbdt 如何构建特征 ? GBDT的叶子节点编号可以与LR融合使用,落在的叶子为1,没有落到的为0 gbdt 如何用于分类? 对于多分类任务,训练时对N类都训练一个分类回归树,然后对于这N个输出计算交叉熵 gbdt 通过什么方式减少误差 ? 通过前向分步算法:即每棵树都是在拟合当前模型的预测值和真实值之间的误差,通过不断迭代减小误差 gbdt的效果相比于传统的LR,SVM效果为什么好一些 ? GBDT基于树模型,继承了树模型的优点 :对异常点鲁棒

树模型

北慕城南 提交于 2019-12-06 12:28:27
1. 提升树   以决策树为基函数的提升方法称为提升树,决策树可以分为分类树和回归树,提升树模型可以表示为决策树的加法模型,其数学表达式为: 其中 表示决策树, 表示决策树的参数, 为决策树的个数。 提升树算法流程:   输入:训练数据集   ① 初始化   ②对每棵树     ③对每个样本 ,计算残差     ④利用 训练一棵决策树,得到     ⑤更新   ⑥完成上述迭代,得到提升树 2. 梯度提升决策树 梯度提升决策树算法流程:   输入:训练数据集 ;损失函数   ①初始化               ②对每棵树     ③对每个样本 ,计算残差              ④利用 训练出第 棵回归树 ,其叶子节点划分的区域为     ⑤对于回归树 的每一个叶子节点,计算其输出值              ⑥更新            ⑦得到最终提升回归树          3. 随机森林   随机森林是用随机的方式建立一个森林,森林由多棵决策树组成,每棵决策树之间无任何关联。在得到一个森林后,当输入一个新样本,让每棵决策树预测(投票或求均值)。 随机性体现:   样本随机性   特征随机性 随机森林算法优点:   训练速度快,泛化能力强,可并行建树   能够处理具有高维特征的输入样本,不需要降维   对缺省值问题也能获得很好的结果   可学到特征之间的相互影响