数据挖掘:基于R语言的实战 | 第9章:基于决策树的模型组合

  上一章我们学习了决策树模型,这一章我们继续学习几种基于决策树的模型组合,包括袋装决策树、梯度提升决策树、随机森林和贝叶斯可加回归树。本章的最后提供了在R语言中建立以上几种模型的案例。
  9.1节简要介绍了袋装决策树模型。上一章中,我们曾讨论过决策树模型的缺点,其中一个缺点是,决策树模型的结构不稳定,容易受到训练数据和测试数据划分的影响。袋装法从学习数据集中通过有放回的抽样方法,获得多个新的数据集,根据每个新数据集分别建立决策树,最后再对所得的多个模型进行平均。袋装法将多棵树组合在一起能有效提升模型性能。
  9.2节介绍了梯度提升决策树的思想和实现方法。梯度提升树通过可加模型将多棵树结合在一起对因变量进行拟合,形式如下:
其中为自变量,表示单棵决策树,为它的参数(包含树的结构、划分规则和各叶节点的预测值信息),为决策树的数量或迭代次数。以表示使用拟合带来的损失,建模过程通过最小化对训练数据各个观测的总损失来获得最优的组合学习器:
  这一节还简要介绍了不同因变量类型下模型的形式,以及求解最优解的梯度下降方法。
  9.3节简要介绍了随机森林算法。考虑一个问题,如果数据中有某几个变量比较“强势”,即这些变量对预测有非常好的效果,那么训练多棵树时这些变量更可能优先被选择作为划分变量,因而这多棵树是“长得很像”的,这被称为树之间的相关性。为了解决这个问题,随机森林在选择划分变量时也加入了随机性,在每次对非叶节点进行划分时,从所有的个自变量中随机选取个变量作为划分变量,再从这个变量中生成最优划分规则。这就是随机森林算法的基本思想。
  9.4介绍贝叶斯可加回归树模型。考虑使用如下可加模型对因变量进行拟合:
其中为自变量,为回归树的数量,为第棵树的结构和划分规则,为第棵树中个叶节点的预测值,表示一个自变量为的观测在第棵回归树落入的叶节点的预测值(某个值)。
  以因变量是连续型变量为例,假设,其中。在贝叶斯分析的框架下,和都被看作参数,被赋予先验分布。通过马尔科夫链蒙特卡洛算法,从这些参数的后验分布进行抽样,产生它们的个后验样本和。在对一个自变量为的观测的因变量进行预测时,可根据 得到的个后验样本,再取这些后验样本的均值作为的预测值。
  当因变量为离散型变量时,使用连接函数(Probit或Logistic形式)将预测值转换成预测的概率即可。
  最后,9.5节给出了在R中实现以上几种模型的示例,并对模型的结果进行小结。每个案例都给出了具体的操作代码和详细的注释,供同学们动手操作起来,快来一起学习吧!
(0)

相关推荐

  • 互助问答第401期 变量中有大量0值的问题

    变量中有大量0值的问题 老师,您好!请教一下关于自变量和因变量中有大量0值,该如何处理呢.自变量是企业的R&D投入,有大量0值,和正值的投入金额占销量比例.因变量是企业的销量变化百分比,有大量 ...

  • 如何用决策树模型做数据分析?

    一 什么是决策树? 决策树模型本质是一颗由多个判断节点组成的树.在树的每个节点做参数判断,进而在树的最末枝(叶结点)能够对所关心变量的取值作出最佳判断.通常,一棵决策树包含一个根结点,若干内部节点和若 ...

  • 中介效应是个什么作用?

    中介变量(mediator)是自变量X对因变量Y产生影响的中介,如果变量X通过影响变量M来影响因变量Y则称M为中介变量,也就是说自变量X对因变量Y的影响有一部分或者全部是通过中介变量M来发挥作用的.通 ...

  • 参数

    参数,也叫参变量,是一个变量. 在研究某几个变量的变化以及它们之间的相互关系,其中有一个或一些叫自变量,另一个或另一些叫因变量.如果引入一个或一些另外的变量来描述自变量与因变量的变化,引入的变量本来并 ...

  • 实证研究中常常忽视的一个点:该如何将“控制变量”的选择进行到底

    图片来源:网络 人的行为惯性,往往会主导我们的思路!在实证分析中,我们常常重视因变量和自变量的选取和定义,而忽视控制变量的选取的重要性.但是,我们不能轻视的是,控制变量也是实证研究中重要的一环,能否选 ...

  • 数据挖掘:基于R语言的实战 | 第5章:聚类分析

    第5章我们继续来学习一种无监督的数据挖掘方法--聚类分析.通过聚类分析我们可以观察到数据是怎么聚集在一起的,还可以用来描述数据的分布情况.聚类分析的应用十分广泛,例如通过对客户聚类来对其进行细分以便为 ...

  • 数据挖掘:基于R语言的实战 | 第6章:线性模型与广义线性模型

    第6章给大家介绍实际场景中最常用的两种统计模型,线性模型和广义线性模型.本章首先在6.1节中介绍线性模型,然后在6.2节中介绍广义线性模型,在6.3节再介绍线性模型和广义线性模型中的变量选择.本章最后 ...

  • 数据挖掘:基于R语言的实战 | 第7章:神经网络的基本方法

    上一章我们简单介绍了有监督学习方法中最常用的线性模型和广义线性模型,第7章我们来认识一下神经网络的基本方法.本章先介绍了单个神经元和神经网络,然后介绍神经网络的训练方法,接着介绍提升模型泛化能力的一些 ...

  • 基于R语言实现LASSO回归分析

    原文链接:http://tecdat.cn/?p=10997 模拟假数据集  set.seed(0820) n         <- 50  p         <- 25  beta   ...

  • 每周一本书 |《R语言预测实战》:预测很有趣,算法却未必枯燥

    <数据猿导读> 预测是数据挖掘的主要作用之一,也是大数据时代的核心价值所在.本周给大家分享的书是<R语言预测实战>,基于R语言来做预测,兼具效率和价值的双重属性,R语言具有上手 ...

  • 一文掌握SVM用法(基于R语言)

    这是生信技能树 一文 系列推文,前面的目录: 一文学会WGCNA分析 一文看懂主成分分析 SVM 背景知识 支持向量机,因其英文名为support vector machine,故一般简称SVM,就是 ...

  • 芯片的探针ID找到基因名-基于R语言-一文就够

    使用bioconductor注释包 如果该芯片平台有对应的bioconductor注释包,只有约90个常用的芯片有! 比如: library(hgu133a.db) ids=toTable(hgu13 ...

  • 基于R语言的shiny网页工具开发基础系列-07

    任何使用R的人都可运行你的shiny app,他们需要你的app.R的一个副本,还有其他支持材料(比如www文件夹或者帮助脚本) 发送你的文件到另一个用户,email或者github等 用户将你的文件 ...

  • 基于R语言的shiny网页工具开发基础系列-06

    L6-反应表达式 用反应表达式,快速构建,模块化app ⚠️此篇的线上数据可能有时无法顺利抓取,要多试几次 使用反应表达式 用户会赞叹快速的app,但是你的app有大量运算影响速度了该怎么办呢? 此篇 ...