该怎么用代码绘制出后验分布图像?

部分代码如下:

img


请问该怎么写代码才能绘制出关于p的后验分布图像?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7517476
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:p站多线程下载视频
  • 除此之外, 这篇博客: 写个爬虫爬取p站画师的画作中的 1.函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    代码如下(示例):

    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    
    
    def worm(temp):
        cards = []
        url = "http://acg17.com/category/meitu/pixiv-painter/page/{:d}/".format(temp)
        html = urlopen(url)
        bsObj = BeautifulSoup(html.read(), features='html.parser')
        for pic in bsObj.findAll('article'):
            url2 = pic.a['href']
            html2 = urlopen(url2)
            bsObj2 = BeautifulSoup(html2.read(), features='html.parser')
            for photo in bsObj2.findAll('p'):
                if photo.img != None:
                    if photo.img['src'][24] == 'l':
                        break
                    elif photo.img['src'][-3:] == 'gif':
                        pass
                    else:
                        cards.append(photo.img['src'])
            for card in cards:
                print(card)
    for i in range(10, 20):
        print("这是第{:d}页的本子  (*∩_∩*)′ 献上 ".format(i))
        worm(i)
        print("\n")
    print("所有的本子都爬好了哦  得意 <( ̄︶ ̄)>")
    
  • 以下回答来自chatgpt:

    针对您的问题,我可以给出以下解决方案:

    import numpy as np
    import matplotlib.pyplot as plt
    
    def posterior_distribution(prior_distribution, likelihood, evidence):
        # 计算似然函数
        likelihood_func = prior_distribution * likelihood
        # 计算归一化常量Z
        Z = np.sum(likelihood_func)
        # 计算后验概率
        posterior = likelihood_func / Z
        return posterior
    
    prior = np.array([.2, .2, .2, .2, .2])
    likelihood = np.array([.3, .6, .8, .9, 1.])
    evidence = .7
    
    posterior = posterior_distribution(prior, likelihood, evidence)
    
    # 绘制并显示后验分布图像
    plt.plot(posterior)
    plt.title('Posterior Distribution')
    plt.xlabel('Parameter p')
    plt.ylabel('Probability')
    plt.show()
    

    在以上代码中,我添加了计算后验分布以及绘制后验分布图像的代码。在posterior_distribution函数中,首先计算了似然函数,然后计算了归一化常量Z,最后得到了后验概率。在绘制后验分布图像时,使用了Matplotlib库的plot方法来绘制折线图,使用title方法添加标题,使用xlabelylabel方法添加x轴和y轴的标签,最后使用show方法显示图像。

    需要注意的是,在绘制图像前需要先调用posterior_distribution函数计算后验概率。此外,该代码中的概率分布都是离散的,因此绘制的是离散的后验分布折线图。如果需要绘制连续的概率分布曲线,可以考虑使用KDE方法(Kernel Density Estimation)。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^