&&机器学习实战&&朴素贝叶斯

1.概述

分类器有时很难给出该数据实例属于哪一类这类问题的明确答案,这时可以要求分类器给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值。之所以称为’朴素‘,是因为整个形式化过程只做最原始,最简单的假设。

优点:在数据较少的情况下仍然有效,可以处理多类别问题。

缺点:对于输入数据的准备方式较为敏感。

适用数据类型:标称型数据。

标称型:一般在有限的数据中取,而且只存在‘是’和‘否’两种不同的结果(一般用于分类)

数值型:可以在无限的数据中取,而且数值比较具体化,例如4.02,6.23这种值(一般用于回归分析)

朴素贝叶斯理论是贝叶斯决策理论的一部分,所以先来了解一下贝叶斯理论。

2.贝叶斯理论

假设我们现在有一个数据集,它由两类数据组成,数据分布如图:

我们现在用p1(x,y)表示数据点(x,y)属于类别1(图中用圆点表示的类别)的概率;用p2(x,y)表示数据点(x,y)属于类别2(图中用三角形表示的类别)的概率。

那么对于一个新数据点(x,y),可以用下面的规则来判断他的类别:

&如果p1(x,y)>p2(x,y),那么类别为1;

&如果p2(x,y)>p1(x,y),那么类别为2。

也就是说,我们会选择高概率对应的类别。这就是贝叶斯决策理论的核心思想。为了能够计算p1和p2,有必要了解一下条件概率。

朴素贝叶斯的一般过程:

朴素贝叶斯假设样本各特征之间是不相关的,而且每个特征是同等重要的。(为什么称之为朴素)

朴素贝叶斯分类器通常有两种实现方式:一种基于贝努利模型实现,一种基于多项式模型实现。

python文本分类:对文档进行分类

1.准备数据:从文本中构建词向量。

        我们先将文本看成单词向量或者词条向量,也就是说将句子转换为向量。考虑出现在所有文档中的所有单词,在决定将哪些词纳入词汇表或者说所要的词汇集合,然后必须要将每一篇文档转换为词汇表上的向量。

2.训练算法:从词汇量计算概率。如何使用这些数字计算概率。现在已经知道一个词是否出现在一篇文档中,也知道该文档所属的类别。

该算法的伪代码如下:

3.测试算法:根据现实情况修改分类器。

可以用来过滤垃圾邮件。

可以从个人广告中获取区域倾向。

4.小结

         对于分类而言,使用概率有时要比使用硬规则有效。贝叶斯概率以及贝叶斯规则提供了一种利用已知值来估计位置概率的有效方法。

         可以通过特征之间的条件独立性假设,来降低对数据量的需求。

         利用现代编程语言来实现朴素贝叶斯时需要考虑很多实际因素。下溢出就是其中一个问题,它可以通过对概率取对数来解决。词袋模型在解决文档分类上比词集模型有所提高。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章