如何在Python中为字符串数据建立Markov决策过程模型?

问题描述

我有一个数据集,其中包含通过URI表示的数据。我想对可以根据我的顺序数据预测数据样本的前继和后继的数据建模。数据集如下所示:

Sequential Dataset

例如给定“ HTTP://example.com/112”,模型将生成“ HTTP://example.com/296”作为前任,并生成“ HTTP://example.com/322”作为后继。 我想为此数据集构建一个马尔可夫决策过程模型,以获得上述结果。如果有人可以帮助我找到适合Python的软件包,那就太好了。我检查了“ hmmlearn”程序包,可以使用该程序包实现隐藏的Markov模型。但是我的数据没有隐藏状态。另外,我不确定是否应该将这些数据转换为数值数据,然后能够建立马尔可夫模型。

提前谢谢!

解决方法

如果没有隐藏状态,则您具有马尔可夫链。它们并不难独自实现,但是如果您想要一个图书馆,那么这里就有石榴:

from pomegranate import MarkovChain
#say you have two sequences of clicks:
sequences = [['uri1','uri5','uri3','uri5'],['uri2','uri1','uri2']]
model = MarkovChain.from_samples(sequences)

学习的过渡概率:

print(model.distributions[1])
uri5    uri5    0.0
uri5    uri3    1.0
uri5    uri1    0.0
uri5    uri2    0.0
uri3    uri5    0.5
uri3    uri3    0.0
uri3    uri1    0.5
uri3    uri2    0.0
uri1    uri5    0.5
uri1    uri3    0.0
uri1    uri1    0.0
uri1    uri2    0.5
uri2    uri5    0.0
uri2    uri3    1.0
uri2    uri1    0.0
uri2    uri2    0.0