我在使用MATLAB通过机器学习方法来预测一个趋势。
我的数据文件是一个.xlsx文件,其中一列包含时间线(各种采样时间戳,即代表秒的数字),其他列中则包含一些整数表示我的趋势。
我的.xlsx文件大致如下:
0,0100 | 00,0110 | 10,0135 | 5
依此类推。
我使用“|”来区分列。采样时间是不规则的。
给定从10个连续时间戳中取出的10个趋势值,我希望预测第11个值在给定时间戳的值。例如,如果第9个值在34,010秒,第10个值在34,568秒,我希望知道37,431秒的值。
我该如何做呢?
我找到了这个链接:使用深度学习进行时间序列预测,但那里的采样时间是规则的。
我应该插值我的趋势值并以恒定采样时间重新采样吗?
回答:
我会将预测问题与数据采样时间问题区分开来。你实际上是在处理缺失数据的问题。
-
预测问题:你可以使用任何机器学习技术,忽略缺失数据。如果你对机器学习不熟悉,我建议你使用LASSO(最小绝对收缩和选择算子),它已被证明具有预测能力(参见ALEX CHINCO、ADAM D. CLARK-JOSEPH和MAO YE的“Sparse Signals in the Cross-Section of Returns”)。
-
缺失数据填补问题:首先,你应该考虑为什么会有缺失数据。有时候填补值没有意义,因为值缺失本身的信息很重要,不应被覆盖。否则,除了线性插值外,你还有多种选择来估计缺失值。例如,检查MATLAB函数
fillmissing
。