朴素贝叶斯算法及贝叶斯网络详述

1、贝叶斯定理

  • 先验概率P(A):在不考虑其他的情况下,A事件发生的概率。
  • 条件概率P(B|A):A事件发生的情况下,B事件发生的概率。
  • 后验概率P(A|B):在B事件发生之后,对A事件发生的概率的重新评估。
    P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} P(AB)=P(B)P(AB)
  • 全概率:如果A和A’ 构成样本空间的一个划分,那么事件B的概率为A和A’ 的概率分别乘以B对这两个事件的概率之和。
    P ( B ) = P ( A ) × P ( B ∣ A ) + P ( A ′ ) × P ( B ∣ A ′ ) P ( B ) = ∑ i = 1 n P ( A i ) × P ( B ∣ A i ) \begin{aligned} P(B)&=P(A)\times P(B|A)+P(A')\times P(B|A') \\ P(B)&=\sum_{i=1}^nP(A_i)\times P(B|A_i) \end{aligned} P(B)P(B)=P(A)×P(BA)+P(A)×P(BA)=i=1nP(Ai)×P(BAi)
  • 基于条件概率的贝叶斯定律数学公式:
    P ( A ∣ B ) = P ( A ) × P ( B ∣ A ) P ( B ) P ( A ) × P ( B ∣ A ) ∑ i = 1 n P ( B ∣ A i ) × P ( A i ) \begin{aligned} P(A|B)&=\frac{P(A)\times P(B|A)}{P(B)} \\ &\frac{P(A)\times P(B|A)}{\sum_{i=1}^nP(B|A_i)\times P(A_i)} \end{aligned} P(AB)=P(B)P(A)×P(BA)i=1nP(BAi)×P(Ai)P(A)×P(BA)

2、朴素贝叶斯算法

朴素贝叶斯(Naive Bayes, NB)是基于“特征之间是独立的”这一朴素假设,应用贝叶斯定理的监督学习算法。对应给定的样本X的特征向量 x 1 , x 2 , … , x m x_1, x_2,\dots, x_m x1,x2,,xm,该样本X的类别y的概率可以由贝叶斯公式得到:
P ( y ∣ x 1 , x 2 , … , x m ) = P ( y ) P ( x 1 , x 2 , … , x m ∣ y ) P ( x 1 , x 2 , … , x m ) P(y|x_1, x_2, \dots, x_m)=\frac{P(y)P(x_1, x_2, \dots, x_m|y)}{P(x_1, x_2, \dots, x_m)} P(yx1,x2,,xm)=P(x1,x2,,xm)P(y)P(x1,x2,,xmy)
朴素贝叶斯算法流程:

  • x = { a 1 , a 2 , … , a m } x=\{a_1, a_2, \dots, a_m\} x={ a1,a2,,am}为待分类项,其中a为x的一个特征属性
  • 类别集合为 C = { y 1 , y 2 , … , y n } C=\{y_1, y_2, \dots, y_n\} C={ y1,y2,,yn}
  • 分别用贝叶斯公式计算 P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , … , P ( y n ∣ x ) P(y_1|x), P(y_2|x), \dots, P(y_n|x) P(y1x),P(y2x),,P(ynx)的值
  • 如果 P ( y k ∣ x ) = max ⁡ { P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , … , P ( y n ∣ x ) } P(y_k|x)=\max\{P(y_1|x), P(y_2|x), \dots, P(y_n|x)\} P(ykx)=max{ P(y1x),P(y2x),,P(ynx)},那么认为 x x x y k y_k yk类型
高斯朴素贝叶斯

Gaussian Naive Bayes是指当特征属性为连续值时,而且分布服从高斯分布,那么在计算P(x|y)的时候可以直接使用高斯分布的概率公式:
g ( x , η , σ ) = 1 2 π σ e − ( x − η ) 2 2 σ 2 P ( x k ∣ y k ) = g ( x k , η y k , σ y k ) \begin{aligned} g(x, \eta, \sigma)&=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\eta)^2}{2\sigma^2}} \\ P(x_k|y_k)&=g(x_k, \eta_{y_k}, \sigma_{y_k}) \end{aligned} g(x,η,σ)P(xkyk)=2π σ1e2σ2(xη)2=g(xk,ηyk,σyk)
因此只需要计算出各个类别中此特征项划分的各个均值和标准差。

伯努利朴素贝叶斯

Bernoulli Naive Bayes是指当特征属性为连续值时,而且分布服从伯努利分布,那么在计算P(x|y)的时候可以直接使用伯努利分布的概率公式:
P ( x k ∣ y ) = P ( 1 ∣ y ) x k + ( 1 − P ( 1 ∣ y ) ) ( 1 − x k ) P(x_k|y)=P(1|y)x_k+(1-P(1|y))(1-x_k) P(xky)=P(1y)xk+(1P(1y))(1xk)
伯努利分布是一种离散分布,只有两种可能的结果。1表示成功,出现的概率为p。0表示失败,出现的概率为q=1-p。其中均值为E(x)=p,方差为Var(X)=p(1-p)。

