当前位置: 首页 > article >正文

【机器学习理论】朴素贝叶斯网络

基础知识:
先验概率:对某个事件发生的概率的估计。可以是基于历史数据的估计,可以由专家知识得出等等。一般是单独事件概率。

后验概率:指某件事已经发生,计算事情发生是由某个因素引起的概率。一般是一个条件概率。

条件概率:条件事件发生后,另一个事件发生的概率。一般的形式为 P ( B ∣ A ) P(B|A) P(BA),表示 A A A发生的条件下 B B B发生的概率。
P ( B ∣ A ) = P ( A B ) P ( A ) P(B|A) = \frac {P(AB)}{P(A)} P(BA)=P(A)P(AB)
贝叶斯公式基于先验概率,计算后验概率的方法;公式为:
P ( A ∣ B ) = P ( B ∣ A ) ⋅ P ( A ) P ( B ) P(A|B) = \frac {P(B|A) \cdot P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)

  • P ( A ∣ B ) P(A∣B) P(AB): 在事件  B B B 发生的条件下,事件  A A A 发生的概率(后验概率)。
  • P ( B ∣ A ) P(B | A) P(BA):在事件 A A A 发生的条件下,事件 B B B 的发生概率(似然概率)。
  • P ( A ) P(A) P(A):事件 A A A 发生的先验概率(先验知识)。
  • P ( B ) P(B) P(B):事件 B B B 发生的总概率。

贝叶斯公式可以从条件概率和全概率公式推导得出:

  1. 条件概率定义:
    P ( A ∣ B ) = P ( A ∩ B ) P ( B ) , P ( B ∣ A ) = P ( A ∩ B ) P ( A ) P(A | B) = \frac {P(A \cap B)}{P(B)}, P(B|A) = \frac {P(A \cap B)}{P(A)} P(AB)=P(B)P(AB),P(BA)=P(A)P(AB)
  2. 公式联立:
    P ( A ∩ B ) = P ( B ∣ A ) ⋅ P ( A ) = P ( A ∣ B ) ⋅ P ( B ) P(A \cap B) = P(B|A) \cdot P(A) = P(A | B) \cdot P(B) P(AB)=P(BA)P(A)=P(AB)P(B)
  3. 整理得到贝叶斯公式:
    P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A | B) = \frac {P(B | A) P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)
  • 贝叶斯公式:将先验概率  P ( A ) P(A) P(A)、似然概率  P ( B ∣ A ) P(B∣A) P(BA) 和证据  P ( B ) P(B) P(B) 结合,计算后验概率 P ( A ∣ B ) P(A∣B) P(AB)

朴素贝叶斯做出了一个假设”属性条件独立假设“:对所有已知标签的样本,假设每个属性独立地对标签结果产生影响。(这是一个很强的条件)

