数据仓库与及数据挖掘文本分类实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015-2016学年第1学期实验报告
课程名称:数据仓库与及数据挖掘实验名称:文本的分类
实验完成人:
姓名:学号:
日期: 2015年 12月
实验一:文本的分类
1.实验目的
1)掌握数据预处理的方法,对训练集数据进行预处理;
2)掌握文本建模的方法,对语料库的文档进行建模;
3)掌握分类算法的原理,基于有监督的机器学习方法,训练
文本分类器;
4)利用学习的文本分类器,对未知文本进行分类判别;
5)掌握评价分类器性能的评估方法
2.实验分工
独立完成
3.实验环境
基于Windows平台,使用eclipse开发。
4.主要设计思想
4.1实验工具介绍
Eclipse:一个开放源代码的/基于Java的可扩展开发平
台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse最早是由IBM开发的,后来IBM将Eclipse作为一个开放源代码的项目发布。现在Eclipse 在协会的管理与指导下开发。
4.2特征提取与表达方法的设计
在此次实验中,我考虑了CHI特征提取的方法来建立数据字典。详细步骤见5.3描述。根据CHI特征提取,最终建立成数据字典,数据字典记录在目录E:\DataMiningSample\docVector下的allDicWordCountMap.txt 文档中。
最终的特征向量表达方式为:文档类别标识_单词词频。如:alt.atheism_abstact 1.0。其中alt.atheism为此文本所属的类别,abstact为对应的单词,1.0为该单词的词频数。
4.3分类算法的选择
本次实验使用的是朴素贝叶斯分类算法,朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。即:
Document)
P(Document
P(Category
|
|
*
nt)
Category)
)/P(Docume
P(Category
朴素贝叶斯模型:
)...2,1|(max arg Vmap an a a V P j =
j V 属于V 集合,其中Vmap 是给定一个example 得到的
最可能的目标值,a1…an 是这个example 里面的属性。这里面,Vmap 目标值就是后面计算得出的概率最大的一个,所以用max 来表示。贝叶斯公式应用到)...2,1|(an a a V P j 中可得到)...2,1(/P )(P )|...2,1(max arg Vmap an a a V V an a a P j j =,又因为朴素贝
叶斯分类器默认a1…an 他们互相独立,所以)...2,1(P an a a 对于
结果没有用处。因为所有的概率都要出同一个东西之后再比较大小,对最后结果没有影响。可得到)(P )|...2,1(max arg Vmap j j V V an a a P =。
尽管是带着这些朴素思想和过于简单化的假设,但朴素贝叶斯分类器在很多复杂的现实情形中仍能够取得相当好的效果。2004年,一篇分析贝叶斯分类器问题的文章揭示了朴素贝叶斯分类器取得看上去不可思议的分类效果的若干理论上的原因。尽管如此,2006年有一篇文章详细比较了各种分类方法,发现更新的方法(如boosted trees 和随机森林)的性能超过了贝叶斯分类器。朴素贝叶斯分类器的一个优势在于只需要根据少量的训练数据估计出必要的参数(变量的均值和方差)。由于变量独立假设,只需要估计各个变量的方法,而不需要确定整个协方差矩阵。
4.4 性能评估方法
本次实验我使用了准确率(P),召回率(R)和F1-Score 来评价分类结果。下面通过表4.1具体解释一下这三种性能评估方法的计算公式。
表4.1 预测结果和实际情况0-1状态图
P = True positive/(True positive + False positive) R = True positive/(True positive + False negative) F1-Score = (2 * P * R)/(P + R)
在此实验中,我通过准确率、召回率和F1-Score这三个性能评估方法对最后的结果进行了详细的分析。关于结果分析的详细描述见5.6。
5.实验过程
5.1文本分类语料库的采集
本实验的语料库是下载网上现成的英文文本语料库的,该语料库的类别有20类,分别为:alt.atheism,comp.graphics,comp.os.ms-windows.misc,comp.sys.ibm.pc.hardware,comp.sys.mac.hardware,comp.windows.x,misc.forsale,rec.autos,rec.motorcycles,rec.sport.baseball,rec.sport.hockey,sci.crypt,sci.electronics,sci.med,sci.space,soc.religion.christian,talk.politics.guns,talk.politics.mideast,talk.politics.misc,talk.religion.misc,其中每个分类有九千多文档,整个语料库有1万8千多文件。现在需要将这1万8千多文件分配成训练集和测试集,为了排除人为因素的干扰,和便于操作的效果,我编写了一个TextClassificationofRandom类来实现将语料库中20个分类都随机均分成训练集和测试集,这样我们就形成了训练集和测试集的数据。在后期实验过程中,通过多次随机生成训练集和测试集来进行实验,获得更详细精确的数据。详细步骤和结果见后面分析。
5.2数据预处理
(1)对所有英文文件进行英文词法分析,去除数字、连字符、标点符号、特殊字符,所有大写字母转换成小写字母,