朴素贝叶斯(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(y∣x1,x2,…,xm)=P(x1,x2,…,xm)P(y)P(x1,x2,…,xm∣y)
朴素贝叶斯算法流程:
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(xk∣yk)=2πσ1e−2σ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(xk∣y)=P(1∣y)xk+(1−P(1∣y))(1−xk)
伯努利分布是一种离散分布,只有两种可能的结果。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(xi∣y)的概率为 θ 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+α=x∈T∑xi=i=1∑∣T∣Nyi
把某个研究系统中涉及到的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。
贝叶斯网络(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(c∣a,b)P(b∣a)P(a)
每一对节点之间都有边连接
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(xn∣x1,x2,…,xn−1)…P(x2∣x1)P(x1)=i=2∏nP(xi∣x1,x2,…,xi−1)×P(x1)