对比方法HG-prediction代码调试
2024-09-06 17:06:07
背景
给定了xslx格式的血糖数据(列为病人编号,时间,血糖值,每个病人一个文件,有大量文件),要在HG-predicition代码中运行该数据集。
数据预处理
通过阅读代码,可知该方法使用的是pkl格式的数据,并提供了一个convert-data方法,来把字典格式的pkl数据转为代码处理所需的单维向量格式的pkl数据。
首先把xslx格式的数据统一合并到一个csv格式的文件中(因为超过了xlsx的行数上限)。
然后转为字典格式的pkl数据。
1 | if __name__ == '__main__': |
原始数据没有聚类标签,正好可以使用代码提供的judge_label
函数判断,注意这里单位不同,要把70
改为7
。
提示空数组错误
在更改了数据格式之后,发现pkl_to_X_y
函数读不到数据,而这一段代码会跳过不符合要求的数据。
1 | if ignore_NA is True: |
因此考虑到是否是因为什么原因导致数据不符合要求,发现对于下面这段代码
1 | b_time_steps = [sec - i * 300 for i in reversed(range(0, blen))] |
其数据间隔5分钟,而现在要使用的数据间隔为15分钟,更改为900
就可以运行。
概念学习
之前没有了解过时序数列预测的深度学习算法,这里学到了几个概念:
1.预测长度
“forecast length”:预测长度
“backcast length”:回溯长度
- Forecast Length:这是指模型需要预测未来的时间步长的数量。
- Backcast Length:这是指在训练模型时,用于估计模型参数的历史数据的时间步长的数量。Backcast length 用于确定模型在进行预测之前需要观察多少历史数据。
2.度量指标
MSE:预测值与实际值之差的平方的平均值。
RMSE:是MSE的平方根,和原数据同一个指标。
MAE:预测值与实际值之差的绝对值的平均值。
3.早停策略
patience
为连续多少次loss不下降后,就终止学习。