贝叶斯思维 统计建模的python_《贝叶斯思维:统计建模的Python学习法》--第3章Estimation(估计)介绍...

原文我发表于天善智能

第1、2章主要讲似然函数怎么编写,先验概率使用均匀分布,但实际问题往往更复杂,先验概率可能也很复杂,

这章主要用火车头的示例说了先验概率怎么使用幂律分布预估,并且讲到点估计和区间估计。

具体还是看示例:

示例1:骰子问题,

骰子问题主要用来总结了第1、2章说的通用方法论:

示例的具体表述:有多个面的骰子,随机拿了一个,扔了多次,最可能的骰子是哪一个。

这个示例和先前的几个示例解题方法基本一样,先验概率使用均匀分布,主要讨论似然度怎么计算,也就是似然函数怎么编写。

通用的一般的方法是:

1.选择假设的表示方法

2.选择数据的表示方法

3.编写似然函数

class Dice(Suite):

def Likelihood(self, data, hypo):

if hypo < data:

return 0

else:

return 1.0/hypo

使用即可

for roll in [6, 8, 7, 7, 5, 4]:

suite.Update(roll)

示例2:火车头问题

这个示例的不同点是似然度和示例1一样,但是先验概率就不能使用均匀分布了,

按以往情况可以使用幂律(Posterior distribution based on a power law prior,

compared to a uniform prior)

class Train(Dice):

def __init__(self, hypos, alpha=1.0):

Pmf.__init__(self)

for hypo in hypos:

self.Set(hypo, hypo**(-alpha))

self.Normalize()

2种分布的结果

最后的结果也比较收敛:

置信区间:

由于火车头的上限是不固定的,示例2开始的时候使用了1000的上限假设,实际上需要提供置信区间才能更好的描述问题:

提供了一个新的功能 Cumulative distribution functions(累计分布函数)来解决这个问题:

cdf = suite.MakeCdf()

interval = cdf.Percentile(5), cdf.Percentile(95)

print(interval

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
贝叶斯思维 统计建模Python学习》帮助那些希望用数学工具解决实际问题的人们,仅有的要求可能就是懂一点概率知识和程序设计。而贝叶斯是一种常见的利用概率学知识去解决不确定性问题的数学方,对于一个计算机专业的人士,应当熟悉其应用在诸如机器翻译,语音识别,垃圾邮件检测等常见的计算机问题领域。 可是《贝叶斯思维 统计建模Python学习》实际上会远远扩大你的视野,即使不是一个计算机专业的人士,你也可以看到在战争环境下(二战德军坦克问题),律问题上(肾肿瘤的假设验证),体育博彩领域(棕熊队和加人队NFL比赛问题)贝叶斯的威力。怎么从有限的信息判断德军装甲部队的规模,你所支持的球队有多大可能赢得冠军,在《龙与地下城》勇士中,你应当对游戏角色属性的很大值有什么样的期望,甚至在普通的彩弹射击游戏中,拥有一些贝叶斯思维也能帮助到你提高游戏水平。 除此以外,《贝叶斯思维 统计建模Python学习》在共计15的篇幅中讨论了怎样解决十几个现实生活中的实际问题。在这些问题的解决过程中,作者还潜移默化的帮助读者形成了建模决策的方论,建模误差和数值误差怎么取舍,怎样为具体问题建立数学模型,如何抓住问题中的主要矛盾(模型中的关键参数),再一步一步的优化或者验证模型的有效性或者局限性。在这个意义上,这本书又是一本关于数学建模的成功样本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值