我有一个小项目要做,在开始之前规划上遇到了一些困难。
我的数据库包括:船名、日期时间、纬度、经度,这些数据都是关于船只在时空中的移动轨迹的。
数据:https://www.dropbox.com/s/85a6nj3v19jw9b6/test.png?dl=0
在这种具有时间序列的情况下,您会使用哪种模型来预测船只的下一个目的地?船只进出港口的时刻呢?
我应该使用ARIMA模型还是机器学习算法?
最后一个问题:如果我没有港口名称,我如何根据位置观察手动定义港口?
我考虑过使用随机森林,但我想可能有更好的模型。
我很希望能有一些讨论和争论,看看不同的观点,谢谢!
回答:
可以把它想象成一个正弦波。要预测正弦波,你只需要几个之前的值就能预测未来的一个值。我会使用神经网络来处理时间序列,其中输入是值x、x-1、x-2等等,然后你可以用x+2的值来训练它。如果你能给我一些数据,我可以尝试验证这个说法。
编辑:
嗨,我回来了。我帮不了你太多。我检查了数据,看起来信息量太少,不足以用于神经网络。此外,数据的时间戳间隔差异很大。有趣的是,经度看起来像是一个完整的正弦波,但仅从一个正弦波你真的无法建立模型。我的策略是通过数据集中每个值的当前和之前的经度和纬度来训练神经网络。但即使是看数据集,我也已经怀疑它能否奏效。抱歉
这些是结果,但我怀疑它们的显著性:
黑色 – 原数据
绿色 – 预测数据
红色 – 原数据与预测数据之间的误差
预测经度向前100个样本
预测经度向前30个样本 – 看起来不错,但你真的不需要神经网络来做这个
附注:忽略数据集的最后一个值变为零。这是我程序中的一个缺陷。
附注2:如果你对用于时间序列的神经网络感兴趣,它们是多项式神经网络或HONU神经网络的一部分。
附注3:考虑只使用经度或纬度来建立模型。在这些数据中,我排除纬度后得到了更好的结果。