我有一个数据集(包含BTC的价格数据),我试图预测下一分钟价格是否会上涨(分类)。
我应该如何精确地拆分这个数据集?当我随机将其拆分为训练集和测试集时,我得到了74%的准确率。
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
当我禁用shuffle功能时,准确率变得更差(49%)。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=False)
为什么会这样?应该使用哪种方法?
或者,有没有更好的方法来将时间序列数据集拆分为训练集和测试集?
回答:
正确的方法是保持时间顺序。50%的准确率在这个类型的数据上是合理的(即,你有50%的几率正确,50%的几率错误)。