R语言(四)——十折交叉验证/机器学习回归【决策树(随机森林)、组合方法、SVR】

本文详细介绍了使用R语言进行回归分析的过程,包括十折交叉验证、决策树、随机森林、支持向量机回归等方法,并对比了不同模型的性能。

目录

一、数据

二、十折交叉验证

1.思想

         2.实现

三、决策树

1.单树

2.Boosting回归

3.bagging回归

3.随机森林回归

四、支持向量机回归(SVR) 

1.SVM

2.SVR

3.实现

五、总结


一、数据

可以直接使用我上传的数据(经过处理,直接导入使用)

从网页https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/regression/mg获取mg数据,该数据有1个因变量和6个自变量。

将数据复制进excel,选中第一列,数据->分列->分隔符号->空格,将数据进行分列。

将数据中的x:删去(可以使用替换功能)

最后在第一行加入变量名,另存为csv文件,即可以在R中正常载入。

二、十折交叉验证

1.思想

十折交叉验证的方法用于判断实验结果的可靠性。

其基本实现方法是:将所有数据划分为十份,依次选取一份数据作为测试集,其余九份做训练集,共建立十个模型,可分别得到10个标准化的均方误差(NMSE),求出10次平均的NMSE。

对于训练集来说,其NMSE=1-R²,对于测试机来说,NMSE与回归得到的R²没有太大关系。交叉验证主要关心的是测试集的NMSE。

2.实现

rm(list=ls())
#setwd("")  #设置路径

#随机选择Z折下标集的函数,n样本量,seed随机种子
CV=function(n,Z=10,seed=888){
  z=rep(1:Z,ceiling(n/Z))[1:n]
  set.seed(seed)
  z=sample(z,n)
  mm=list()
  #mm[[i]]为第i个下标集
  for (i in 1:Z) mm[[i]]=(1:n)[z==i];return(mm)
}

#数据导入
w=read.csv("mg.csv")
n=nrow(w);Z=10;mm=CV(n,Z);D=1

MSE=rep(0,Z) #建立一个向量储存结果
for(i in 1:Z){   #循环十次
  m=mm[[i]];
  M=mean((w[m,D]-mean(w[m,D]))^2)
  a=lm(y~.,w[-m,]) #简单线性回归,[-m]为训练集
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值