分享

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

 拓端数据 2023-02-15 发布于浙江

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

相关视频

我们需要拟合支持向量机回归模型:进行网格搜索超参数优化并使用训练好的模型进行预测推理、使用plot函数可视化线图对比预测值和实际值。

数据

读取数据

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

数据预处理

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

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

查看变量之间的关联系数


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


点击标题查阅往期内容

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

左右滑动查看更多

01

02

03

04

准备训练集和测试集

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

训练集可视化

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

训练SVM模型

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

model <- svm(猪粮比价格变动率 ~ . , Hd)

mse <- function(error)  
{
  sqrt(mean(error^2))


predictionmse

## [1] 0.6789526

求解最优参数

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

找到最佳参数

  

which.min(predictionmse)

## [1] 10

用最优参数预测

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

预测新数据

plot(Hd_predict[,c(3,2)] ,pch=ifelse(istrain==1,1,2))  

 
points(Hd_predict$"玉米价格变动率.时差已调整.", predictednew, col = "red", pch=4)



    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多