贝叶斯决策实例#1

贝叶斯决策经典实例————红绿球问题

假设有两个各装了100个球的箱子,甲箱子中有70个红球,30个绿球,乙箱子中有30个红球,70个绿球。假设随机选择其中一个箱子,从中拿出一个球记下球色再放回原箱子,如此重复12次,记录得到8次红球,4次绿球。问题来了,你认为被选择的箱子是甲箱子的概率有多大?

python实现如下

def bayesianfunc(pIsBox1, pBox1, pBox2): #pIsBox1表示为甲箱,pBox1/2表示甲/乙箱中的信息
    return ((pIsBox1 * pBox1)/(pBox1 * pIsBox1 + pBox2*(1 - pIsBox1)))
    
def RedGreenBallproblem():
    pIsBox1 = 0.5
#对pIsBox1进行8次红球修正
    for i in range(1,9):
        pIsBox1 = bayesianfunc(pIsBox1, 0.7, 0.3)
        print ("拿到 %d 个球是红球,则选择的箱子是甲箱的概率为:%f" %(i, pIsBox1))
 #对pIsBox1进行4次绿球修正
    for i in range(1,5):
        pIsBox1 = bayesianfunc(pIsBox1, 0.3, 0.7)
        print ("拿到 %d 个球是绿球,则选择的箱子是甲箱的概率为:%f" %(i, pIsBox1))

RedGreenBallproblem()

程序结果

拿到 1 个球是红球,则选择的箱子是甲箱的概率为:0.700000
拿到 2 个球是红球,则选择的箱子是甲箱的概率为:0.844828
拿到 3 个球是红球,则选择的箱子是甲箱的概率为:0.927027
拿到 4 个球是红球,则选择的箱子是甲箱的概率为:0.967365
拿到 5 个球是红球,则选择的箱子是甲箱的概率为:0.985748
拿到 6 个球是红球,则选择的箱子是甲箱的概率为:0.993842
拿到 7 个球是红球,则选择的箱子是甲箱的概率为:0.997351
拿到 8 个球是红球,则选择的箱子是甲箱的概率为:0.998863
拿到 1 个球是绿球,则选择的箱子是甲箱的概率为:0.997351
拿到 2 个球是绿球,则选择的箱子是甲箱的概率为:0.993842
拿到 3 个球是绿球,则选择的箱子是甲箱的概率为:0.985748
拿到 4 个球是绿球,则选择的箱子是甲箱的概率为:0.967365

最后算出为甲箱的概率为:96.7365%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值