假设样本为: x = { a 1 , a 2 , . . . , a d } x=\{a_{1}, a_{2}, ..., a_{d} \} x={a1,a2,...,ad},label为 Y = { c 1 , c 2 , c 3 , . . . , c n } Y = \{c_{1}, c_{2}, c_{3}, ...,c_{n} \} Y={c1,c2,c3,...,cn};则计算这样一个样本 x x x 的所属类别的公式为:
P ( c k ∣ x ) = max ⁡ { P ( c 1 ∣ x ) , P ( c 2 ∣ x ) , P ( c 3 ∣ x ) , . . . , P ( c n ∣ x ) } P(c_{k} | x) = \max \{ P(c_{1} |x), P(c_{2} | x), P(c_{3} | x), ..., P(c_{n} |x)\} P(ckx)=max{P(c1x),P(c2x),P(c3x),...,P(cnx)}
基于条件独立假设;可以得到
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(c|x) = \frac {P(c)P(x|c)}{P(x)} = \frac {P(c)}{P(x)} \prod_{i=1}^{d} P(x_{i}|c) P(cx)=P(x)P(c)P(xc)=P(x)P(c)i=1dP(xic)
其中 d d d为属性数目, x i x_{i} xi x x x 在第 i i i 个属性上的取值。
我们重写上述公式:
h n b ( x ) = max ⁡ { P ( c 1 ∣ x ) , P ( c 2 ∣ x ) , P ( c 3 ∣ x ) , . . . , P ( c n ∣ x ) } = arg ⁡ max ⁡ c ∈ Y P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ C ) = arg ⁡ max ⁡ c ∈ Y P ( c ) ∏ i = 1 d P ( x i ∣ C ) \begin{align} h_{nb}(x) &= \max \{ P(c_{1} |x), P(c_{2} | x), P(c_{3} | x), ..., P(c_{n} |x)\} \\ &= \arg \max_{c \in Y} \frac {P(c)}{P(x)} \prod_{i=1}^{d}P(x_{i} | C) \\ &= \arg \max_{c \in Y} P(c) \prod_{i=1}^{d}P(x_{i} | C) \end{align} hnb(x)=max{P(c1x),P(c2x),P(c3x),...,P(cnx)}=argcYmaxP(x)P(c)i=1dP(xiC)=argcYmaxP(c)i=1dP(xiC) D c D_{c} Dc 表示训练集 D D D 中第 c c c 类样本组成的集合,若有充足的独立同分布样本,则可以容易地估计出类别的先验概率:
P ( c ) = ∣ D c ∣ ∣ D ∣ P(c) = \frac {|D_{c}|}{|D|} P(c)=DDc
对于离散属性而言,令 D c , x i D_{c, x_{i}} Dc,xi 表示 D c D_{c} Dc 中第 i i i 个属性上取值为 x i x_{i} xi 的样本组成的集合,则条件概率 P ( x i ∣ c ) P(x_{i} |c) P(xic) 可估计为:
P x i ∣ c = ∣ D c , x i ∣ ∣ D c ∣ P{x_{i} | c} = \frac {|D_{c, x_{i}}|}{|D_{c}|} Pxic=DcDc,xi
对于连续属性可考虑概率密度函数,假定 p ( x i ∣ c ) ∼ N ( μ c , i , σ c , i 2 ) p(x_{i}|c) \sim \mathcal{N}(\mu _{c, i}, \sigma _{c,i}^{2}) p(xic)N(μc,i,σc,i2)d,其中 μ c , i \mu_{c, i} μc,i σ c , i 2 \sigma_{c, i}^{2} σc,i2分别是第 c c c 类样本在第 i i i 个属性上取值的均值和方差,则有:
p ( x i ∣ c ) = 1 2 π σ c , i exp ⁡ ( − ( x i − μ c , i ) 2 2 σ c , i 2 ) p(x_{i} | c) = \frac {1}{\sqrt{2 \pi} \sigma_{c, i}} \exp (- \frac {(x_{i}-\mu_{c, i})^2}{2 \sigma_{c, i}^{2}}) p(xic)=2π σc,i1exp(2σc,i2(xiμc,i)2)


http://www.kler.cn/a/528711.html

相关文章:

  • [Linux]从零开始的STM32MP157 U-Boot移植
  • 侯捷 C++ 课程学习笔记:深入理解 C++ 核心技术与实战应用
  • 【C++ 数学 括号匹配】2116. 判断一个括号字符串是否有效|2037
  • Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成
  • 联想拯救者R720笔记本外接显示屏方法,显示屏是2K屏27英寸
  • HTML DOM 对象
  • C++并发:设计无锁数据结构
  • 1.攻防世界easyphp
  • 【LeetCode 刷题】二叉树-二叉搜索树的修改与构造
  • PostgreSQL 数据查询操作(排序、筛选、连接、分组、子查询)
  • 手写call函数、手写apply函数、手写bind函数
  • matlab快速入门(2)-- 数据处理与可视化
  • 【Redis】Redis修改连接数参数
  • 自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数
  • Java小白入门教程:LinkedList
  • 车载以太网---数据链路层
  • Spark SQL读写Hive Table部署
  • SQL入门到精通 理论+实战 -- 在 MySQL 中学习SQL语言
  • 10:预处理
  • C++,vector:动态数组的原理、使用与极致优化
  • 回溯算法理论基础
  • 递归练习七(floodfill 算法)
  • C#属性和字段(访问修饰符)
  • 代码随想录-训练营-day17
  • 自制虚拟机(C/C++)(二、分析引导扇区,虚拟机读二进制文件img软盘)
  • 代码随想录算法训练营第四十二天-动态规划-股票-188.买卖股票的最佳时机IV