朴素贝叶斯算法原理(朴素贝叶斯算法和最大似然估计)
朴素贝叶斯算法原理(朴素贝叶斯算法和最大似然估计)为什么后验概率最大化可以采用呢?这是通过期望风险最小化推导出来的(过程略)条件独立又可表示为很难算出来,输入特征有的是独立的有的是不独立的,不独立的还需要知道他们的关系,参数非常大。但有一点,如果这些特征属性都独立,之间没有关系,那么这个联合条件概率就很好求了。假设数据集个数为n,则朴素贝叶斯分类准则:后验概率最大化,那个ck的后验概率最大,则将ck作为x的输出。因为P(X=x)对所有的类ck都是一样的,所以可以不计算分母,只比较分子
典型的列子:文本文档的分类问题。
一、朴素贝叶斯
定义:朴素贝叶斯是基于贝叶斯定理和特征条件独立假设独立的分类方法。具体地,对于给定的训练数据,首先基于特征条件独立假设(naive,天真,因为把模型想的这么简单)学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
基于概率分布模型的分类问题说白了就是求P(y|X),比如LR,我们是知道它的分布是伯努利(这个是LR的前提假设),求P(y=1|X=x)大还是P(y=0|X=x),然后伯努利属于广义线性,根据推导能得到P(y=0|X=x)的公式表达。但对于一堆数据,我不想假设他是什么分布,但我还是要求P(Y=ck|X=x),根据贝叶斯定理知道,条件概率:
很难算出来,输入特征有的是独立的有的是不独立的,不独立的还需要知道他们的关系,参数非常大。但有一点,如果这些特征属性都独立,之间没有关系,那么这个联合条件概率就很好求了。假设数据集个数为n,则
朴素贝叶斯分类准则:后验概率最大化
,那个ck的后验概率最大,则将ck作为x的输出。因为P(X=x)对所有的类ck都是一样的,所以可以不计算分母,只比较分子
条件独立又可表示为
为什么后验概率最大化可以采用呢?这是通过期望风险最小化推导出来的(过程略)
(朴素贝叶斯重点在于会通过这个分类器对给定的数据集分类)
如何求p(Y=ck),p(X=xi|Y=ck) ,这里用频数去估计近似
但这会有个问题,如果在训练集中,某个特征没有出现过,即p(X=xi|Y=ck)为0,那这导致这个类的概率就为0了。我们知道没有出现只是概率偏低,但不能是绝对不可能出现。为了解决这个情况,提出了“平滑”处理,即贝叶斯估计,分子分母个加上一个数:
二、最大似然估计
设输入向量为
。我们假定输入特征
是离散的、二值化的变量,即
。对每一个训练样例,输出对象是0或者1,即
。我们的模型由
参数化。
我们把
建模成伯努利分布,所以这是朴素贝叶斯最简单的特例之一。
我们根据
来建立
的联合分布。
(1)我们先写出
(2)计算关于各个参数的偏导数,令其为0,求得各个参数。
先求
过程如下:
从而,
接下来求
过程如下;
从而,
同理
的证明与上面类似,我们在这里只写出答案:
最后,我们想说明一下,我们上述建模的贝叶斯分类器,是一个线性分类器;即存在某个
使得
(假定
是一个截距项)。
证明如下:
于是,我们可以得到:
也就是说,我们拿一个新数据
代入模型测试,利用我们上面得到的线性分类器
,与利在朴素贝叶斯比较
是等效的。