这是我在这里的第一个问题,我也是 Python 的新手(没有 CS 背景,我必须补充)!
我正在尝试实现三重指数平滑来进行预测。我的数据基于 AIS 数据,我特别关注 SOG(对地速度)值。我遵循的数学方法是三重指数平滑模型。
我仍然只遵循 Python 的基础知识,并且正在努力找出迭代部分。然而,我期望的是从 CSV(包括时间和 SOG)中读取数据并预测速度值,这样我就可以比较预测值和实际值。
这是我使用 atm 的示例/测试数据表。
我尝试对方程式部分进行编码(如下所示),我知道它非常草率。但我不想一无所有地来到这里。
alpha = 0.9
m = 3
def test(ssv_current, x_current, ssv_previous, dsv_previous, tsv_previous):
# ssv = single smoothing value (s'(t-1) and s'(t))
ssv_current = (alpha * x_current) + ((1 - alpha) * ssv_previous)
# dsv = double smoothing value (s''(t-1) and s''(t))
dsv_current = (alpha * ssv_current) + ((1 - alpha) * dsv_previous)
# tsv = triple smoothing value (s'''(t-1) and s'''(t))
tsv_current = (alpha * dsv_current) + ((1 - alpha) * tsv_previous)
at = (3 * ssv_current) - (3 * dsv_current) + tsv_current
bt = ((alpha ** 2) / (2 * ((1 - alpha) ** 2))) * (((6 - 5 * alpha) * ssv_current) - ((10 - 8 * alpha) * dsv_current)
+ ((4 - 3 * alpha) * tsv_current))
ct = ((alpha ** 2) / ((1 - alpha) ** 2)) * (ssv_current - (2 * dsv_current) + tsv_current)
ft = at + (m * bt) + (0.5 * (m ** 2) * ct) # mth predicted value at time t
我知道我的问题和代码看起来都很垃圾,但我期待从这个社区学习。我以前只使用过 MatLab,这里的任何提示都会对我有帮助。蒂亚!
编辑:我意识到我的帖子并没有传达我真正想要的东西。基本上,我希望代码一个接一个地读取速度值并遍历它并打印预测值。