哪种类型的机器学习算法更适合根据以前的访问预测船舶的下一个目的地?

What type of machine learning algorithm is more suitable for predicting next destination of a ship based on previous visits?

我正在研究机器学习算法,以研究哪种算法更适合解决此类问题。

问题: 有可用的船舶航行历史(可以作为训练数据),根据这些我们需要预测下一个目的地是哪个港口。 我仍然不确定这可以归类为哪种类型的问题,以及哪些算法最适合入手(贝叶斯网络、神经网络、决策树等)

取决于初始数据集中的内容。如果它只是停靠港口的历史,也许使用 Q-learner 之类的东西构建马尔可夫链将是你最好的选择。如果您有补充日期(货物类型、季节等)决策树将是一个不错的选择。对于这种类型的数据集,我会远离神经网络。

需要注意的一件事是,这种类型的数据很容易过度拟合,因此您的模型可能只是在给定日期的情况下学习船只的名称及其对应的路线。它会在您的原始设置上为您提供完美的结果,但完全无法预测未来的路线。

为了避免过度拟合,我会使用特征。试着把日期分解成更粗略的东西(比如夏天/秋天),去掉任何太具体的东西(船名)。

我强烈建议您使用隐马尔可夫模型或递归神经网络(如 LSTM 或 GRU)。这些模型可能比设计用于处理静态(非顺序)输入的算法更好地捕获数据的顺序规律性。我会首先尝试学习 HMM,因为通常如果它能很好地捕捉分布需求,那么从数据中提取知识和见解比从 RNN 中提取要容易得多。 HMM 的另一个优点是使用您对数据的先验知识设计模型相对容易。如果 HMM 的结果不能让你满意,那么试试 RNN。它们在表达能力方面要强大得多,但它是黑盒模型的经典示例。很难检查您的网络真正学到了什么并从数据中获得更多见解。但如果你真正关心的是准确性,那么试试 RNN。他们真的很强大。

更新: 由于可能对预测有用的其他信息,我还建议您考虑混合使用马尔可夫模型和贝叶斯推理。在这种情况下,您可以构建您的马尔可夫模型,其中每个状态都代表一个港口,但您下一次转移的概率分布不仅取决于您当前正在访问的港口,还取决于您拥有的其他信息。在这种情况下,工作流程如下:

  1. 首先,您尝试通过设置由一组参数 theta 参数化的分布族来模拟状态转换和附加信息之间的依赖关系。
  2. 在建模阶段之后,您正在尝试通过贝叶斯推理和 EM 算法来推断参数的最佳值。

有使用此类模型的示例,例如here 但通常取得成功取决于对模型当前状态和其他信息之间依赖关系的良好建模。