贝叶斯分类

基本原理

       贝叶斯分类是基于贝叶斯公式的一种分类方法,它是通过先验知识和似然函数来估计后验概率。其公式如下:P(H | X) = P(X | H)*P(H) / P(X),其中H是假设,在分类中也就是判定的某种类别,X是证据向量,在分类中也就是n维的特征向量值,一般写作X=(x1, x2, ..., xn)。

       因此对于一个给定的X,我们可以通过贝叶斯公式针对每种假设Hi,计算后验概率P(Hi | X),并将X归类为P(Hi | X)值最大的假设Hi。因此对于任意一个测试样本X,我们需要计算所有可能的假设Hi在X下的后验概率值。计算P(H | X),我们需要计算三个量:

似然函数P(X | H):在假设H成立的情况下,X出现的概率。X是一个多维向量,为了计算的简便性,我们假定X向量的n个特征之间是相互独立的,这样P((x1, x2, ..., xn) | H) = P(x1 | H) *P(x2 | H) * ... * P(xn | H),极大降低了似然函数的计算复杂度。我们将基于这种假设的贝叶斯分类称作朴素贝叶斯分类。同时,在计算每个特征xi的似然估计时,P(xi | H)很可能出现零,导致计算出来的后验概率值为0,这就是零频问题,解决零频问题的方法有很多,一个经典的方法是拉普拉斯变换。

       先验概率P(H):先验概率P(H)是对每种假设分布的先验知识,在没有专家知识的情况下,我们一般采用训练样本来计算先验概率。

先验概率P(X):P(X)是特征向量X分布的先验概率,在没有更多专家知识的情况下,我们可以假设它为1。其实无论P(X)值为多少,都不会影响对最后结果的评判。因为P(X)是计算所有后验概率的共同分母,其值不影响后验概率大小的比较。

文本分类伪代码

void Bayes_classifier()
{
	分词(以词为特征);
	特征选择(假设选取2000个特征词);
	foreach(c in C) { // C为类别的集合
		计算P(c); // |S(c)| / |S|
foreach(f in F) { // F为选取的特征的集合
			计算P(f | c); // Num(f in S(c)) / Num(f in S),注意零频问题
}
}
foreach(t in T) { // T为测试集
	分词;
	构造特征向量X;
	foreach(c in C) {
		计算P(X | c)*P(c);
}
将t归类为P(X|c)*P(c)值最大的类别c;
	}
}

效能分析

       贝叶斯分类理论上具有最低的分类错误率,但是其实际效果却不一定是最好的。主要是:1、特征属性相互独立性假设导致模型与实际的偏差;2、概率值的错误估计,似然函数和先验概率都是基于有限的训练样本计算而得,跟实际的概率分布存在误差。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值