多项式朴素贝叶斯

Multinomial Naive Bayes是指当特征属性服从多项分布,从而,对于每个类别y,参数为 θ y = ( θ y 1 , θ y 2 , … , θ y n ) θ_y =(θ_{y_1}, θ_{y_2}, \dots, θ_{y_n}) θy=(θy1,θy2,,θyn),其中n为特征属性数目,那么 P ( x i ∣ y ) P(x_i|y) P(xiy)的概率为 θ y i θ_{y_i} θyi
θ y i = N y i + α N y + α × n N y i = ∑ x ∈ T x i N y = ∑ i = 1 ∣ T ∣ N y i \begin{aligned} θ_{y_i}&=\frac{N_{y_i}+\alpha}{N_y+\alpha\times n} \\ N_{y_i}&=\sum_{x\in T}x_i \\ N_y&=\sum_{i=1}^{|T|}N_{y_i} \end{aligned} θyiNyiNy=Ny+α×nNyi+α=xTxi=i=1TNyi

3、贝叶斯网络

把某个研究系统中涉及到的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。
贝叶斯网络(Bayesian Network),又称有向无环图模型(directed acyclic graphical model,DAG),是一种概率图模型,根据概率图的拓扑结构,考察一组随机变量 { X 1 , X 2 , … , X n } \{X_1, X_2, \dots, X_n\} { X1,X2,,Xn}及其N组条件概率分布(Conditional Probabililty Distributions,CPD)的性质。
当多个特征属性之间存在着某种相关关系的时候,使用朴素贝叶斯算法就没法解决这类问题,那么贝叶斯网络就是解决这类应用场景的一个非常好的算法。
一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,可以是可观察到的变量,或隐变量、未知参数等等。连接两个节点之间的箭头代表两个随机变量之间的因果关系(也就是这两个随机变量之间非条件独立),如果两个节点间以一个单箭头连接在一起,表示其中一个节点是“因”,另外一个是“果”,从而两节点之间就会产生一个条件概率值。每个节点在给定其直接前驱的时候,条件独立于其后继。
贝叶斯网络的关键方法是图模型,构建一个图模型我们需要把具有因果联系的各个变量用箭头连在一起。贝叶斯网络的有向无环图中的节点表示随机变量。连接两个节点的箭头代表此两个随机变量是具有因果关系的。贝叶斯网络是模拟人的认知思维推理模式的,用一组条件概率以及有向无环图对不确定性因果推理关系建模。

最简单的贝叶斯网络

P ( a , b , c ) = P ( c ∣ a , b ) P ( b ∣ a ) P ( a ) P(a, b, c)=P(c|a, b)P(b|a)P(a) P(a,b,c)=P(ca,b)P(ba)P(a)
朴素贝叶斯算法及贝叶斯网络详述_第1张图片

全连接贝叶斯网络

每一对节点之间都有边连接
P ( x 1 , x 2 , … , x n ) = P ( x n ∣ x 1 , x 2 , … , x n − 1 ) … P ( x 2 ∣ x 1 ) P ( x 1 ) P ( x 1 , x 2 , … , x n ) = ∏ i = 2 n P ( x i ∣ x 1 , x 2 , … , x i − 1 ) × P ( x 1 ) \begin{aligned} P(x_1, x_2, \dots, x_n)&=P(x_n|x_1, x_2, \dots, x_{n-1})\dots P(x_2|x_1)P(x_1) \\ P(x_1, x_2, \dots, x_n)&=\prod_{i=2}^nP(x_i|x_1, x_2, \dots, x_{i-1})\times P(x_1) \end{aligned} P(x1,x2,,xn)P(x1,x2,,xn)=P(xnx1,x2,,xn1)P(x2x1)P(x1)=i=2nP(xix1,x2,,xi1)×P(x1)
朴素贝叶斯算法及贝叶斯网络详述_第2张图片

一般化的贝叶斯网络

朴素贝叶斯算法及贝叶斯网络详述_第3张图片

  • x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3独立
  • x 6 x_6 x6 x 7 x_7 x7在给定条件下独立
  • x 1 , x 2 , x 3 … x 7 x_1, x_2, x_3\dots x_7 x1,x2,x3x7的联合分布为:
    p ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 ) = p ( x 1 ) p ( x 2 ) p ( x 3 ) p ( x 4 ∣ x 1 , x 2 , x 3 ) p ( x 5 ∣ x 1 , x 3 ) p ( x 6 ∣ x 4 ) p ( x 7 ∣ x 4 , x 5 ) p(x_1, x_2, x_3, x_4, x_5, x_6, x_7)=p(x_1)p(x_2)p(x_3)p(x_4|x_1, x_2, x_3)p(x_5|x_1, x_3)p(x_6|x_4)p(x_7|x_4, x_5) p(x1,x2,x3,x4,x5,x6,x7)=p(x1)p(x2)p(x3)p(x4x1,x2,x3)p(x5x1,x3)p(x6x4)p(x7x4,x5)

你可能感兴趣的:(Machine,Learning)