1. 序列预测介绍
序列预测就是根据过去的序列数据(比如时间顺序的数据),预测未来的结果。
• 单步预测:只预测下一个时刻的值。比如根据前7天的气温,只预测第8天的气温。
• 多步预测的2种方式:
◦ 递归式:先预测下一个值,再把这个预测值当实际值,继续预测后面的值。比如用前7天预测第8天,再用第5-8天(其中第8天是预测的)预测第9天。
◦ 直接式:一次性预测出未来多个值。比如根据前7天,直接同时预测第8、9、10天的气温。
2. 序列数据的处理:滑动窗口
把连续的序列数据切成一个个小片段(窗口),每个窗口包含固定数量的历史数据,用来预测后面的值。
比如有数据[1,2,3,4,5,6],窗口大小设为3,滑动步长1,就会得到窗口[1,2,3]预测4、[2,3,4]预测5、[3,4,5]预测6,这样能把序列数据变成适合模型学习的样本。
3. 多输入多输出任务的思路
指输入是多个序列数据,同时要输出多个序列结果。
思路是让模型同时学习多个输入和输出之间的关系,比如用温度、湿度、风速(多输入)同时预测未来的温度、降雨量(多输出),模型在训练时会综合考虑所有输入对所有输出的影响。
4. 经典机器学习在序列任务上的劣势(以随机森林为例)
• 不擅长捕捉序列的时间依赖关系:随机森林处理的是独立样本,无法理解数据的先后顺序(比如今天的气温和昨天的关联)。
• 固定输入长度:需要用滑动窗口把序列切成固定长度的样本,无法灵活处理不同长度的序列。
• 忽略长期依赖:对于间隔较远的重要信息(比如上个月的 rainfall 影响这个月的作物生长),很难有效学习到。