如何在scikit-learn中预测时间序列?

罗马:

Scikit-learn利用基于fitpredict方法的非常方便的方法。我有适合fit格式的时间序列数据predict

例如,我有以下内容Xs

[[1.0, 2.3, 4.5], [6.7, 2.7, 1.2], ..., [3.2, 4.7, 1.1]]

和相应的ys

[[1.0], [2.3], ..., [7.7]]

这些数据具有以下含义。这些值ys以时间序列形式存储中的值Xs是相应的时间相关的“因数”,已知会对它们的值产生一些影响ys(例如:温度,湿度和大气压)。

现在,我当然可以使用了fit(Xs,ys)但是随后我得到一个模型,其中将来的值ys仅取决于因素,而不取决于Y(至少直接地)先前的值,这是模型的局限性。我想有其中一个模型Y_n还取决于Y_{n-1}Y_{n-2}等。例如,我可能要使用指数移动平均线作为模型。scikit-learn中最优雅的方法是什么

添加

正如评论中提到的,我可以Xs通过添加来扩展ys但是这种方式有一些局限性。例如,如果我将的最后5个值添加y为5个新列到X,则有关的时间顺序的信息ys将会丢失。例如,没有指示X第5列中的值跟随第4列中的值,依此类推。作为模型,我可能希望对最后五个进行线性拟合,ys然后使用找到的线性函数进行预测。但是,如果我在5列中有5个值,那就不是那么简单了。

加了2

为了使我的问题更加清楚,我想举一个具体的例子。我想要一个“线性”模型y_n = c + k1*x1 + k2*x2 + k3*x3 + k4*EMOV_n,其中EMOV_n只是指数移动平均值。如何在scikit-learn中实现此简单模型?

cjohnson318:

关于指数加权移动平均线,可能是您要寻找的:

import pandas, numpy
ewma = pandas.stats.moments.ewma
EMOV_n = ewma( ys, com=2 )

这里com是一个您可以在此处阅读的参数然后,您可以使用结合EMOV_nXs,例如:

Xs = numpy.vstack((Xs,EMOV_n))

然后,您可以在此处查看各种线性模型,并执行类似的操作:

from sklearn import linear_model
clf = linear_model.LinearRegression()
clf.fit ( Xs, ys )
print clf.coef_

祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用AutoReg预测时间序列

如何检测时间序列中的翻转?

如何使用统计模型Holt-Winters预测时间序列集

如何在python中建立LSTM时间序列预测模型?

如何在Go中检测时间?

如何在Scikit-Learn中重用LabelBinarizer进行输入预测

如何在Python scikit-learn中从随机森林中的每棵树输出回归预测?

使用 scikit learn 训练机器学习模型以进行时间序列预测

有什么办法可以在Python中使用scikit-learn来预测每月的时间序列?

跟踪和预测时间序列中的运动

在Oracle / SQL中预测时间序列数据

如何检测时间序列数据中的符号变化(例如,从正到负)?

如何“测量” Keras中时间序列预测代码的性能?

如何在scikit Learn,Python中处理名义数据?

如何在scikit-learn(sklearn)的管道中应用StandardScaler?

如何在scikit-learn的DecisionTreeRegressor中获取节点的MSE?

如何在Python中安装和使用scikit-learn

Keras LSTM如何在多元设置中对多个时间序列进行预测?

如何在Keras的多元LSTM中处理多步时间序列预测

如何在Julia中训练神经ODE来预测Lotka Voltera时间序列?

如何在scikit-learn中提高预测的准确性

如何在scikit-learn中使用交叉验证来获得预测概率

如何使用 scikit learn 预测目标标签

在使用多个输入层训练的keras模型中,如何在预测时忽略某些输入层?

如何在scikit-learn中使用tfidf计算功能?

如何在scikit-learn中正确执行交叉验证?

如何在scikit-learn CountVectorizer中计算词频

如何在 Scikit-learn 中使用 NumPy 数组

如何在时间序列预测图中添加95%的间隔