问题描述
我有一个数据集,其中包含通过URI表示的数据。我想对可以根据我的顺序数据预测数据样本的前继和后继的数据建模。数据集如下所示:
例如给定“ 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