我正在使用kernlab
的KSVM来预测未来的价值。生成模型后predict()
方法用于获取未来值。
代码如下:
data=read.csv('D:\\MyData.csv')
forecastInterval=2000
col=2
dataLength=length(data[,1])
plot(data[,col],xlim=c(0,8000),ylim=c(-200,200), type='l')
svmX=seq(1,dataLength,1)
regm <- ksvm(svmX,data[,col],type='eps- bsvr',kernel='anovadot',epsilon=0.5,kpar="automatic",cross=3)
newSvmX=seq(dataLength+1, dataLength+forecastInterval,1)
predict=predict(regm,newdata=data.frame(newSvmX))
lines(newSvmX,predict,col="green")
lines(seq(1,dataLength+forecastInterval,1),predict(regm,seq(1,dataLength+forecastInterval,1)), col='blue')
此处CSV文件由两列组成:第一列包含时间戳,第二列包含CPU利用率。根据这些数据,我需要预测未来的CPU利用率。
我面临的问题是predict
变量的起始值从:
[,1]
[1,] -151.68668
[2,] -151.65964
[3,] -151.63247
[4,] -151.60518
[5,] -151.57776
... ... ...
而实际数据的最后一个值为8.462130
,因此实际数据和预测值的图表会中断。
另一个问题是当我使用
绘制线条时lines(newSvmX,predict,col="green")
然后这条“绿色”线与实际数据断开连接。如果我使用:
lines(seq(1,dataLength+forecastInterval,1),predict(regm,seq(1,dataLength+forecastInterval,1)), col='blue')
然后这条“蓝色”线与原始数据连续。
请帮助我解决这个问题,为什么predict()
方法给出的值不会继续使用原始数据,以及为什么运行在相同数据上的两个'lines()'方法会产生不同的图形。
附件是图表的屏幕截图。
由于