




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京邮电大学2015-2016 学年第 1 学期实验报告课程名称:数据仓库与数据挖掘实验名称 :文本的分类实验完成人 :姓名: 学号:日 期: 2015 年 12 月实验一:文本的分类1. 实验目的1) 掌握数据预处理的方法,对训练集数据进行预处理;2) 掌握文本建模的方法,对语料库的文档进行建模;3) 掌握分类算法的原理,基于有监督的机器学习方法,训练文本分类器;4) 利用学习的文本分类器,对未知文本进行分类判别;5) 掌握评价分类器性能的评估方法2. 实验分工独立完成3. 实验环境基于 Windows 平台,使用 eclipse 开发。4. 主要设计思想4.1 实验工具介绍Eclipse:
2、一个开放源代码的 / 基于 Java的可扩展开发平台。就其本身而言, 它只是一个框架和一组服务, 用于通过插件组件构建开发环境。 Eclipse最早是由 IBM 开发的,后来 IBM 将 Eclipse 作为一个开放源代码的项目发布。现在 Eclipse 在 协会的管理与指导下开发。4.2 特征提取与表达方法的设计在此次实验中,我考虑了 CHI特征提取的方法来建立数据字典。详细步骤见5.3 描述。根据 CHI 特征提取,最终建立成数据字典,数据字典记录在目录 E:DataMiningSampledocVector 下的 allDicWordCountMap.txt 文档
3、中。最终 的特 征 向量表达 方 式为 :文 档 类别 标识 _单词 词 频。 如: alt.atheism_abstact 1.0 。其中 alt.atheism 为此文本所属的类别, abstact 为对应的单词, 1.0 为该单词的词频数。4.3 分类算法的选择本次实验使用的是朴素贝叶斯分类算法, 朴素贝叶斯法是基于贝叶斯定理与 特征条件独立假设的分类方法。 朴素贝叶斯分类器基于一个简单的假定: 给定目 标值时属性之间相互条件独立。即:P(Category | Document) P(Document | Category) * P(Category )/P(Docume nt) 朴素贝
4、叶斯模型:Vmap arg max P(Vj | a1, a2. an)Vj 属于 V 集合,其中 Vmap 是给定一个 example 得到的最可能的目标值, a1an 是这个 example 里面的属性。这里面, Vmap 目标值就是后面计算得出的 概率最大的一个,所以用 max 来表示。贝叶斯公式应用到 P(Vj | a1, a2. an) 中 可得到Vmap arg max P( a1, a2. an | Vj )P( Vj ) /P ( a1, a2. an),又因为朴素贝叶斯分类器默认 a1an 他们互相独立,所以 P(a1,a2. an)对于结果没有用 处。因为所有的概率都要出同
5、一个东西之后再比较大小,对最后结果没有影响。 可得到Vmap arg max P( a1, a2. an| Vj )P( Vj )。尽管是带着这些朴素思想和过于简单化的假设, 但朴素贝叶斯分类器在很多 复杂的现实情形中仍能够取得相当好的效果。 2004 年,一篇分析贝叶斯分类器 问题的文章揭示了朴素贝叶斯分类器取得看上去不可思议的分类效果的若干理 论上的原因。尽管如此, 2006 年有一篇文章详细比较了各种分类方法,发现更 新的方法(如 boosted trees和随机森林) 的性能超过了贝叶斯分类器。 朴素贝叶 斯分类器的一个优势在于只需要根据少量的训练数据估计出必要的参数 (变量的 均值和
6、方差)。由于变量独立假设,只需要估计各个变量的方法,而不需要确定 整个协方差矩阵。4.4 性能评估方法本次实验我使用了准确率( P),召回率( R)和 F1-Score来评价分类结果面通过表 4.1 具体解释一下这三种性能评估方法的计算公式。表 4.1 预测结果和实际情况 0-1 状态图实际情况1 代表真实情况此类, 0 表示不属于预测结果101 代表预测属于此类1True positiveFalse positive0 代表预测不属于此类0False negativeTrue negativeP = True positive/(True positive + False positive)
7、 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 , co
8、mp.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,其中每个分类有九千多文档, 整个语料库有
9、1万8千多文件。现在需要将这 1万 8千多文件分配成训练集和测试集, 为了排除人为因素的干扰,和便于操作的效果,我编写了一个 TextClassificationofRandom 类来实现将语料库中 20 个分类都随机均分成训练 集和测试集, 这样我们就形成了训练集和测试集的数据。 在后期实验过程中, 通 过多次随机生成训练集和测试集来进行实验, 获得更详细精确的数据。 详细步骤 和结果见后面分析。5.2 数据预处理(1) 对所有英文文件进行英文词法分析,去除数字、连字符、标点符号、特殊 字符,所有大写字母转换成小写字母,实现方法是通过正则表达式: String res = line.spli
10、t(a-zA-Z);( 2)接着去停用词,过滤对分类无价值的词。结果保存在源文件对应文件.out里面。(3)第三步是找词根,将词根还原,并分别将每一类的所有文件的单词进行汇 总,同时记录每个单词的词频,最终得到源文件对应文件 .outstemed 里面。5.3 特征提取和表达首先我先解释一下 CHI 特征提取公式的意义:CHI特征提取:(2 t,c)N(AD BC)2( A C)( A B)( B D)( C D)在此公式中,变量的含义如下所示:N: 所有文档的数目A:在该分类下,包含此单词的文档数量B: 不在该分类下,包含此单词的文档数量C: 在该分类下,不包含此单词的文档数量D: 不在该分
11、类下,不包含此单词的文档数量由于最后, 只需要根据 CHI的卡方值进行排序, 为了简化运算, 对公式做了 简单的简化处理:( AD BC)2简化后的计算方法为: ( AD BC) ,因为在排序的步骤中,N, ( A B)( C D)( A+C),(B+D) 都不会对最后的排序造成影响,所以这样的简化处理是合理的。 计算每个单词的 CHI值,降序排序后, 分别取每一类的排序前 2000个单词, 经过汇总,去重,得到最终的数据字典,一共是 32060 个单词。根据数据字典, 将每篇训练集文件和测试集文件转换成特征向量。 结果保存 在源文件对应文件 . outstemedspecial 里面。5.4
12、 训练过程在本次实验中, 我做了 5 组实验,每组实验又分为两个相对应的实验。 因为 我借鉴了交叉检验的思想,一开始我将整个数据集随机分成训练集和测试集两 份,相当于 2 折交叉检验,再颠倒过来将训练集作为测试集, 测试集作为训练集。 这样整个过程算是一组实验, 然后再将整个数据集随机分成训练集和测试集, 重 复上面步骤,最终进行了 5 组 10 次实验,利用这 10次的结果的均值来对算法精 度作估计。以求达到更精确的评估。这里我就简单介绍一次实验的训练过程 :(1)首先,我为了避免对文件的直接操作,可以将训练集文本的路径进行 汇总,汇总的方法是通过命令提示符,转到源数据 20 类文件夹的目录
13、文件下, 输入 dir /s/b/l *aaa.lst,回车,这样,源数据 20 类文件夹下面出现一个aaa.lst 文件,用写字板打开文件,将前面几行非源数据文件绝对路径的数据删 掉。最后得到如图 5.1 的 aaa.lst 文件图 5.1 aaa.lst 部分内容示意图(2)然后 ,通过 java 的文 件操作 FileReader fileReader = new FileReader(E:/DataMiningSample/orginSample/aaa.lst); 以及后面等一系 列操作,不具体描述,在 Eclipse 中运行 TextClassificationofRandom 类
14、后, 在 E:DataMiningSampledocVector 目录下,生成两个文件, 一个是记录训练数 据绝对路径的文件,一个是记录测试数据绝对路径的文件。3)将记录训练数据绝对路径的文件的绝对路径,作为TrainMain 类的参数,运行来训练样本的特征, 首先计算每个类别出现的特征词数, 将结果保存在 NBTrain 工程下的 cateWordsNum.txt 文件中,保存方式为:类别 +空格 +次数。 再计算某单词在某类别中出现的次数,将结果保存在 NBTrain 工 程下的 cateWordsProb.txt 文件中,保存方式为:类别 _单词 +空格 +词数。最后,计算 所有类别的总
15、次数, 将结果保存在 NBTrain 工程下的 totalWordsNum.txt 文件中。 这样我们就得到最后的训练模型。5.5 测试过程 通过上述步骤,我们得到四个文件,即记录测试数据绝对路径的文件, cateWordsNum.txt ,cateWordsProb.txt ,totalWordsNum.txt ,我们将这四个文 件的绝对路径作为 TestMain 类的参数,运行,通过朴素贝叶斯的算法,得到每 个文件属于每个类的后验概率, 取其中最大值, 作为文件最终被分到的类别, 并 将数据 以 文件 绝对 路径 +空 格+类 别的 形 式输 出到 NBTest 工程 下的 classif
16、yResultNew11.txt 文件中,方便后期的实验数据统计。5.6 实验结果和性能评估最后实验结果用混淆矩阵来记录, 由于我一共做了十次实验, 这里就不一一 列举,我拿第一次的实验结果来展示一下(后面数据均展示第一次实验结果) , 完整的实验结果记录在 五组实验数据目录下 的分类结果 .xlsx 文件下。第一次实验结果的混淆矩阵如图 5.2 所示。图 5.2 朴素贝叶斯分类结果 - 混淆矩阵表示上面混淆矩阵的每一列代表了预测类别, 每一列的总数表示预测为该类别的 数据的数目; 每一行代表了数据的真实归属类别, 每一行的数据总数表示该类别 的数据实例的数目, 每一列中的数值表示真实数据被预
17、测为该类的数目。 其中第 一行第一列的 370表示有 370个实际归属第一类的实例被预测为第一类,同理, 第五行第一列的 1表示有 1个实际归属第一类的实例被错误预测为第五类。同时本文通过正确率、召回率和 F1-Score 这三个性能评估方法来评价分类 结果。在十次实验过程中,每次都会得到各 20 类分别对应的正确率、召回率和 F1-Score 值,在本文给出第一次实验得出的数据,如表 5.1 所示。表 5.1 第一次实验各 20 类对应正确率、召回率和 F1-Score 值正确率召回率F1-Score第 01 类0.86450.89810.881第 02 类0.58790.85310.696
18、1第 03 类0.79050.72070.754第 04 类0.74080.7260.7333第 05 类0.93520.69460.7971第 06 类0.76720.85120.8071第 07 类0.91610.51970.6631第 08 类0.9360.86710.9002第 09 类0.95150.96320.9573第 10 类0.98490.91770.9501第 11 类0.93970.97770.9583第 12 类0.93090.93090.9309第 13 类0.83970.79720.8179第 14 类0.86270.92920.8947第 15 类0.89420.
19、9470.9199第 16 类0.84560.9470.8934第 17 类0.79810.93850.8626第 18 类0.83240.98730.9033第 19 类0.83530.88380.8589第 20 类0.95510.5120.6667总体86.04%84.31%84.23%通过上表,可以发现第 2 类的正确率、第 7 类的召回率和第 20类的召回率 均低于 60%,和其他实验数据有较大差别,同时第 2 类,第 7 类和第 20 类的 F1-Score 值都低于 70%,这些都值得我们去仔细分析。为更形象的看出上表的数据特性,通过上表数据建立成 3 维柱形图,如图5.3 所示
20、。图 5.3 第一次实验各 20 类对应评估性能分布图通过上图可以很明显看出第 2 类,第 7 类和第 20类的数据有明显差异,评 价性能不好。为更精确的评估该分类器的性能, 下面给出 10次实验,各 20类对应的平均 正确率、平均召回率和平均 F1-Score ,见表 5.2.表 5.2 10 次实验各 20 类对应数据指标平均正确率平均召回率平均 F1-Score第 01 类0.88870.88670.8871第 02 类0.68660.79830.7303第 03 类0.75960.74760.7516第 04 类0.77340.72350.7471第 05 类0.89320.73480
21、.8042第 06 类0.77570.85700.8135第 07 类0.90310.55520.6870第 08 类0.91370.89440.9038第 09 类0.95900.94040.9495第 10 类0.97480.92620.9499第 11 类0.94940.97780.9633第 12 类0.87770.95740.9152第 13 类0.85260.78700.8180第 14 类0.87870.94370.9099第 15 类0.86090.95320.9036第 16 类0.84190.94780.8914第 17 类0.84630.93880.8896第 18 类0.85770.98750.9176第 19 类0.84030.87970.8592第 20 类0.93250.59260.7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 百货零售企业信息技术应用考核试卷
- 皮革服装快速原型制作考核试卷
- 稀土金属加工中的质量改进团队建设考核试卷
- 第二课堂教育的创新与实践
- 人教B版高中数学必修四全册教学课件
- 桡动脉介入手术术后护理
- 2025授权合同 代理出口合同
- 2025煤炭运输合同标准版范本
- 2025标准工厂设备维护服务合同范本
- 2025关于北京公寓房预定合同范本
- GB/T 25146-2010工业设备化学清洗质量验收规范
- GB/T 212-2008煤的工业分析方法
- GB/T 17390-2010潜油电泵拆卸报告的编写
- GB/T 10822-2003一般用途织物芯阻燃输送带
- 班主任工作坊活动方案
- 国开电大 管理概论 形考任务一(画组织结构图)
- 三自由度并联机器人结构设计
- 仓储装卸服务合同
- 式双钩五点安全带培训课件
- 名片设计 课件
- 钳工实操评分表(凹凸配合)
评论
0/150
提交评论