《贝叶斯思维:统计建模的Python学习法》——第2章 统计计算 2.1 分布-阿里云开发者社区

开发者社区> 异步社区> 正文

《贝叶斯思维:统计建模的Python学习法》——第2章 统计计算 2.1 分布

简介:
+关注继续查看

本节书摘来异步社区《贝叶斯思维:统计建模的Python学习法》一书中的第2章,第2.1节,作者:【美】Allen B. Downey,更多章节内容可以访问云栖社区“异步社区”公众号查看

第2章 统计计算

贝叶斯思维:统计建模的Python学习法

2.1 分布

在统计上,分布是一组值及其对应的概率。

例如,如果滚动一个六面骰子,可能的值是数字1至6,与每个值关联的概率是1/6。

再举一个例子,你应该有兴趣了解在日常的英语使用中每个单词出现的次数。你可以建立一个包含每个字及它出现的次数的分布。

为了表示Python中的分布,可以使用一个字典映射某个值和它的概率。我编写了一个名为Pmf的类,利用Python字典实现了上述功能,而且提供了一些有用的方法。为了对应概率质量函数这种分布的数学表示法,我将其命名为Pmf。

Pmf的定义在一个我为本书完成的Python模块thinkbayes.py中。可以从thinkbayes.com/thinkbayes.py下载。欲了解更多信息参见前言的“代码指南”。

要使用Pmf,可如下导入:

from thinkbayes.py  import  Pmf```
下面的代码建立一个Pmf来表示六面骰子的结果分布:

pmf = Pmf()
for x in [1,2,3,4,5,6]:

pmf.Set(x,1/6.0)```

Pmf创建一个空的没有赋值的pmf。Set方法设置每个值的概率为1/6。

这里是另一个例子,计算每个单词在一个词序列中出现的次数:

pmf = Pmf()
for word in word_list:
    pmf.Incr(word, 1)```
Incr为每个单词的相应“概率”加1。如果一个词还没有出现在Pmf中,那么就将这个词添加进去。

我把“概率”加上引号是因为在这个例子中概率还没有归一化,也就是说它们的累加和不是1,因此不是真正的概率。但在本例中单词计数与概率成正比。所以当完成了所有的计数,就可以通过除以计数的总值来计算得到概率。

Pmf提供了一种Normalize方法来实现上述功能:

pmf.Normalize()`
一旦有一个Pmf对象,你可以像下面这样得到任何一个值相关联的概率:

print pmf.Prob('the')```
这会打印输出单词“the”在词序列中出现的频率。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
学习准备(下):计算机基础 | Python从入门到精通:入门篇之二
本章节继续讲授关于计算机基础的课程,包括进制、Python编辑器的安装以及编码方式等。
5109 0
应用留数定理计算实积分 $\dps{I(x)=\int_{-1}^1\frac{\rd t}{\sqrt{1-t^2}(t-x)}\ (|x|>1,x\in\bbR)}$ [华中师范大学2010年复变函数复试试题]
应用留数定理计算实积分 $\dps{I(x)=\int_{-1}^1\frac{\rd t}{\sqrt{1-t^2}(t-x)}\ (|x|>1,x\in\bbR)}$ [华中师范大学2010年复变函数复试试题]     解答: $$\beex \bea I(x)&=\int_{-1}^1 ...
1277 0
带你读《Java程序设计与计算思维》之二:认识数据处理与表达式
程序设计的过程就是一种计算思维的表现,《Java程序设计与计算思维》结合Java程序设计语言的教学特点,遵循计算思维的方式,图解重要概念,通过大量的范例程序讲解和上机编程实践来指导读者活用Java程序语法,兼顾培养计算思维和学习面向对象程序设计的双目标。
505 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载