python - 使用 timeseriessplit 函数拆分时间序列数据
问题描述
我正在处理来自不同传感器的时间序列数据。我的数据 35k 行 × 12 列(11 个特征 + 1 个目标列)。由于我的数据的时间序列性质。洗牌操作会产生偏差,因为模型可以在训练阶段看到未来的数据。这就是为什么我不想洗牌我的数据。首先,我尝试在 train_test_split 函数中使用 shuffle=False 参数。但是我的数据集不平衡,这就是为什么我的验证损失不能减少的原因,在每个试验和时期它开始增加。
在第二个选项中,我决定使用 TimeSeriesSplit 函数而不是 train_test_split。并使用以下代码片段:
from sklearn.model_selection import TimeSeriesSplit
tss = TimeSeriesSplit(n_splits = 5)
for train_index, test_index in tss.split(X):
X_train, X_test = X[train_index, :], X[test_index,:]
y_train, y_test = y[train_index], y[test_index]
但是,当我在拟合 LSTM 模型后检查训练结果时,我的验证损失又增加了?
我是否错误地使用了索引内容,还是需要实现不同的嵌套循环?
解决方案
推荐阅读
- excel - 引用数据透视表中的文本字段
- json - 我不能终生禁用 VS Code 的斜体
- python - 如何使用 python 获取当前更新的浏览器历史记录?
- java - com.fasterxml.jackson.databind.exc.InvalidTypeIdException:无法将类型 id '[' 解析为子类型
- javascript - 单击清除按钮后reactjs清除日期输入
- java - 基于http方法SpringBoot的显示字段
- flutter - 我应该将多块提供程序与多块侦听器一起使用吗?
- twitter-bootstrap - Bootstrap data-toggle 与 data-bs-toggle 属性有什么区别?
- c - 在变量和指针中使用 const 的区别
- wpf - 当 IsLabelCullingEnabled 为 true 时,始终显示第一个刻度标签