scikit学习的时间序列预测



我是一个完全基于svm的预测新手,所以在这里寻找一些指导。我试图建立一个python代码预测时间序列,使用scikit-learn的支持向量机库。

我的数据在过去24小时中以30分钟的间隔包含X值,并且我需要预测下一个时间戳的y。这是我设置的-

SVR(kernel='linear', C=1e3).fit(X, y).predict(X)

但是要使这个预测工作,我需要下一个时间戳的X值,这是不可用的。如何设置它来预测未来的y值?

应该这样使用SVR:

# prepare model and set parameters
svr_model = SVR(kernel='linear', C=1e3)
# fit your model with the training set
svr_model.fit(TRAINIG_SET, TAINING_LABEL)
#predict on a test set
svr_model.predict(TEST_SET)

所以,这里的问题是你有一个训练集,但没有一个测试集来衡量你的模型准确性。唯一的解决方案是使用训练集的一部分作为测试集ex: 80% for train 20% for test

编辑

希望我能从你的评论中理解你想要什么。

如果你想预测你的火车集中最后一个小时的下一个标签,这里有一个你想要的例子:

from sklearn.svm import SVR
import random
import numpy as np
'''
data: the train set, 24 elements
label: label for each time
'''
data = [10+y for  y in [x * .5 for x in range(24)]]
label =  [z for z in [random.random()]*24]
# reshaping the train set and the label ...
DATA = np.array([data]).T
LABEL = np.array(label)
# Declaring model and fitting it
clf  = SVR(kernel='linear', C=1e3)
clf.fit(DATA, LABEL)
# predict the next label 
to_predict = DATA[DATA[23,0]+0.5]
print clf.predict(to_predict)
>> 0.94407674

相关内容

  • 没有找到相关文章

最新更新