数据挖掘-文本分类实验报告

上传人:宝路 文档编号:21741134 上传时间:2017-11-24 格式:DOC 页数:11 大小:239.85KB
返回 下载 相关 举报
数据挖掘-文本分类实验报告_第1页
第1页 / 共11页
数据挖掘-文本分类实验报告_第2页
第2页 / 共11页
数据挖掘-文本分类实验报告_第3页
第3页 / 共11页
数据挖掘-文本分类实验报告_第4页
第4页 / 共11页
数据挖掘-文本分类实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数据挖掘-文本分类实验报告》由会员分享,可在线阅读,更多相关《数据挖掘-文本分类实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、北京邮电大学2015-2016 学年第 1 学期实验报告课程名称: 数据仓库与数据挖掘 实验名称: 文本的分类 实验完成人:姓名: 学号: 日 期: 2015 年 12 月 实验一:文本的分类1. 实验目的1) 掌握数据预处理的方法,对训练集数据进行预处理;2) 掌握文本建模的方法,对语料库的文档进行建模;3) 掌握分类算法的原理,基于有监督的机器学习方法,训练文本分类器;4) 利用学习的文本分类器,对未知文本进行分类判别;5) 掌握评价分类器性能的评估方法2. 实验分工独立完成3. 实验环境基于 Windows 平台,使用 eclipse 开发。4. 主要设计思想4.1 实验工具介绍Ecli

2、pse:一个开放源代码的/基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 最早是由 IBM 开发的,后来 IBM 将 Eclipse 作为一个开放源代码的项目发布。现在Eclipse 在 eclipse.org 协会的管理与指导下开发。4.2 特征提取与表达方法的设计在此次实验中,我考虑了 CHI 特征提取的方法来建立数据字典。详细步骤见 5.3 描述。根据 CHI 特征提取,最终建立成数据字典,数据字典记录在目录E:DataMiningSampledocVector 下的 allDicWordCountMap.txt 文

3、档中。最终的特征向量表达方式为:文档类别标识_单词 词频。如:alt.atheism_abstact 1.0。其中 alt.atheism 为此文本所属的类别,abstact为对应的单词,1.0 为该单词的词频数。4.3 分类算法的选择本次实验使用的是朴素贝叶斯分类算法,朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。即: nt)/P(DocumeP(Categry*Category)|P(DocumnDocument)|P(Categry朴素贝叶斯模型: ).2,1|axVmpVj属于 V 集合,其中 Vmap

4、是给定一个 example 得到的最可能的目标值,ja1an 是这个 example 里面的属性。这里面,Vmap 目标值就是后面计算得出的概率最大的一个,所以用 max 来表示。贝叶斯公式应用到 中).2,1|(anVPj可得到 ,又因为朴)(/)(P)|.2,1(maxrgVp aVanPj素贝叶斯分类器默认 a1an 他们互相独立,所以 对于结果没有).2,1( n用处。因为所有的概率都要出同一个东西之后再比较大小,对最后结果没有影响。可得到 。)(P)|.2,1(maxrgVpjVanP尽管是带着这些朴素思想和过于简单化的假设,但朴素贝叶斯分类器在很多复杂的现实情形中仍能够取得相当好的

5、效果。2004 年,一篇分析贝叶斯分类器问题的文章揭示了朴素贝叶斯分类器取得看上去不可思议的分类效果的若干理论上的原因。尽管如此,2006 年有一篇文章详细比较了各种分类方法,发现更新的方法(如 boosted trees 和随机森林)的性能超过了贝叶斯分类器。朴素贝叶斯分类器的一个优势在于只需要根据少量的训练数据估计出必要的参数(变量的均值和方差) 。由于变量独立假设,只需要估计各个变量的方法,而不需要确定整个协方差矩阵。4.4 性能评估方法本次实验我使用了准确率(P) ,召回率(R )和 F1-Score 来评价分类结果。下面通过表 4.1 具体解释一下这三种性能评估方法的计算公式。表 4

6、.1 预测结果和实际情况 0-1 状态图实际情况 1 代表真实情况此类,0 表示不属于1 01 True positive False positive预测结果1 代表预测属于此类0 代表预测不属于此类 0 False negative True negativeP = True positive/(True positive + False positive)R = True positive/(True positive + False negative)F1-Score = (2 * P * R)/(P + R)在此实验中,我通过准确率、召回率和 F1-Score 这三个性能评估方法对最

7、后的结果进行了详细的分析。关于结果分析的详细描述见 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.electro

8、nics,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 个分类都随机均分成训练集和测试集,这样我们就形成了训练集和测试集的数据。在后期实验过程中,通过多次

9、随机生成训练集和测试集来进行实验,获得更详细精确的数据。详细步骤和结果见后面分析。5.2 数据预处理(1)对所有英文文件进行英文词法分析,去除数字、连字符、标点符号、特殊字符,所有大写字母转换成小写字母,实现方法是通过正则表达式:String res = line.split(a-zA-Z);(2)接着去停用词,过滤对分类无价值的词。结果保存在源文件对应文件.out里面。(3)第三步是找词根,将词根还原,并分别将每一类的所有文件的单词进行汇总,同时记录每个单词的词频,最终得到源文件对应文件.outstemed 里面。5.3 特征提取和表达首先我先解释一下 CHI 特征提取公式的意义:CHI 特

10、征提取: )()(),t(22 DCBACDNc在此公式中,变量的含义如下所示:N: 所有文档的数目A:在该分类下,包含此单词的文档数量B: 不在该分类下,包含此单词的文档数量C: 在该分类下,不包含此单词的文档数量D: 不在该分类下,不包含此单词的文档数量由于最后,只需要根据 CHI 的卡方值进行排序,为了简化运算,对公式做了简单的简化处理:简化后的计算方法为: ,因为在排序的步骤中,)(2DCBAN, (A+C),(B+D)都不会对最后的排序造成影响,所以这样的简化处理是合理的。计算每个单词的 CHI 值,降序排序后,分别取每一类的排序前 2000 个单词,经过汇总,去重,得到最终的数据字

11、典,一共是 32060 个单词。根据数据字典,将每篇训练集文件和测试集文件转换成特征向量。结果保存在源文件对应文件. outstemedspecial 里面。5.4 训练过程在本次实验中,我做了 5 组实验,每组实验又分为两个相对应的实验。因为我借鉴了交叉检验的思想,一开始我将整个数据集随机分成训练集和测试集两份,相当于 2 折交叉检验,再颠倒过来将训练集作为测试集,测试集作为训练集。这样整个过程算是一组实验,然后再将整个数据集随机分成训练集和测试集,重复上面步骤,最终进行了 5 组 10 次实验,利用这 10 次的结果的均值来对算法精度作估计。以求达到更精确的评估。这里我就简单介绍一次实验的

12、训练过程:(1)首先,我为了避免对文件的直接操作,可以将训练集文本的路径进行汇总,汇总的方法是通过命令提示符,转到源数据 20 类文件夹的目录文件下,输入 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/aa

13、a.lst);以及后面等一系列操作,不具体描述,在 Eclipse 中运行 TextClassificationofRandom 类后,在 E:DataMiningSampledocVector 目录下,生成两个文件,一个是记录训练数据绝对路径的文件,一个是记录测试数据绝对路径的文件。(3)将记录训练数据绝对路径的文件的绝对路径,作为 TrainMain 类的参数,运行来训练样本的特征,首先计算每个类别出现的特征词数,将结果保存在 NBTrain 工程下的 cateWordsNum.txt 文件中,保存方式为:类别+空格+次数。再计算某单词在某类别中出现的次数,将结果保存在 NBTrain 工

