R语言之回归树

rpart包可实现回归树。通常分为两步建立回归树:1.生成一棵较大的树  2.通过统计估计删除一些结点来对树进行修剪。

回归树基础实现

library(rpart)

rpart(y~.,data=data1)  参数形式与lm()函数的参数形式相同

图形化展示:

plot(rm)
text(rm)

rpart()函数构建树时,满足下列条件,树构建过程将结束:

1、偏差的减少小于某一个给定界限值时;

2、当结点中的样本数量小于某个给定界限时;

3、当树的深度大于一个给定的界限值

这3个界限值由rpart()函数中的三个参数(cp、minsplit、maxdepth)来确定。默认值为0.01、20、30

修剪方法

rpart包中实现了一种复杂度损失修剪的修剪方法

这个方法使用R在每个树结点计算的参数值cp,这种修剪方法试图估计cp值以确保达到预测的准确性和树的大小之间的最佳折中。

可用printcp()函数可生成回归树的一些子树,并估计这些树的性能。

plotcp(rm)

 

由rpart()函数建立的回归树是上面列表中的最后一个树(树9)。这个树的cp值是0.01(cp的默认值),该树包括九个测试和一个相对误差值(与根结点相比)0.354。

R应用10折交叉验证的内部过程,评估该树的平均相对误差为0.70241+0.11523

根据这些更稳健的性能估计信息,可以避免过度拟合问题。

可以看到,8号树的预测相对误差(0.67733)最小。

选择好的回归树的准则:

1、以估计的cp值为准则;

2、1-SE规则;这包括检查交叉验证的估计误差(xerror列)以及标准误差(xstd列)。

在这个案例中,1-SE规则树是最小的树,误差小于0.67733+0.10892=0.78625,而由1检验的2号树的估计误差为0.73358.

若想要选择不是R建议的树,可通过使用不同的cp值来建立这棵树:

rm2=prune(rm,cp=0.08)

  

交互的对树进行修剪:snip.rpart()

两种方式:

1、指出需要修剪的那个地方的结点号(可以通过输出树对象来得到树的结点号),返回树对象

2、首先在图形窗口画出回归树,然后调用没有第二参数的函数。点击结点,即在这个结点对树进行修剪。可持续执行,直到右击结束。

时间: 2024-07-29 22:40:16

R语言之回归树的相关文章

利用R语言+逻辑回归实现自动化运营

摘要 逻辑回归是最常见的二分类算法之一,由于是有监督学习,训练阶段需要输入标签,而同时在变量较多的情况下,需要先经过一些降维处理,本文主要讲解如果通过R语言来自动化实现变量的降维以及变量转换,训练,测试,覆盖率以及准确度效果评估,以及生成最终评分配置表,而在标签与训练数据在可以自动化生成的情况下,配置表是能自动生成的.其中每个步骤都有详细的实现代码. 主要步骤 实现细节 1.生成训练数据 如类似下面的格式 lable var1 var2 var3 var4 var5 var6 var7 var8

R语言对回归模型进行协方差分析

原文链接:http://tecdat.cn/?p=9529 目录 怎么做测试 协方差分析 拟合线的简单图解 模型的p值和R平方 检查模型的假设 具有三类和II型平方和的协方差示例分析 协方差分析 拟合线的简单图解 组合模型的p值和R平方 检查模型的假设 怎么做测试 具有两个类别和II型平方和的协方差示例的分析 本示例使用II型平方和 .参数估计值在R中的计算方式不同, Data = read.table(textConnection(Input),header=TRUE) plot(x = Da

R语言-逻辑回归建模

案例1:使用逻辑回归模型,预测客户的信用评级 数据集中采用defect为因变量,其余变量为自变量 1.加载包和数据集 library(pROC) library(DMwR)model.df <- read.csv('E:\\Udacity\\Data Analysis High\\R\\R_Study\\高级课程代码\\数据集\\第一天\\4信用评级\\customer defection data.csv',sep=',',header=T 2.查看数据集, dim(model.df) hea

R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读

R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读 XGBoost不仅仅可以用来做分类还可以做时间序列方面的预测,而且已经有人做的很好,可以见最后的案例. 应用一:XGBoost用来做预测 -------------------------------------------------- 一.XGBoost来历 xgboost的全称是eXtreme Gradient Boosting.正如其名,它是Gradient Boosting Mach

R语言基于树的方法:决策树,随机森林,套袋Bagging,增强树

原文链接:http://tecdat.cn/?p=9859 概观 本文是有关  基于树的  回归和分类方法的.用于分割预测变量空间的分割规则可以汇总在树中,因此通常称为  决策树  方法. 树方法简单易懂,但对于解释却非常有用,但就预测准确性而言,它们通常无法与最佳监督学习方法竞争.因此,我们还介绍了装袋,随机森林和增强.这些示例中的每一个都涉及产生多个树,然后将其合并以产生单个共识预测.我们看到,合并大量的树可以大大提高预测准确性,但代价是损失解释能力. 决策树可以应用于回归和分类问题.我们将

R语言实战(四)回归

本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来挑选与相应变量相关的解释变量,可以描述两者的关系,也可以生成一个等式,通过解释变量来预测响应变量. 回归分析的各种变体 回归类型 用途 简单线性 用一个量化的解释变量预测一个量化的响应变量 多项式 用一个量化的解释变量预测一个量化的响应变量,模型的关系是n阶多项式 多元线性 用两个或多个量化的解释变量预测一个

R语言数据分析系列之九 - 逻辑回归

R语言数据分析系列之九 -- by comaple.zhang 本节将一下逻辑回归和R语言实现,逻辑回归(LR,LogisticRegression)其实属于广义回归模型,根据因变量的类型和服从的分布可以分为,普通多元线性回归模型,和逻辑回归,逻辑回归是指因变量是离散并且取值范围为{0,1}两类,如果离散变量取值是多项即变为 multi-class classification,所以LR模型是一个二分类模型,可以用来做CTR预测等.那么我们现在来引出逻辑回归如何做二分类问题. 问题引入 在多元线

回归预测及R语言实现 Part2 回归R语言实现

下面是回归分析的各种变体的简单介绍,解释变量和相应变量就是指自变量和因变量. 常用普通最小二乘(OLS)回归法来拟合实现简单线性.多项式和多元线性等回归模型.最小二乘法的基本原理前面已经说明了,使得预测值和观察值之差最小. R中实现拟合线性模型最基本的函数是lm(),应用格式为: myfit <- lm(Y~X1+X2+-+Xk,data) data为观测数据,应该为一个data.frame,前面是拟合表达式,Y是因变量,X1-Xk是自变量,+用来分隔不同的自变量的,还有可能用到的其他符号的说明

15、R语言聚类树的绘图原理

聚类广泛用于数据分析.去年研究了一下R语言聚类树的绘图原理.以芯片分析为例,我们来给一些样品做聚类分析.聚类的方法有很多种,我们选择Pearson距离.ward方法. 选择的样品有: "GSM658287.CEL", "GSM658288.CEL", "GSM658289.CEL", "GSM658290.CEL", "GSM658291.CEL", "GSM658292.CEL", &