机器学习算法(二):朴素贝叶斯算法

朴素贝叶斯算法的学习器如下

$h(x)=arg\max\limits_{y} P (y | x)$

对每个样本x,选择那个能使后验概率$P (y | x)$ 最大的类别y

假设所有属性是条件独立的,那么

$P (y | x) = \frac{P(y)P(x | y)}{P(x)} = \frac{P(y)}{P(x)}\prod\limits_{i=1}^{n} P(x_{i}|y)$

对所有类别来说P(x)相同,那么朴素贝叶斯分类器可以写为

$h(x)=arg\max\limits_{y}P(y)\prod\limits_{i=1}^{n} P(x_{i}|y)$

 接下来的问题就是如何求P(y)和$P(x_{i}|y)$,

$P(y) = \frac{|D_{y}|+1}{|D|+N} $,其中D为训练集,$D_{y}$为训练集D中第y类样本的集合,N为类别数目

对于离散属性

通过下面的似然估计加上拉普拉斯修正得到

$P(x_{i}|y) = \frac{|D_{y,x_{i}}|+1}{|D_{y}|+N_{i}} $

$D_{y,x_{i}}$为$D_{y}$中在第i个属性为取值为$x_{i}$的样本集合,$N_{i}$为第i个属性可能的取值数目

对于连续属性

使用概率密度函数,具体参数需要根据样本分布通过极大似然估计得到。

$p(x_{i}|y)=\frac{1}{\sqrt{2\pi}\sigma_{y,i}}exp(-\frac{(x_{i}-\mu_{y,i})^{2}}{2\sigma_{y,i}^{2}})$

posted @ 2018-06-11 16:45  何振华Jeanva  阅读(154)  评论(2编辑  收藏