我正在努力研究如何在sklearn中实现TimeSeriesSplit。在
下面链接的建议答案会产生相同的ValueError。在
sklearn TimeSeriesSplit cross_val_predict only works for partitions
下面是我的代码中的相关部分:
from sklearn.model_selection import cross_val_predict
from sklearn import svm
features = df[df.columns[0:6]]
target = df['target']
clf = svm.SVC(random_state=0)
pred = cross_val_predict(clf, features, target, cv=TimeSeriesSplit(n_splits=5).split(features))
ValueError回溯(最近一次调用) 在() ---->;1 pred=交叉价值预测(clf、特征、目标、cv=时间序列分段(n_splits=5)。分割(features))
/home/jedwards/anaconda3/envs/py36/lib/python3.6/site-packages/sklearn/model_选择/_验证.py跨价值预测(估计器、X、y、组、cv、n个作业、详细、拟合参数、预调度、方法) 407 408如果不是_check_is_置换(测试_指数,_num_samples(X)): -->;409 raise ValueError('交叉值预测仅适用于分区') 410 411投资测试指数=np.空(len(测试索引),dtype=int)
值错误:交叉值预测仅适用于分区
由于TimeSeriesSplit的第一个分区从来不是测试数据集的一部分,因此cross-Xul-predict无法与TimeSeriesSplit一起工作,这意味着没有对它进行预测。在
例如,当数据集为[1,2,3,4,5]时
在测试集中,没有一个折叠是1
如果您希望预测2-5,您可以手动循环通过CV生成的分割,并自己存储2-5的预测。在
相关问题 更多 >
编程相关推荐