IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习之朴素贝叶斯模型 -> 正文阅读

[人工智能]机器学习之朴素贝叶斯模型

朴素贝叶斯

1、什么是朴素贝叶斯算法

(1)字面理解:朴素贝叶斯 = “朴素”+贝叶斯

朴素:假定特征之间都是条件独立的(这里理解起来比较抽象,后续使用具体实例说明)

贝叶斯:贝叶斯定理
p ( y ∣ x ) = p ( x ∣ y ) ? p ( y ) p ( x ) 证 明 : p ( x , y ) = p ( x ∣ y ) ? p ( y ) = p ( y ∣ x ) ? p ( x ) 移 项 得 : p ( y ∣ x ) = p ( x ∣ y ) ? p ( y ) p ( x ) p(y|x) = \frac{p(x|y)*p(y)}{p(x)} \\证明:p(x,y) = p(x|y)*p(y) = p(y|x)*p(x)\\移项得:p(y|x) = \frac{p(x|y)*p(y)}{p(x)} p(yx)=p(x)p(xy)?p(y)?p(x,y)=p(xy)?p(y)=p(yx)?p(x)p(yx)=p(x)p(xy)?p(y)?
说明:

1)p(y|x):后验概率

2)p(x|y):似然概率

3)p(y):先验概率

4)p(x):样本数据的所有特征

(2)官方解释:朴素贝叶斯分类(NBC)是以贝叶斯定理为基础并且假设特征条件之间相互独立的方法,先通过已给定的训练集,以特征词之间独立作为前提假设,学习从输入到输出的联合概率分布,再基于学习到的模型,输入X求出使得后验概率最大的输出Y。(来自于百度百科)

2、朴素贝叶斯的应用

1)各类文本分析的任务,比如垃圾邮件的分类,文本主题分类,情感分析

2)文字识别

3)图像识别

3、使用朴素贝叶斯对垃圾邮件进行分类

这里用一个具体的实例来分享朴素贝叶斯模型,能够更直观的理解朴素贝叶斯模型

3.1、朴素贝叶斯对垃圾邮件分类的两个步骤

1)统计出每一个单词对一个邮件成为垃圾邮件或正常邮件的概率

2)用这些统计的结果对一个新的邮件做预测

3.2、实现

1)例:现若干邮件,其中有正常邮件,有垃圾邮件,邮件中出现了”购买“,”物品“,”不是“,”广告“,”这“等词…我们分别统计这些词出现在正常邮件中的个数,出现在垃圾邮件中的个数

