缩略图

贝叶斯公式图解及计算机模拟验证

作者

姜秋明 王妍婷 李小敏

湖北工业职业技术学院 湖北十堰 442000

摘要:贝叶斯公式是学生在概率论学习中的难点,也是痛点。本文用图解的方法直观呈现了公式计算的结果,是突破此难点的一个有益的尝试。引入信息技术,用Mathematica程序模拟实验,验证计算结果,可以帮助学生理解概率计算的本质——它是大量重复实验“均值回归”值,同时也提高学生学习的兴趣。本文选用“垃圾邮件处理”的例子,对高职学生难度适中,实用性强,是一个很好的教学素材。

关键词:贝叶斯公式,垃圾邮件处理,概率实验,Mathematica编程

一、问题提出

为设计一个高效精准的垃圾邮件判定程序,先要收集足够多的邮件进行汇总统计,统计的部分结果如下:

1.正常邮件占80%,垃圾邮件占20%。

2.垃圾邮件中出现敏感词“中奖”的概率为17%,正常邮件是1%。

设定80%概率以上是垃圾邮件要作标记或拒收,如果程序抓取到邮件中有敏感词“中奖”,程序是否进行处理呢?

二、问题分析与公式求解

此问题的关键是概率计算,就是要计算出现敏感词“中奖”的情况下,是垃圾邮件的概率是多少。这就要用到贝叶斯公式,贝叶斯公式本身是条件概率定义的扩展,但强调先验与后验的转化,而非单纯计算(P(A|B))。其核心在于利用新信息动态更新概率,而非静态描述事件关系。贝叶斯公式及求解过程如下:

1. 定义事件

设事件A表示“邮件是垃圾邮件”,事件B表示“邮件是正常邮件”,事件C表示“邮件中出现敏感词‘中奖’”。根据已知条件有:

P(A)=0.2,

P(B) = 0.8,

P(C|A)=0.17(在垃圾邮件中出现“中奖”敏感词的概率),

P(C|B)=0.01(在正常邮件中出现“中奖”敏感词的概率)。

2. 根据全概率公式(贝叶斯公式分母部分),求邮件中出现“中奖”敏感词的概率P(C)

3. 根据贝叶斯公式,即(1)式,求解出现了“中奖”敏感词是垃圾邮件的概率P(A|C)

当邮件中出现敏感词“中奖”时,该邮件是垃圾邮件的概率大于80%,所以程序需要进行处理。

二、贝叶斯公式图解

根据本人的教学经验,很多学生能硬套公式把以上结果求解出来,但是其中大部分不能理解贝叶斯公式的含义,怎么样才能让学生理解呢?答案是用图形求解出来,这里的图形指的是集合维恩(Venn)图,集合 Venn 图是一种用封闭曲线(通常是圆形或椭圆形)来直观表示集合以及集合之间关系的图形工具。此处用矩形封闭曲线更方便些,图解如图1所示。

图1中,边长为1的大正方形是全集,灰色部分及上面黑色部分是垃圾邮件集合A,白色部分及上面黑色部分是正常邮件集合B,所有的黑色部分是含有“中奖”敏感词邮件的集合C,它们分布在垃圾邮件与正常邮件里,占有的比例的多少就是两块黑色区域的面积大小。

公式求解的结果,用图解如下:

全概率公式计算,即(2)式,算的是黑色区域的总面积,两块面积的和为0.42。

贝叶斯公式计算,即(3)式,算的是灰色上方黑色区域面积在黑色区域总面积中的占比,结果约为0.81。

二、模拟验证计算结果

前面的计算结果,其实是一种预判,那它真实有效值得信赖吗?设计一个小程序模拟生成邮件,是可以验证上述计算结果的。

1.按17 % 比例出现 "中奖",生成100份垃圾邮件子样本,数组{0,1}中第一位都是“0”,表示是垃圾邮件,第二位“1”表示是有“中奖”敏感词,“0”表示没有。

2.按1 % 比例出现 "中奖",生成100份正常邮件子样本,数组{1,1}第一位都是“1”,表示是正常邮件,第二位“1”表示是有“中奖”敏感词,“0”表示没有。

3.从垃圾邮件子样本中,随机抽取2000份,再从正常邮件子样本中随机抽取8000份,生成10000份邮件样本,统计垃圾邮件及正常邮件中“中奖”邮件出现的频次。

4.重复第3步100次,并生成概率统计图表。

上述步骤用Mathematica 11.0编程实现如下:

输出结果生成图表,如图2所示,100次实验数据绕0.81的理论值上下波动,理论概率就是实验结果的“均值回归”值,理论计算结果得到了验证。

参考文献:

[1] 徐艳娇,许宏文,新课标下高中数学中贝叶斯公式及其应用的图解法,《数理化学习(高中版)》,2024年.04期.

[2] 陈立雯,挖掘数学思想 优化教学设计——以“全概率公式和贝叶斯公式”教学设计为例,理科考试研究.2024(17).

[3][美]Cliff Hastings等,Wolfram Mathematica实用编程指南[M].北京:科学技术出版社2018:141-160.

[4]沈恒范,概率论与数理统计教程[M].北京:高等教育出版社,1995:12-28.