我们最近有一个很棒的机会与一位伟大的客户合作,要求构建一个适合他们需求的持向量机回归模型。
我们需要拟合支持向量机回归模型
进行网格搜索超参数优化并使用训练好的模型进行预测推理、使用plot函数可视化线图对比预测值和实际值曲线。
数据
读取数据
Hd=read.xlsx("支持向量机用数据.xlsx")#读取支持向量机用数据.xlsx
head(Hd)#查看数据
数据预处理
#归一化
Hd=scale(Hd[,-1])
#查看变量之间的关系
plot(Hd[,c("猪粮比价格变动率","玉米价格变动率(时差已调整)",
"存栏量变动率(时差已调整)",
可下载资源
查看变量之间的关联系数
cor(Hd[,c("猪粮比价格变动率","玉米价格变动率(时差已调整)",
准备训练集和测试集
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)
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!