则正常邮件含有”购买“,”物品“,”不是“,”广告“,”这“词的概率为
p ( 购 买 ∣ 正 常 邮 件 ) = 1 80 p ( 物 品 ∣ 正 常 邮 件 ) = 1 60 p ( 不 是 ∣ 正 常 邮 件 ) = 1 60 p ( 广 告 ∣ 正 常 邮 件 ) = 1 48 p ( 这 ∣ 正 常 邮 件 ) = 1 80 p ( 正 常 ) = 2 3 ( 分 子 : 所 有 邮 件 中 正 常 邮 件 的 个 数 ; 分 母 : 邮 件 的 总 数 ) \begin{aligned} p(购买|正常邮件)&=\frac{1}{80}\\p(物品|正常邮件)&=\frac{1}{60}\\p(不是|正常邮件)&=\frac{1}{60}\\p(广告|正常邮件)&=\frac{1}{48}\\p(这|正常邮件)&=\frac{1}{80}\\p(正常)&=\frac{2}{3}\quad (分子:所有邮件中正常邮件的个数;分母:邮件的总数) \end{aligned} p()p()p()p(广)p()p()?=801?=601?=601?=481?=801?=32?()?
垃圾邮件含有”购买“,”物品“,”不是“,”广告“,”这“词的概率为
p ( 购 买 ∣ 垃 圾 邮 件 ) = 7 120 p ( 物 品 ∣ 垃 圾 邮 件 ) = 1 30 p ( 不 是 ∣ 垃 圾 邮 件 ) = 1 40 p ( 广 告 ∣ 垃 圾 邮 件 ) = 1 30 p ( 这 ∣ 垃 圾 邮 件 ) = 0 p ( 正 常 ) = 2 3 ( 分 子 : 所 有 邮 件 中 垃 圾 邮 件 的 个 数 ; 分 母 : 邮 件 的 总 数 ) \begin{aligned} p(购买|垃圾邮件)&=\frac{7}{120}\\p(物品|垃圾邮件)&=\frac{1}{30}\\p(不是|垃圾邮件)&=\frac{1}{40}\\p(广告|垃圾邮件)&=\frac{1}{30}\\p(这|垃圾邮件)&=0\\p(正常)&=\frac{2}{3}\quad (分子:所有邮件中垃圾邮件的个数;分母:邮件的总数) \end{aligned} p()p()p()p(广)p()p()?=1207?=301?=401?=301?=0=32?()?
收到了新的一份邮件E(购买物品这不是广告),属于垃圾邮件还是正常邮件?
p ( E ∣ 正 常 邮 件 ) = p ( 购 买 , 物 品 , 这 , 不 是 , 广 告 ∣ 正 常 邮 件 ) ? p ( 正 常 邮 件 ) p ( 邮 件 内 容 ) = p ( 购 买 ∣ 正 常 邮 件 ) ? p ( 物 品 ∣ 正 常 邮 件 ) ? p ( 这 ∣ 正 常 邮 件 ) ? p ( 不 是 ∣ 正 常 邮 件 ) ? p ( 广 告 ∣ 正 常 邮 件 ) ? p ( 正 常 邮 件 ) p ( 邮 件 内 容 ) ( 在 这 里 我 们 把 联 合 概 率 转 换 成 了 条 件 概 率 , 前 提 就 是 一 开 始 我 提 到 的 “ 朴 素 ” , 如 果 没 有 这 个 条 件 , 两 式 是 不 能 划 等 号 的 ) = 1 80 ? 1 60 ? 1 80 ? 1 60 ? 1 48 ? 2 3 p ( 邮 件 内 容 ) p ( E ∣ 垃 圾 邮 件 ) = p ( 购 买 , 物 品 , 这 , 不 是 , 广 告 ∣ 垃 圾 邮 件 ) ? p ( 垃 圾 邮 件 ) p ( 邮 件 内 容 ) = p ( 购 买 ∣ 垃 圾 邮 件 ) ? p ( 物 品 ∣ 垃 圾 邮 件 ) ? p ( 这 ∣ 垃 圾 邮 件 ) ? p ( 不 是 ∣ 垃 圾 邮 件 ) ? p ( 广 告 ∣ 垃 圾 邮 件 ) ? p ( 垃 圾 邮 件 ) p ( 邮 件 内 容 ) = 7 120 ? 1 30 ? 0 ? 1 40 ? 1 30 ? 1 3 p ( 邮 件 内 容 ) \begin{aligned} p(E|正常邮件) &= \frac{p(购买,物品,这,不是,广告|正常邮件)*p(正常邮件)}{p(邮件内容)}\\ &=\frac{p(购买|正常邮件)*p(物品|正常邮件)*p(这|正常邮件)*p(不是|正常邮件)*p(广告|正常邮件)*p(正常邮件)}{p(邮件内容)} {\quad(在这里我们把联合概率转换成了条件概率,前提就是一开始我提到的“朴素”,如果没有这个条件,两式是不能划等号的)}\\ &=\frac{\frac{1}{80}*\frac{1}{60}*\frac{1}{80}*\frac{1}{60}*\frac{1}{48}*\frac{2}{3}}{p(邮件内容)}\\ p(E|垃圾邮件) &= \frac{p(购买,物品,这,不是,广告|垃圾邮件)*p(垃圾邮件)}{p(邮件内容)}\\ &=\frac{p(购买|垃圾邮件)*p(物品|垃圾邮件)*p(这|垃圾邮件)*p(不是|垃圾邮件)*p(广告|垃圾邮件)*p(垃圾邮件)}{p(邮件内容)} \\ &=\frac{\frac{7}{120}*\frac{1}{30}*0*\frac{1}{40}*\frac{1}{30}*\frac{1}{3}}{p(邮件内容)} \end{aligned} p(E)p(E)?=p()p(广)?p()?=p()p()?p()?p()?p()?p(广)?p()?()=p()801??601??801??601??481??32??=p()p(广)?p()?=p()p()?p()?p()?p()?p(广)?p()?=p()1207??301??0?401??301??31???
通过上面的计算,我们可以看到分母相同的情况下P(E|正常邮件)明显大于P(E|垃圾邮件)=0,大家认为这个结论合理嘛?明显是不合理的,原因是或许邮件包含某个垃圾邮件的关键词,但这封邮件并不一定是垃圾邮件,同理正常邮件也是如此,导致这个问题的罪魁祸首就是某个关键词的条件概率为0,如何解决这个问题呢?答案就是采用平滑

