如何将x轴上的样本更改为折叠?

时间:2017-05-25 10:26:14

标签: python matplotlib plot time-series

对于一个项目,我对时间序列进行了10倍的交叉验证。为了可视化我的结果,我创建了一个这样的图:

How the plot looks right now

为了更好地理解我的情节,我宁愿在我的x轴上使用折叠(1-10),而不是样本。

由于我使用时间序列数据这一事实,我的10倍交叉验证具有以下结构:

  • 训练0 - 测试1
  • 火车1 - 测试2
  • 训练1,2 - 测试3
  • 火车1,2,3 - Tet 4
  • ...
  • 训练1,2,3,4,5,6,7,8,9 - 测试10

我应该看起来像这样:

情节应如何显示] 2

这可能吗?如果可以,怎么做?

这是我的编码:

tscv = TimeSeriesSplit(n_splits=10)
print(tscv)  

X = mergedf['AnzahlTweets']
y = mergedf['Kurs']

X=X.values.reshape(-1,1)
y=y.values.reshape(-1,1)

linreg=LinearRegression()
rmse=[]
prediction=np.zeros(y.shape)
for train_index, test_index in tscv.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    linreg.fit(X_train,y_train)
    y_pred=linreg.predict(X_test)
    prediction[test_index]=y_pred
    rmse.append(np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
    print('RMSE: %.10f' % np.sqrt(metrics.mean_squared_error(y_test, y_pred)))

pl.plot(y,label='Actual')
pl.plot(prediction, color='red',label='Predicted',)
pl.ylabel('Price')
pl.xlabel('Sample')
pl.legend()
pl.show()

提前致谢!

感谢您提及现有问题。这有助于解决我问题的一部分。另一部分是是否可以改变样本'在x轴上折叠',以便我的情节分成10倍。

0 个答案:

没有答案