贝叶斯推断是概率编程中非常重要的一部分。而传统的贝叶斯推断涉及到复杂的数学分析,对没有雄厚的数学功底的同学来说,非常不友好。而本课程主要利用了 Python 中 PyMC 库,以一种简单且容易让人理解的方式讲述贝叶斯推断 。本课程包括了大量的实际案例,每一个实验在对知识点进行讲解后,都会引入一个实际案例来帮助同学们理解和学习贝叶斯推断,并且在对案例进行数据分析时,我们会进行大量的可视化操作,来方便同学们的学习与理解。
本课程首先介绍了贝叶斯推断的相关概念,然后对公式进行了推导,并且手工建立了一个贝叶斯模型用于推断出硬币为正面的概率,并对推断过程进行了可视化,如下所示:
接下来对 PyMC 基础使用进行了介绍,并且利用该工具包,在不用公式推导的情况下,完成了 用户短信行为变化的时间点的推断。并对变化点进行了可视化,得到变化的关系图如下:
在学习完基础的 PyMC 工具包后,我们首先使用它完成了“网站转换率评估”的实验,本实验通过贝叶斯算法计算出多个网站的转化率,并对这些转换率的后验分布进行了可视化操作,如下:
然后又用该工具包完成了 "基于隐私算法的学生作弊率推断"实例,该实例详细的阐述了传统调查问卷在涉及到隐私问题时,得到答案的不确定性和虚假性,并提出了一种隐私算法,用以得到较为真实的数据。然后利用计算机仿真技术对隐私算法进行模拟,最后利用贝叶斯推断得到该次考试学生的真实作弊率。
然后又利用该工具包实现了”基于正态分布的挑战者号事故发生推断“实例。通过贝叶斯推断找到飞船组件和温度之间的函数范围如下:
然后引入 95%置信区间的概念,找到较为合理的关系函数,最后利用该函数推断出,挑战者号发生事故的概率高达 90%。
在学习和理解完 PyMC 的用法后,我们接下来会学习贝叶斯推断的核心算法:马尔科夫链蒙特卡洛算法。在学完该算法后,完成了一个"混合模型的无监督聚类"实例。我们利用贝叶斯推断将一组数据合理的聚成了两个簇,结果如下:
在学习完马尔科夫链蒙特卡洛算法后,我们会学习大数定律并完成"Reddit 网站热点评论选取"实例。考虑以何种的指标来最好的描述评论的价值,并且阐述了所观测的好评率并非真正的好评率,最后利用贝叶斯推断求得真正的好评率,并得到最佳评论。可视化如下:
之后,会学习损失函数等相关知识点并且完成 ”价格竞猜游戏最佳策略选取“、”金融股票决策“ 和 Kaggle 官网上的一个暗物质比赛:”暗物质光晕位置预测“。在过程中,我们将会学习,损失函数意义和最小值的求法,如下:
我们在完成暗物质位置选取实验时,会学习比赛冠军的解决思路,并成功利用贝叶斯推断完成暗物质光晕位置的预测,如下:
当然除了上述这些实例外,我们还会学习 ”价格竞猜游戏最佳策略选取“、”金融股票决策“、”多臂老虎机策略选择“等实例。在实战中,加深我们对贝叶斯方法的数据分析的理解。