2)什么是平滑?不说废话直接上公式
p ( w ∣ y = c ) = 语 料 库 中 的 单 词 w 出 现 的 次 数 + 1 类 别 为 c 的 语 料 库 中 包 含 所 有 的 单 词 个 数 + v v : 词 典 的 大 小 p(w|y=c)=\frac{语料库中的单词w出现的次数+1}{类别为c的语料库中包含所有的单词个数+v}\\v:词典的大小 p(wy=c)=c+vw+1?v:
这里分母为什么要加v(词典的大小)?

答:为了让每一个词的条件概率最终相加为1,假设有一个词库v=[a,b,c,d,…]T(T:转置),

则p(a|y=c)+p(b|y=c)+p(c|y=c)+p(d|y=c)+… = 1

3)现在有一个新的需求:

①垃圾邮件,包含8个词

(1)点击 更多 信息

(2)最新 产品

(3)信息 点击 链接

②正常邮件,包含 6个词

(1)开会

(2)信息 详见 邮件

(3)最新 信息

新邮件:S = 最新 产品 点击 链接 产品

新邮件S是垃圾邮件还是正常邮件?

建立词库v={点击,更多,信息,最新,产品,链接,开会,详见,邮件}

单词数量n=9
p ( 点 击 ∣ 正 常 邮 件 ) = 0 + 1 6 + 9 p ( 更 多 ∣ 正 常 邮 件 ) = 0 + 1 6 + 9 p ( 信 息 ∣ 正 常 邮 件 ) = 2 + 1 6 + 9 p ( 最 新 ∣ 正 常 邮 件 ) = 1 + 1 6 + 9 p ( 产 品 ∣ 正 常 邮 件 ) = 0 + 1 6 + 9 p ( 链 接 ∣ 正 常 邮 件 ) = 0 + 1 6 + 9 p ( 开 会 ∣ 正 常 邮 件 ) = 1 + 1 6 + 9 p ( 详 见 ∣ 正 常 邮 件 ) = 1 + 1 6 + 9 p ( 邮 件 ∣ 正 常 邮 件 ) = 1 + 1 6 + 9 p ( 正 常 邮 件 ) = 1 2 \begin{aligned} p(点击|正常邮件)&=\frac{0+1}{6+9}\\p(更多|正常邮件)&=\frac{0+1}{6+9}\\p(信息|正常邮件)&=\frac{2+1}{6+9}\\p(最新|正常邮件)&=\frac{1+1}{6+9}\\p(产品|正常邮件)&=\frac{0+1}{6+9}\\p(链接|正常邮件)&=\frac{0+1}{6+9}\\p(开会|正常邮件)&=\frac{1+1}{6+9}\\p(详见|正常邮件)&=\frac{1+1}{6+9}\\p(邮件|正常邮件)&=\frac{1+1}{6+9}\\p(正常邮件)=\frac{1}{2} \end{aligned} p()p()p()p()p()p()p()p()p()p()=21??=6+90+1?=6+90+1?=6+92+1?=6+91+1?=6+90+1?=6+90+1?=6+91+1?=6+91+1?=6+91+1??

