R语言svm支持向量机多元回归预测

数据用的还是之前的股票数据

library(e1071)

x<-read.table("gu.txt",header=T)

x[,1]<-1:4695 #将第一列的时间数据换成1:length的向量


#建立模型

m <- svm(x[1:4600,5]~ .,x[1:4600,-5], cost = 1000, gamma = 0.0001)
#预测

p<-predict(m,x[4601:4695,-5])
#取实际值

r<-x[4601:4695,5]

#计算相对误差

s<-0
for(i in 1:95)
{
if(abs(p[i]-r[i])<0.15)
s<-s+1
}
s

#输出结果s为86,说明90%以上的预测结果与实际值的误差都在0.15之内,取0.15计算相对误差,用mean算得实际值的均值为11.9,所以相对误差为1.26%

#计算趋势预测准确率

aa<-0
bb<-0
for(i in 1:94)
{
aa[i]<-r[i+1]-r[i]
bb[i]<-p[i+1]-p[i]
}
ss<-0
for(j in 1:94)
{
if(aa[j]*bb[j]>=0)
{
ss<-ss+1
}
}
ss

ss为80,所以趋势准确率为85.1%

你可能感兴趣的:(R)