0

我正在尝试使用我使用石榴的 python 来做一个 PageRank 程序。目前我sample()在石榴中的马尔可夫模型中的函数存在问题,这是我使用它的代码中的一个片段,

for each_page in pages:
        
        t_model = transition_model(corpus,each_page,damping_factor)

        cpt = []  #conditional probability table

        
        for next_page,transition_probabilities in t_model.items():
            if (each_page != next_page):
                cpt.append([each_page,next_page,transition_probabilities])

        #print(f'cpt = {cpt}\n')

        #define initial condition or starting probabilities, assuming all the pages are equally likely

        next_pages = list(t_model.keys())

        start = DiscreteDistribution({p:np.float64(1/len(next_pages)) for p in next_pages})

        #print(start)

        #define transitions

        transitions = ConditionalProbabilityTable(cpt,[start])

        model = MarkovChain([start,transitions])

        print("sampling...\n",model.sample(n))

        return model.sample(n)

正如标题所暗示的,解释器会抛出一个值错误 sum(pvals[:-1]) > 1.0,说明 line model.sample()

我将花时间强调一个事实,即所有概率都被归一化并且总和为 1,包括转换模型中的概率

任何帮助将不胜感激

4

0 回答 0