p ( 点 击 ∣ 垃 圾 邮 件 ) = 2 + 1 8 + 9 p ( 更 多 ∣ 垃 圾 邮 件 ) = 1 + 1 8 + 9 p ( 信 息 ∣ 垃 圾 邮 件 ) = 2 + 1 8 + 9 p ( 最 新 ∣ 垃 圾 邮 件 ) = 1 + 1 8 + 9 p ( 产 品 ∣ 垃 圾 邮 件 ) = 1 + 1 8 + 9 p ( 链 接 ∣ 垃 圾 邮 件 ) = 1 + 1 8 + 9 p ( 开 会 ∣ 垃 圾 邮 件 ) = 0 + 1 8 + 9 p ( 详 见 ∣ 垃 圾 邮 件 ) = 0 + 1 8 + 9 p ( 邮 件 ∣ 垃 圾 邮 件 ) = 0 + 1 8 + 9 p ( 垃 圾 邮 件 ) = 1 2 \begin{aligned} p(点击|垃圾邮件)&=\frac{2+1}{8+9}\\p(更多|垃圾邮件)&=\frac{1+1}{8+9}\\p(信息|垃圾邮件)&=\frac{2+1}{8+9}\\p(最新|垃圾邮件)&=\frac{1+1}{8+9}\\p(产品|垃圾邮件)&=\frac{1+1}{8+9}\\p(链接|垃圾邮件)&=\frac{1+1}{8+9}\\p(开会|垃圾邮件)&=\frac{0+1}{8+9}\\p(详见|垃圾邮件)&=\frac{0+1}{8+9}\\p(邮件|垃圾邮件)&=\frac{0+1}{8+9}\\p(垃圾邮件)=\frac{1}{2} \end{aligned} p()p()p()p()p()p()p()p()p()p()=21??=8+92+1?=8+91+1?=8+92+1?=8+91+1?=8+91+1?=8+91+1?=8+90+1?=8+90+1?=8+90+1??

在上述计算词库中每个词的条件概率,使用加1平滑后,分母加词库的大小n=9,使P(v|正常邮件)=1;P(v|垃圾邮件)=1,可以加加看!
p ( S ∣ 正 常 邮 件 ) = p ( 最 新 , 产 品 , 点 击 , 链 接 , 产 品 ∣ 正 常 邮 件 ) ? p ( 正 常 邮 件 ) p ( 邮 件 内 容 ) = p ( 最 新 ∣ 正 常 邮 件 ) ? p ( 产 品 ∣ 正 常 邮 件 ) ? p ( 点 击 ∣ 正 常 邮 件 ) ? p ( 链 接 ∣ 正 常 邮 件 ) ? p ( 产 品 ∣ 正 常 邮 件 ) ? p ( 正 常 邮 件 ) p ( 邮 件 内 容 ) = 2 15 ? 1 15 ? 1 15 ? 1 15 ? 1 15 ? 1 2 p ( 邮 件 内 容 ) p ( S ∣ 垃 圾 邮 件 ) = p ( 最 新 , 产 品 , 点 击 , 链 接 , 产 品 ∣ 垃 圾 邮 件 ) ? p ( 正 常 邮 件 ) p ( 邮 件 内 容 ) = p ( 最 新 ∣ 垃 圾 邮 件 ) ? p ( 产 品 ∣ 垃 圾 邮 件 ) ? p ( 点 击 ∣ 垃 圾 邮 件 ) ? p ( 链 接 ∣ 垃 圾 邮 件 ) ? p ( 产 品 ∣ 垃 圾 邮 件 ) ? p ( 垃 圾 邮 件 ) p ( 邮 件 内 容 ) = 2 17 ? 2 17 ? 3 17 ? 2 17 ? 2 17 ? 1 2 p ( 邮 件 内 容 ) \begin{aligned} p(S|正常邮件)&=\frac{p(最新,产品,点击,链接,产品|正常邮件)*p(正常邮件)}{p(邮件内容)}\\ &=\frac{p(最新|正常邮件)*p(产品|正常邮件)*p(点击|正常邮件)*p(链接|正常邮件)*p(产品|正常邮件)*p(正常邮件)}{p(邮件内容)}\\ &=\frac{\frac{2}{15}*\frac{1}{15}*\frac{1}{15}*\frac{1}{15}*\frac{1}{15}*\frac{1}{2}}{p(邮件内容)}\\ p(S|垃圾邮件)&=\frac{p(最新,产品,点击,链接,产品|垃圾邮件)*p(正常邮件)}{p(邮件内容)}\\ &=\frac{p(最新|垃圾邮件)*p(产品|垃圾邮件)*p(点击|垃圾邮件)*p(链接|垃圾邮件)*p(产品|垃圾邮件)*p(垃圾邮件)}{p(邮件内容)}\\ &=\frac{\frac{2}{17}*\frac{2}{17}*\frac{3}{17}*\frac{2}{17}*\frac{2}{17}*\frac{1}{2}}{p(邮件内容)} \end{aligned} p(S)p(S)?=p()p(,,,,)?p()?=p()p()?p()?p()?p()?p()?p()?=p()152??151??151??151??151??21??=p()p(,,,,)?p()?=p()p()?p()?p()?p()?p()?p()?=p()172??172??173??172??172??21???
最后我们得出:

