【Python机器学习】朴素贝叶斯——使用朴素贝叶斯进行文档分类(理论基础)

机器学习的一个重要应用就是文档的自动分类。在文档分类中,整个文档(比如电子邮件)是实例,而电子邮件中的某些元素则构成特征。虽然电子邮件是一种会不断增加的文本,但我们同样也可以对新闻报道、用户流言、公文等其他任意类型的文本进行分类。我们可以观察文档中出现的词,并把每个词的出现或者不出现作为一个特征,这样得到的特征数目就会跟词汇表中的词目一样多。朴素贝叶斯是贝叶斯分类器的一个扩展,适用于文档分类的常用算法。

使用每个词作为特征并观察他们是否出现,这样得到的特征数目会非常非常多。据估计,仅在英语中,单词总数就有500000之多,为了进行英文阅读,估计需要掌握数千单词。

朴素贝叶斯的一般过程:

1、收集数据

2、准备数据:需要数值型或者布尔型数据

3、分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好

4、训练算法

5、测试算法

6、使用算法:一个常见的朴素贝叶斯应用是文档分类。可以在任意的分类场景中使用朴素贝叶斯分类器,不一定非要是文本。

假设词汇表中有1000个单词。要得到好的概率分布,就需要足够的数据样本,假定样本数为N。由统计学知,如果每个特征需要N个样本,那么对于10个特征将需要N^{10}个样本,对于包含1000个特征的词汇表将需要N^{1000}个样本。可以看到,所需要的样本数会随着特征数目增大而迅速增长。

如果特征之间相互独立,那么样本数就可以从N^{1000}减少到1000*N。所谓独立指的是统计意义上的独立,即一个特征或单词出现的可能性与它和其他单词相邻没有关系。举个例子,假设单词bacon出现在unhealthy后面与出现在delicious后面的概率相同。当然,我们知道这种假设并不成立,bacon尝尝出现在delicious附近,很少出现在unhealthy附近,这个假设正式朴素贝叶斯中朴素一词的含义。朴素贝叶斯分类器中的另一个假设是:每个特征同等重要。其实这个假设也有问题。

如果要判断留言板的留言是否得当,那么可能不需要看完所有1000个单词,而只需要看10~20个特征就足可以做出判断了。尽管上述假设存在一些小的瑕疵,但朴素贝叶斯的实际效果很好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值