基于船舶之前的访问记录,预测其下一目的地的最适合的机器学习算法类型是什么?

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

问题:有船舶航行历史数据可用(可作为训练数据),基于这些数据,我们需要预测船舶的下一个目的港。我还不确定这类问题应该归为哪种类型,以及应该从哪些算法开始尝试(如贝叶斯网络、神经网络、决策树等)。


回答:

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

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

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

使用此类模型的例子可以在这里找到,但通常取得成功取决于对模型当前状态与额外信息之间依赖关系的良好建模。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注