因为p(S|正常邮件)<p(S|垃圾邮件),所以S为垃圾邮件的可能性会更大

**Tips:我们可以看到上述计算出的条件概率非常小,在计算机中容易出现”溢出的现象“,为了避免该问题我们加入log,这样log(p1 p2 p3) = logp1+logp2+log3,我就不在这里过多的赘述了!

4、朴素贝叶斯的最大似然估计

4.1、预备知识

1)最大似然估计:

最大似然的核心:假设未知参数为θ,已知的样本为D,最大似然估计通过最大化P(D|θ)来求解未知参数θ

最大似然估计的详细解释我在逻辑回归一文中做了详细阐述,就不过多赘述

2)带限制条件的优化

①无约束条件的优化:
例 1. 求 f ( x ) = x 2 ? 2 x ? 3 的 最 小 值 解 : f ′ ( x ) = 2 x ? 2 令 f ′ ( x ) = 0 得 x = 1 \begin{aligned} 例1.求f(x) = x^2 - 2x - 3的最小值\\ 解:f^{'}(x) = 2x - 2 \\ 令f^{'}(x)=0\\得x=1 \end{aligned} 1.f(x)=x2?2x?3f(x)=2x?2f(x)=0x=1?
②带约束条件的优化-拉格朗日惩罚项
求 f ( x , y ) = x + y 的 最 大 值 , 但 有 个 条 件 是 x 2 + y 2 = 1 解 : 由 x 2 + y 2 = 1 得 x 2 + y 2 ? 1 = 0 设 f ( x , y , λ ) = x + y + λ ( x 2 + y 2 ? 1 ) { f x ′ ( x , y , λ ) = 1 + 2 λ x = 0 f y ′ ( x , y , λ ) = 1 + 2 λ y = 0 f λ ′ ( x , y , λ ) = x 2 + y 2 ? 1 = 0 得 : { λ 1 = 2 2 x 1 = ? 2 2 y 1 = ? 2 2 { λ 2 = ? 2 2 x 2 = 2 2 y 2 = 2 2 综 上 : 得 令 f ( x , y ) = x + y 最 大 的 值 为 { λ 2 = ? 2 2 x 2 = 2 2 y 2 = 2 2 求f(x,y)=x+y的最大值,但有个条件是x^{2}+y^2 = 1\\解:由x^2+y^2 = 1 \\得x^2+y^2 - 1 =0 \\ 设f(x,y,\lambda) = x + y + \lambda{(x^2+y^2 - 1)}\\ \begin{cases} f^{'}_x(x,y,\lambda) = 1+2\lambda{x}=0 \\ f^{'}_y(x,y,\lambda) = 1+2\lambda{y}=0 \\ f^{'}_{\lambda}(x,y,\lambda) = x^2+y^2-1=0 \end{cases}\\ 得: \begin{cases} \lambda_{1} = \frac{\sqrt{2}}{2} \\ x_1 = -\frac{\sqrt{2}}{2} \\ y_1 = -\frac{\sqrt{2}}{2}\\ \end{cases}\quad \begin{cases} \lambda_{2} = -\frac{\sqrt{2}}{2} \\ x_2 = \frac{\sqrt{2}}{2} \\ y_2 = \frac{\sqrt{2}}{2}\\ \end{cases}\\ 综上:得令f(x,y)=x+y最大的值为\\ \begin{cases} \lambda_{2} = -\frac{\sqrt{2}}{2} \\ x_2 = \frac{\sqrt{2}}{2} \\ y_2 = \frac{\sqrt{2}}{2}\\ \end{cases} f(x,y)=x+yx2+y2=1:x2+y2=1x2+y2?1=0f(x,y,λ)=x+y+λ(x2+y2?1)??????fx?(x,y,λ)=1+2λx=0fy?(x,y,λ)=1+2λy=0fλ?(x,y,λ)=x2+y2?1=0???????λ1?=22 ??x1?=?22 ??y1?=?22 ?????????λ2?=?22 ??x2?=22 ??y2?=22 ???f(x,y)=x+y??????λ2?=?22 ??x2?=22 ??y2?=22 ???

4.2、得到朴素贝叶斯的目标函数

在这里插入图片描述

4.3、对目标函数的求解

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:10:15  更:2022-04-06 23:13:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/8 4:34:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码