贝叶斯分类

Posted LibRec智能推荐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贝叶斯分类相关的知识,希望对你有一定的参考价值。

注:图片来源于网络


1. 文本数据预处理



1.1 分词

一般而言,一篇文档可以视为具有先后关系的词语组合。在对文档进行分析之前,首先对文档进行分词操作。中文分词与英文分词不同,英文分词可以通过去除数字、连字符、标点符号、特殊字符来完成,同时进行一些其他操作比如字符的大小转小写等。中文分词目的为将一个句子分解成一些易于分析的词和短语。具体实现可以通过词典及条件随机场等方式来完成分词。目前在中文分词领域,常见的分词工具有Standard、IKAnalyzer、paoding、jieba等。


1.2 去停用词

通过停用词(stop words)库过滤对分类无价值的词(比如a,an,the(英文);的、啊、吧(中文)等词)


1.3 词根还原

1. 词干提取(stemming):去除词缀得到词根的过程,比如fisher--->fish,successful--->success

2. 词形还原(lemmatization):把一个任何形式的语言词汇还原为一般形式,比如:dogs--->dog,did--->do)


1.4 特征词的选取

对词频进行统计,比如分别统计1到5的词频的词:

次数大于等于1次的词有10000个

次数大于等于2次的词有5000个

次数大于等于3次的词有3000个

次数大于等于4次的词有2500个

次数大于等于5次的词有2000个


特征词的选取方式:

1. 选取所有词作为特征

2. 选取大于等于3次的词作为特征

分类算法最后会对两种方式的计算效率和准确度做比较。


2. 词的权重计算(TD-IDF)



TF-IDF (term frequency inverse document frequency) 评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。如果我们并没有把频繁出现的词(stop words)从词汇表中移除,那么它是非常有用的。


如果一个关键词只在很少的文档中出现,我们通过它就容易锁定目标,它的权重也就应该大。反之如果一个词在大量文档中出现,我们看到它仍然不是很清楚要找什么内容,因此它应该小。


TF-IDF的效果:如果一个单词在一个文档的集合中出现的次数很频繁,那么DF的值就会很大,IDF的值就会很小,如此的小以至于当相乘的时候他减少了权重,所以通过TF-IDF来改善权重计算。


2.1 计算词频(TF)

词频(TF)=某个词在文章中出现的次数

考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。

标准化词频(TF)=某个词在文章中出现的次数/文章的总词数

或者:

标准化词频(TF)=某个词在文章中出现的次数/该文出现次数最多的词的出现次数


2.2 计算逆文档频率(IDF)

需要一个语料库(corpus),用来模拟语言的使用环境,如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。(为了让除数不可能为0,这里进行+1处理)

2.3 计算TF-IDF

TF-IDF=词频(TF)*逆文档率(IDF)


TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。停顿词拥有比较小的权重,不经常出现的单词拥有较大的权重。重要的单词和话题单词往往拥有比较大权重,用以在向量化的过程中发挥更重大的作用。


权重的设定必须满足下面两个条件:

1. 一个词预测主题能力越强,权重就越大,反之,权重就越小。

2. 应删除词的权重应该是零。

在实际分类的时候同时对待分类文本再利用该TF-IDF标准来提取有代表性的关键词。


2.4 特征向量

TF-IDF权重下的向量空间模型,将词频向量的值替换为TF-IDF值。


文档用词向量表示

每个词是向量的一个分量(属性)

每个分量的值是对应词在文档中出现的次数。


3. 朴素贝叶斯算法



3.1 贝叶斯定理

先验概率:根据以往经验和分析得到的概率,如全概率公式,它往往作为“由因求果”问题中的“因”出现。


后验概率:得到“结果”的信息后重新修正的概率,如贝叶斯公式中的,是“执果寻因”问题中的“因”。先验概率与后验概率有不可分割的联系,后验概率的计算要以先验概率为基础。后验概率可以根据通过贝叶斯公式,用先验概率和似然函数计算出来。


贝叶斯公式:

贝叶斯分类

上式中的分母P(A),可以根据全概率公式分解为:

贝叶斯分类

3.2 多项式朴素贝叶斯(Multinomial Naive Byes)

在贝叶斯分类领域,常见的模型有三类:高斯模型,伯努利模型,多项式模型。其中高斯模型主要应用在特征为连续特征的数据集中。伯努利模型与多项式模型可以应用与离散特征的数据集。在这一节中,主要讲解多项式模型在文本中的应用。 


对于每一个文档,可以通过合适的方式构建出基于当前文档的特征向量。具体构建方式可以通过构建词库以及每一个文档中所有词的TF-IDF数值来将文档映射到词库长度的特征空间中。将所有的数据构建特征向量-标签的形式并区分出训练数据和测试数据。


多项式朴素贝叶斯的训练过程为:

1、计算出每一个类别出现的概率(先验概率)

2、计算出当前类别下每一个特征出现的概率

3、构建联合概率分布。

4、计算输入数据在给定特征下归属于某一类特征的概率<即计算边缘分布>。


Naïve Bayes存在假设,不同特征之间相互独立。

多项式贝叶斯通用公式:

贝叶斯分类

其中,Ni 为在当前类别中样本的总数目,N_ki 为在当前样本中当前特征出现的次数,1与|V|用于平滑数据。


朴素贝叶斯文本分类相关论文: 

http://www.cs.waikato.ac.nz/~eibe/pubs/kibriya_et_al_cr.pdf



4. 评价指标



精度(Precision)

精度是精确性的度量,表示被分为正例的示例中实际为正例的比例:

precision=TP/(TP+FP)

召回率(Recall)

覆盖面的度量,度量有多个正例被分为正例, 

recall=TP/(TP+FN)=TP/P=sensitive,

可以看到召回率与灵敏度是一样的。


F1值(综合分类率)

综合考虑查准率与查全率,可以得到新的评价指标F1测试值,也称为综合分类率:

 

准确率(Aaccuracy)

正确率是最常见的评价指标, accuracy =(TP+TN)/(P+N),这个很容易理解,就是被分对的样本数除以所有的样本数。通常来说,正确率越高,分类器越好。




猜你喜欢





以上是关于贝叶斯分类的主要内容,如果未能解决你的问题,请参考以下文章

机器学习系列-朴素贝叶斯分类器

数据挖掘-贝叶斯分类器

贝叶斯定理(贝叶斯分类)

贝叶斯分类

朴素贝叶斯分类

算法 - 朴素贝叶斯分类算法