[机器学习实验报告-朴素贝叶斯学习和分类文本]

 机器学习实验报告

 朴素贝叶斯学习和分类文本

 (2015年度秋季学期)

 实验内容

 问题:通过朴素贝叶斯学习和分类文本

 目标:可以通过训练好的贝叶斯分类器对文本正确分类

 实验设计

 实验原理与设计:

 在分类(classification)问题中,常常需要把一个事物分到某个类别。一个事物具有很多属性,把它的众多属性看做一个向量,即x=(x1,x2,x3,…,xn),用x这个向量来代表这个事物。类别也是有很多种,用集合Y=y1,y2,…ym表示。如果x属于y1类别,就可以给x打上y1标签,意思是说x属于y1类别。这就是所谓的分类(Classification)。x的集合记为X,称为属性集。一般X和Y的关系是不确定的,你只能在某种程度上说x有多大可能性属于类y1,比如说x有80%的可能性属于类y1,这时可以把X和Y看做是随机变量,P(Y|X)称为Y的后验概率(posterior probability),与之相对的,P(Y)称为Y的先验概率(prior probability) 1。在训练阶段,我们要根据从训练数据中收集的信息,对X和Y的每一种组合学习后验概率P(Y|X)。分类时,来了一个实例x,在刚才训练得到的一堆后验概率中找出所有的P(Y|x), 其中最大的那个y,即为x所属分类。根据贝叶斯公式,后验概率为

 在比较不同Y值的后验概率时,分母P(X)总是常数,因此可以忽略。先验概率P(Y)可以通过计算训练集中属于每一个类的训练样本所占的比例容易地估计。

 在文本分类中,假设我们有一个文档d∈X,X是文档向量空间(document space),和一个固定的类集合C={c1,c2,…,cj},类别又称为标签。显然,文档向量空间是一个高维度空间。我们把一堆打了标签的文档集合<d,c>作为训练样本,<d,c>∈X×C。例如:<d,c>={Beijing joins the World Trade Organization, China}对于这个只有一句话的文档,我们把它归类到 China,即打上china标签。

 我们期望用某种训练算法,训练出一个函数γ,能够将文档映射到某一个类别: γ:X→C这种类型的学习方法叫做有监督学习,因为事先有一个监督者(我们事先给出了一堆打好标签的文档)像个老师一样监督着整个学习过程。朴素贝叶斯分类器是一种有监督学习。

 实验主要代码:

 1、

 由于中文本身是没有自然分割符(如空格之类符号),所以要获得中文文本的特征变量向量首先需要对文本进行中文分词。这里采用 极易中文分词组件

 2、

 先验概率计算,N表示训练文本集总数量。

 3、

 条件概率计算,为在条件A下发生的条件事件B发生的条件概率。x?给定的文本属性,c?给定的分类

 4、

 对给定的文本进行分类

 三、测试数据

 训练集文本:

 数据样例选用 Sogou实验室的文本分类数据的mini版本

 类别及标号

 测试数据文本:

 通过观察可知,该文本预期为IT类文章

 实验结果

 运行结果如下图

 根据数据集的分类编号可知,该测试文本属于IT,与预期相符

 五、遇到的困难及解决方法、心得体会

 通过此次实验,让我对朴素贝叶斯有了更深刻的理解,原本只是了解基本的先验概率公式。实验过程中学习了中文的分词以及停用词的使用,使分类更加的准确,也认识到了贝叶斯广阔的实用空间,对于机器学习这门课的兴趣也更加浓厚。

推荐访问:学习 朴素 文本 机器 实验