14、程下的cateWordsProb.txt 文件中,保存方式为:类别_单词+空格+词数。最后,计算所有类别的总次数,将结果保存在 NBTrain 工程下的 totalWordsNum.txt 文件中。这样我们就得到最后的训练模型。5.5 测试过程通过上述步骤,我们得到四个文件,即记录测试数据绝对路径的文件,cateWordsNum.txt,cateWordsProb.txt,totalWordsNum.txt,我们将这四个文件的绝对路径作为 TestMain 类的参数,运行,通过朴素贝叶斯的算法,得到每个文件属于每个类的后验概率,取其中最大值,作为文件最终被分到的类别,并将数据以文件绝对路径+空

15、格+类别的形式输出到 NBTest 工程下的classifyResultNew11.txt 文件中,方便后期的实验数据统计。5.6 实验结果和性能评估最后实验结果用混淆矩阵来记录,由于我一共做了十次实验,这里就不一一列举,我拿第一次的实验结果来展示一下(后面数据均展示第一次实验结果) ,完整的实验结果记录在 E:DataMiningSampledocVector五组实验数据目录下的分类结果.xlsx 文件下。第一次实验结果的混淆矩阵如图 5.2 所示。图 5.2 朴素贝叶斯分类结果-混淆矩阵表示上面混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实

16、归属类别,每一行的数据总数表示该类别的数据实例的数目,每一列中的数值表示真实数据被预测为该类的数目。其中第一行第一列的 370 表示有 370 个实际归属第一类的实例被预测为第一类,同理,第五行第一列的 1 表示有 1 个实际归属第一类的实例被错误预测为第五类。同时本文通过正确率、召回率和 F1-Score 这三个性能评估方法来评价分类结果。在十次实验过程中,每次都会得到各 20 类分别对应的正确率、召回率和F1-Score 值,在本文给出第一次实验得出的数据,如表 5.1 所示。表 5.1 第一次实验各 20 类对应正确率、召回率和 F1-Score 值正确率 召回率 F1-Score第 01 类 0.8645 0.8981 0.881第 02 类 0.5879 0.8531 0.6961第 03 类 0.7905 0.7207

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号