宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

  朴素贝叶斯法,就是使用贝叶斯公式的学习方法,朴素就是它假设输入变量(向量)的各个分量之间是相互独立的。所以对于分量之间不独立的分布,如果使用它学习和预测效果就不会很好。

简化策略

  它是目标是通过训练数据集学习联合概率分布$P(X, Y)$用来预测。书上说,具体是先学习到先验概率分布以及条件概率分布,分别如下:(但我认为,直接学习$P(X, Y)$就行了,它要多此一举算出这两个再乘起来变成$P(X, Y)$,但其实计算量差不多,可能这样更好理解吧)

$P(Y = c_k), k = 1, 2, 3, …, K$

$P(X = x|Y = c_k) = P(X^{(1)} = x^{(1)}, …, X^{(n)} = x^{(n)}|Y = c_k), k = 1, 2, 3, …, K$

  其中输入空间$mathcal{X} subseteq R^n$为$n$维向量的集合,输出空间为标记集合$mathcal{Y} = {c_1, c_2, …, c_K}$。

  上面提到了先验概率分布,这里记一下先验概率分布与后验概率分布。先验概率分布与后验概率分布是相对而言的量,通常是要放在一起讨论的。如:$P(Y)$是直接测量的,或是我们经验中所认为的$Y$的概率分布,而当我们测量$X$后,条件概率分布$P(Y|X)$就是发生$X$后$Y$的后验概率分布。

  书中说,因为条件概率分布$P(X = x|Y = c_k)$有指数级数量的参数,它的估计实际不可行(实际上样本的数量也不够支撑那么多参数之间的潜在交叉关系)。事实上,假设$x^{(j)}$可取值有$S_j$个,j = 1, 2,… ,n , Y 可取值有K 个,那么参数个数就是$Kprodlimits_{j=1}^{n}S_j$。所以对输入的各个分量的分布进行了假设,假设各个分量之间相互独立(所以它们的联合分布就是直接乘起来),这是一个较强的假设,朴素贝叶斯因此得名。如下:

$P(X= x|Y = c_k) =  P(X^{(1)} = x^{(1)}, …, X^{(n)} = x^{(n)}|Y = c_k)$

$ = prodlimits_{j=1}^{n}P(X^{(j)} = x^{(j)}|Y = c_k)$

学习方式

  那么如何学习呢?对于有限离散输入输出来说的表达,可以直接计算样本集的概率分布当做总体分布。

  而对于连续的输入输出来说,通常要先假设$P(X, Y)$服从某个多维分布。然后,基于上面的独立性假设,$X$的各个分量是相互独立的,而各个分量和$Y$并不独立,所以可以分别拟合$P(X^{(j)}|Y), j = 1, 2, …, n$(可以用极大似然估计拟合$P(X^{(j)}, Y)$,再计算$P(X^{(j)}|Y)$),然后把它们全都乘起来得$P(X|Y) =  prodlimits_{j=1}^{n}P(X^{(j)}|Y)$(这里和上面不一样,因为是连续的,所以不能等于某个特定的值$x_j$),再拟合边缘分布$P(Y)$,然后与$P(X|Y)$相乘获得联合分布$P(X, Y)$。 当然也可以直接拟合$P(X, Y)$,因为$X$的分量之间相互独立,所以除了外协方差矩阵中除了对角线以及包含$Y$的协方差外,其它协方差$Cov(X^{(j)}, X^{(i)})$都为0,所以要优化的参数也少了很多,形如:

$egin{bmatrix} Cov(X^{(0)}, X^{(0)}) & 0 & . & . & . & Cov(X^{(0)}, Y) \ 0 &Cov(X^{(1)}, X^{(1)}) & . & .& . & Cov(X^{(1)}, Y) \ . & & . & & & . \ .& & & . && . \ .& & && . & .  \Cov(Y, X^{(0)}) & Cov(Y, X^{(1)}) & . & . & . &Cov(Y, Y)&end{bmatrix}$

  分类的时候,通过贝叶斯公式计算后验概率分布,取后验概率最大的$Y$作为预测结果:

$y = f(x) =  mathop{argmax}limits_{c_k} P(Y = c_k|X = x) $

$=  mathop{argmax}limits_{c_k} frac{P(Y = c_k, X = x)}{sumlimits_{k}P(X = x|Y = c_k)P(Y = c_k)}$

  因为分母对每个$Y$都是一样的,所以可以简化为:

$=  mathop{argmax}limits_{c_k} P(Y = c_k, X = x)$

  因此在这里最大后验概率的预测等价于最大联合概率。

后验最大化的含义

  这里的后验概率最大化等价于机器学习中常用的期望风险最小化。如果用期望风险最小化来推出预测函数,就要定义损失函数,书上选择0-1损失函数(也可以是别的损失函数形式)。具体证明直接贴书上的图:

统计学习方法——朴素贝叶斯法、先验概率、后验概率-编程部落