《贝叶斯思维:统计建模的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中。可以从http://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”在词序列中出现的频率。

Pmf使用Python字典来存储值及其概率,所以Pmf中的值可以是任意可被哈希的类型。概率可以是任意数值类型,但通常是浮点数(float类型)。

相关文章
|
1月前
|
Python
【10月更文挑战第10天】「Mac上学Python 19」小学奥数篇5 - 圆和矩形的面积计算
本篇将通过 Python 和 Cangjie 双语解决简单的几何问题:计算圆的面积和矩形的面积。通过这道题,学生将掌握如何使用公式解决几何问题,并学会用编程实现数学公式。
164 60
|
1月前
|
Python
Datetime模块应用:Python计算上周周几对应的日期
Datetime模块应用:Python计算上周周几对应的日期
|
22天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
54 3
|
1月前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
41 3
|
1月前
|
Python
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
64 1
|
1月前
|
机器学习/深度学习 移动开发 Python
【10月更文挑战第11天】「Mac上学Python 22」小学奥数篇8 - 排列组合计算
本篇将通过 Python 和 Cangjie 双语讲解如何计算排列与组合。这道题目旨在让学生学会使用排列组合公式解决实际问题,并加深对数学知识和编程逻辑的理解。
65 4
|
1月前
|
数据可视化 Python
【10月更文挑战第12天】「Mac上学Python 23」小学奥数篇9 - 基础概率计算
本篇将通过 Python 和 Cangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。
51 1
|
1月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
44 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
73 10
|
1月前
|
数据挖掘 iOS开发 MacOS
利用Python计算农历日期
利用Python计算农历日期
下一篇
无影云桌面