R语言SVR支持向量机多元回归、网格搜索超参数优化预测猪粮比价格变动率数据

我们最近有一个很棒的机会与一位伟大的客户合作,要求构建一个适合他们需求的持向量机回归模型。

由Kaizong Ye,Liao Bao撰写

我们需要拟合支持向量机回归模型

进行网格搜索超参数优化并使用训练好的模型进行预测推理、使用plot函数可视化线图对比预测值和实际值曲线。

数据

image.png

读取数据

Hd=read.xlsx("支持向量机用数据.xlsx")#读取支持向量机用数据.xlsx
head(Hd)#查看数据
image.png

数据预处理

#归一化  
Hd=scale(Hd[,-1])

#查看变量之间的关系  
plot(Hd[,c("猪粮比价格变动率","玉米价格变动率(时差已调整)",  
           "存栏量变动率(时差已调整)",
 

image.png

视频

支持向量机SVM、支持向量回归SVR和R语言网格搜索超参数优化实例

探索见解

去bilibili观看

探索更多视频

查看变量之间的关联系数


cor(Hd[,c("猪粮比价格变动率","玉米价格变动率(时差已调整)",
image.png

准备训练集和测试集

n=nrow(Hd)
ntrain <- round(n*0.8) # 训练集
tindex <- sample(n,ntrain) # 筛选测试集样本

R语言进行支持向量机回归SVR和网格搜索超参数优化

阅读文章


训练集可视化

plot(Hd[,c("猪粮比价格变动率","玉米价格变动率(时差已调整)")] ,pch=ifelse


随时关注您喜欢的主题


image.png

训练SVM模型

现在我们在训练集上使用来训练线性SVM

model <- svm(猪粮比价格变动率 ~ . , Hd)
image.png
mse <- function(error)  
{  
  sqrt(mean(error^2))
  
  
  predictionmse

## [1] 0.6789526
image.png

求解最优参数


predictionmse=0 jj=1 for(i in seq(0,1,0.1)){   for(j in seq(0.1,1,0.1)){         model <- svm(Hd$"猪粮比价格变动率" ~ .
image.png

找到最佳参数

  
  
which.min(predictionmse)

## [1] 10

用最优参数预测

,epsilon=1,cost=0.1)
points(Hd$"玉米价格变动率.时差已调整.", predictedY, col = "red", pch=4)
1.png

预测新数据

plot(Hd_predict[,c(3,2)] ,pch=ifelse(istrain==1,1,2))  
  
   
points(Hd_predict$"玉米价格变动率.时差已调整.", predictednew, col = "red", pch=4)
image.png


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds