机器学习_朴素贝叶斯公式解读_多项式分布

朴素贝叶斯公式

P(y∣x)=P(y)⋅P(x∣y)P(x)P(y|x) = \cfrac{P(y) \cdot P(x|y)}{P(x)}P(y∣x)=P(x)P(y)⋅P(x∣y)

  • xxx:代表特征,可以有多个特征,每个特征代表当前特征出现的次数

  • P(y)P(y)P(y):类别的先验概率

  • P(x∣y)P(x|y)P(x∣y):针对每一个类别 ,记录每一个特征出现的概率

  • P(y∣x)P(y|x)P(y∣x):每个类别的后验概率,选择后验概率最大的类别作为预测结果

详细计算过程

准备训练数据

邮件编号 邮件内容 类别(标签)
1 win win win click here Spam(垃圾邮件)
2 click click win prize Spam(垃圾邮件)
3 meeting report tomorrow Ham(正常邮件)
4 report report meeting Ham(正常邮件)

构建全局词表

将全部邮件内容中的词汇去重,然后进行排列

词表=click,here,meeting,prize,report,tomorrow,win词表=click, here, meeting, prize, report, tomorrow, win词表=click,here,meeting,prize,report,tomorrow,win

将每封邮件转成"词频向量"

  • 邮件1(win win win click here)

    • click:1, here:1, meeting:0, prize:0, report:0, tomorrow:0, win:3

    • 向量 → 1, 1, 0, 0, 0, 0, 3

  • 邮件2(click click win prize)

    • click:2, here:0, meeting:0, prize:1, report:0, tomorrow:0, win:1

    • 向量 → 2, 0, 0, 1, 0, 0, 1

  • 邮件3(meeting report tomorrow)

    • click:0, here:0, meeting:1, prize:0, report:1, tomorrow:1, win:0

    • 向量 → 0, 0, 1, 0, 1, 1, 0

  • 邮件4(report report meeting)

    • click:0, here:0, meeting:1, prize:0, report:2, tomorrow:0, win:0

    • 向量 → 0, 0, 1, 0, 2, 0, 0

拉普拉斯平滑

词表大小 = 7,平滑后每个类别的"总词数"要加上词表大小。

  • Spam平滑总词数 = 9 + 7 = 16

  • Ham平滑总词数 = 6 + 7 = 13

计算条件概率

  • 对于垃圾邮件类别,统计每个特征出现的次数/平滑总词数

特征1(click):P(click∣垃圾邮件)=3+116=0.25P(click|垃圾邮件)=\cfrac{3+1}{16}=0.25P(click∣垃圾邮件)=163+1=0.25

特征2(here):P(here∣垃圾邮件)=1+116=0.125P(here|垃圾邮件)=\cfrac{1+1}{16}=0.125P(here∣垃圾邮件)=161+1=0.125

特征3(meeting):P(meeting∣垃圾邮件)=0+116=0.0625P(meeting|垃圾邮件)=\cfrac{0+1}{16}=0.0625P(meeting∣垃圾邮件)=160+1=0.0625

特征4(prize):P(prize∣垃圾邮件)=1+116=0.125P(prize|垃圾邮件)=\cfrac{1+1}{16}=0.125P(prize∣垃圾邮件)=161+1=0.125

特征5(report):P(report∣垃圾邮件)=0+116=0.0625P(report|垃圾邮件)=\cfrac{0+1}{16}=0.0625P(report∣垃圾邮件)=160+1=0.0625

特征6(tomorrow):P(tomorrow∣垃圾邮件)=1+116=0.125P(tomorrow|垃圾邮件)=\cfrac{1+1}{16}=0.125P(tomorrow∣垃圾邮件)=161+1=0.125

特征7(win):P(win∣垃圾邮件)=4+116=0.3125P(win|垃圾邮件)=\cfrac{4+1}{16}=0.3125P(win∣垃圾邮件)=164+1=0.3125

  • 对于正常邮件类别,统计每个特征出现的次数/平滑总词数

特征1(click):P(click∣垃圾邮件)=0+113=0.077P(click|垃圾邮件)=\cfrac{0+1}{13}=0.077P(click∣垃圾邮件)=130+1=0.077

特征2(here):P(here∣垃圾邮件)=0+113=0.077P(here|垃圾邮件)=\cfrac{0+1}{13}=0.077P(here∣垃圾邮件)=130+1=0.077

特征3(meeting):P(meeting∣垃圾邮件)=2+113=0.0231P(meeting|垃圾邮件)=\cfrac{2+1}{13}=0.0231P(meeting∣垃圾邮件)=132+1=0.0231

特征4(prize):P(prize∣垃圾邮件)=0+113=0.077P(prize|垃圾邮件)=\cfrac{0+1}{13}=0.077P(prize∣垃圾邮件)=130+1=0.077

特征5(report):P(report∣垃圾邮件)=3+113=0.308P(report|垃圾邮件)=\cfrac{3+1}{13}=0.308P(report∣垃圾邮件)=133+1=0.308

特征6(tomorrow):P(tomorrow∣垃圾邮件)=1+113=0.154P(tomorrow|垃圾邮件)=\cfrac{1+1}{13}=0.154P(tomorrow∣垃圾邮件)=131+1=0.154

特征7(win):P(win∣垃圾邮件)=0+113=0.077P(win|垃圾邮件)=\cfrac{0+1}{13}=0.077P(win∣垃圾邮件)=130+1=0.077

整理成条件概率表P(x∣y)P(x|y)P(x∣y)

特征 P(特征|垃圾邮件) P(特征|正常邮件)
click 0.25 0.077
here 0.125 0.077
meeting 0.0625 0.231
prize 0.125 0.077
report 0.0625 0.308
tomorrow 0.0625 0.154
win 0.3125 0.077

模型计算过程

若存在以下新的样本数据:win win click report,转换为向量1,0,0,0,1,0,21, 0, 0, 0, 1, 0, 21,0,0,0,1,0,2,需要计算这个新的样本数据属于哪个类别。特别需要注意是,每个特征值代表的是这个特征出现的次数,而每个特征出现一次的频率为P(x∣y)P(x|y)P(x∣y),所以若是某个特征出现了kkk次,则P(x=k∣y)=P(x∣y)kP(x=k|y)=P(x|y)^kP(x=k∣y)=P(x∣y)k

  • P(y)=P(垃圾邮件)=24=0.5P(y) = P(垃圾邮件) = \cfrac{2}{4} = 0.5P(y)=P(垃圾邮件)=42=0.5

  • 在朴素贝叶斯中,前提性假设特征之间是相互独立的,所以该样本数据为垃圾邮件的概率为

    P(y∣x)=P(y)P(x∣y)P(x)=P(y)P(x1,x2,x3,x4,x5,x6,x7∣y)P(x)=P(y)P(x1∣y)P(x2∣y)P(x3∣y)P(x4∣y)P(x5∣y)P(x6∣y)P(x7∣y)P(x)=P(y)P(x1=1∣y)P(x2=0∣y)P(x3=0∣y)P(x4=0∣y)P(x5=1∣y)P(x6=0∣y)P(x7=2∣y)P(x)=P(y)P(x1∣y)1P(x2∣y)0P(x3∣y)0P(x4∣y)0P(x5∣y)1P(x6∣y)0P(x7∣y)2P(x)=0.5∗0.251∗0.1250∗0.06250∗0.1250∗0.06251∗0.06250∗0.31252P(x)=0.000763P(x) {\footnotesize \begin{equation*} \begin{split} P(y|x) &= \cfrac{P(y)P(x|y)}{P(x)}\\ &= \cfrac{P(y)P(x_1,x_2,x_3,x_4,x_5,x_6,x_7|y)}{P(x)} \\ &= \cfrac{P(y)P(x_1|y)P(x_2|y)P(x_3|y)P(x_4|y)P(x_5|y)P(x_6|y)P(x_7|y)}{P(x)} \\ &= \cfrac{P(y)P(x_1=1|y)P(x_2=0|y)P(x_3=0|y)P(x_4=0|y)P(x_5=1|y)P(x_6=0|y)P(x_7=2|y)}{P(x)} \\ &= \cfrac{P(y)P(x_1|y)^1P(x_2|y)^0P(x_3|y)^0P(x_4|y)^0P(x_5|y)^1P(x_6|y)^0P(x_7|y)^2}{P(x)} \\ &= \cfrac{0.5*0.25^1*0.125^0*0.0625^0*0.125^0*0.0625^1*0.0625^0*0.3125^2}{P(x)} \\ &= \cfrac{0.000763}{P(x)} \\ \end{split}\end{equation*} } P(y∣x)=P(x)P(y)P(x∣y)=P(x)P(y)P(x1,x2,x3,x4,x5,x6,x7∣y)=P(x)P(y)P(x1∣y)P(x2∣y)P(x3∣y)P(x4∣y)P(x5∣y)P(x6∣y)P(x7∣y)=P(x)P(y)P(x1=1∣y)P(x2=0∣y)P(x3=0∣y)P(x4=0∣y)P(x5=1∣y)P(x6=0∣y)P(x7=2∣y)=P(x)P(y)P(x1∣y)1P(x2∣y)0P(x3∣y)0P(x4∣y)0P(x5∣y)1P(x6∣y)0P(x7∣y)2=P(x)0.5∗0.251∗0.1250∗0.06250∗0.1250∗0.06251∗0.06250∗0.31252=P(x)0.000763

  • P(y)=P(正常邮件)=24=0.5P(y) = P(正常邮件) = \cfrac{2}{4} = 0.5P(y)=P(正常邮件)=42=0.5

  • 在朴素贝叶斯中,前提性假设特征之间是相互独立的,所以该样本数据为正常邮件的概率为

    P(y∣x)=P(y)P(x∣y)P(x)=P(y)P(x1,x2,x3,x4,x5,x6,x7∣y)P(x)=P(y)P(x1∣y)P(x2∣y)P(x3∣y)P(x4∣y)P(x5∣y)P(x6∣y)P(x7∣y)P(x)=P(y)P(x1=1∣y)P(x2=0∣y)P(x3=0∣y)P(x4=0∣y)P(x5=1∣y)P(x6=0∣y)P(x7=2∣y)P(x)=P(y)P(x1∣y)1P(x2∣y)0P(x3∣y)0P(x4∣y)0P(x5∣y)1P(x6∣y)0P(x7∣y)2P(x)=0.5∗0.0771∗0.0770∗0.2310∗0.0770∗0.3081∗0.1540∗0.0772P(x)=0.0000705P(x) {\footnotesize \begin{equation*} \begin{split} P(y|x) &= \cfrac{P(y)P(x|y)}{P(x)}\\ &= \cfrac{P(y)P(x_1,x_2,x_3,x_4,x_5,x_6,x_7|y)}{P(x)} \\ &= \cfrac{P(y)P(x_1|y)P(x_2|y)P(x_3|y)P(x_4|y)P(x_5|y)P(x_6|y)P(x_7|y)}{P(x)} \\ &= \cfrac{P(y)P(x_1=1|y)P(x_2=0|y)P(x_3=0|y)P(x_4=0|y)P(x_5=1|y)P(x_6=0|y)P(x_7=2|y)}{P(x)} \\ &= \cfrac{P(y)P(x_1|y)^1P(x_2|y)^0P(x_3|y)^0P(x_4|y)^0P(x_5|y)^1P(x_6|y)^0P(x_7|y)^2}{P(x)} \\ &= \cfrac{0.5*0.077^1*0.077^0*0.231^0*0.077^0*0.308^1*0.154^0*0.077^2}{P(x)} \\ &= \cfrac{0.0000705}{P(x)} \\ \end{split}\end{equation*} } P(y∣x)=P(x)P(y)P(x∣y)=P(x)P(y)P(x1,x2,x3,x4,x5,x6,x7∣y)=P(x)P(y)P(x1∣y)P(x2∣y)P(x3∣y)P(x4∣y)P(x5∣y)P(x6∣y)P(x7∣y)=P(x)P(y)P(x1=1∣y)P(x2=0∣y)P(x3=0∣y)P(x4=0∣y)P(x5=1∣y)P(x6=0∣y)P(x7=2∣y)=P(x)P(y)P(x1∣y)1P(x2∣y)0P(x3∣y)0P(x4∣y)0P(x5∣y)1P(x6∣y)0P(x7∣y)2=P(x)0.5∗0.0771∗0.0770∗0.2310∗0.0770∗0.3081∗0.1540∗0.0772=P(x)0.0000705

  • 由于P(x)P(x)P(x)在垃圾邮件和正常邮件的计算过程中是相同的,所以该样本数据为垃圾邮件的概率可以看做为0.000763,为正常邮件的概率可以看做为0.0000705,由于0.000763>0.00007050.000763>0.00007050.000763>0.0000705,所以该数据被判定为垃圾邮件

相关推荐
临床数据科学和人工智能兴趣组4 小时前
RStudio的Console(控制台)是一个非常重要的组件
人工智能·机器学习·数据分析·r语言·r语言-4.2.1
CIO_Alliance5 小时前
企业AI化转型如何用AI+iPaaS实现降本增效?
人工智能·低代码·机器学习·ai·ipaas·系统集成·企业级ai化转型
林泽毅6 小时前
PyTRIO快速入门(一):概念、推理与训练
人工智能·python·深度学习·机器学习·语言模型
陕西企来客7 小时前
2026年7月技术好GEO优化方案:算法适配与内容策略
人工智能·算法·机器学习·技术好geo优化
想会飞的蒲公英7 小时前
用 Streamlit 给文本分类模型做一个演示页面
人工智能·python·机器学习
其美杰布-富贵-李9 小时前
P-value 到底是什么?从“原假设”到“统计显著性”的完整理解
深度学习·机器学习·统计
小刘学技术9 小时前
AI人工智能逻辑编程:从理论到实践
开发语言·人工智能·python·机器学习
审小匠OpenCPAi11 小时前
审计风险识别的工程落地:规则引擎、评分卡、机器学习与图神经网络对比
人工智能·神经网络·机器学习
renhongxia111 小时前
AI安全保卫战:我们如何防止“失控”的智能体?
人工智能·深度学习·安全·机器学习·架构·机器人
KaMeidebaby11 小时前
卡梅德生物技术快报 | abcore 纳米抗体文库:从PNAS论文看纳米抗体理性设计:构象熵作为亲和力预测新指标的技术实现
java·开发语言·人工智能·算法·机器学习