数据挖掘-文本分类实验报告.doc_第1页
数据挖掘-文本分类实验报告.doc_第2页
数据挖掘-文本分类实验报告.doc_第3页
数据挖掘-文本分类实验报告.doc_第4页
数据挖掘-文本分类实验报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京邮电大学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:DataMiningSampledocVector下的allDicWordCountMap.txt文档中。最终的特征向量表达方式为:文档类别标识_单词 词频。如:alt.atheism_abstact 1.0。其中alt.atheism为此文本所属的类别,abstact为对应的单词,1.0为该单词的词频数。4.3 分类算法的选择本次实验使用的是朴素贝叶斯分类算法,朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。即:朴素贝叶斯模型:属于V集合,其中Vmap是给定一个example得到的最可能的目标值,a1an是这个example里面的属性。这里面,Vmap目标值就是后面计算得出的概率最大的一个,所以用max来表示。贝叶斯公式应用到中可得到,又因为朴素贝叶斯分类器默认a1an他们互相独立,所以对于结果没有用处。因为所有的概率都要出同一个东西之后再比较大小,对最后结果没有影响。可得到。尽管是带着这些朴素思想和过于简单化的假设,但朴素贝叶斯分类器在很多复杂的现实情形中仍能够取得相当好的效果。2004年,一篇分析贝叶斯分类器问题的文章揭示了朴素贝叶斯分类器取得看上去不可思议的分类效果的若干理论上的原因。尽管如此,2006年有一篇文章详细比较了各种分类方法,发现更新的方法(如boosted trees和随机森林)的性能超过了贝叶斯分类器。朴素贝叶斯分类器的一个优势在于只需要根据少量的训练数据估计出必要的参数(变量的均值和方差)。由于变量独立假设,只需要估计各个变量的方法,而不需要确定整个协方差矩阵。4.4 性能评估方法本次实验我使用了准确率(P),召回率(R)和F1-Score来评价分类结果。下面通过表4.1具体解释一下这三种性能评估方法的计算公式。表4.1 预测结果和实际情况0-1状态图实际情况1代表真实情况此类,0表示不属于预测结果1代表预测属于此类0代表预测不属于此类101True positiveFalse positive0False negativeTrue negativeP = 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)对所有英文文件进行英文词法分析,去除数字、连字符、标点符号、特殊字符,所有大写字母转换成小写字母,实现方法是通过正则表达式:String res = line.split(a-zA-Z);(2)接着去停用词,过滤对分类无价值的词。结果保存在源文件对应文件.out里面。(3)第三步是找词根,将词根还原,并分别将每一类的所有文件的单词进行汇总,同时记录每个单词的词频,最终得到源文件对应文件.outstemed里面。5.3 特征提取和表达首先我先解释一下CHI特征提取公式的意义:CHI特征提取:在此公式中,变量的含义如下所示:N: 所有文档的数目A:在该分类下,包含此单词的文档数量B: 不在该分类下,包含此单词的文档数量C: 在该分类下,不包含此单词的文档数量D: 不在该分类下,不包含此单词的文档数量由于最后,只需要根据CHI的卡方值进行排序,为了简化运算,对公式做了简单的简化处理:简化后的计算方法为:,因为在排序的步骤中,N,(A+C),(B+D)都不会对最后的排序造成影响,所以这样的简化处理是合理的。计算每个单词的CHI值,降序排序后,分别取每一类的排序前2000个单词,经过汇总,去重,得到最终的数据字典,一共是32060个单词。根据数据字典,将每篇训练集文件和测试集文件转换成特征向量。结果保存在源文件对应文件. outstemedspecial里面。5.4 训练过程在本次实验中,我做了5组实验,每组实验又分为两个相对应的实验。因为我借鉴了交叉检验的思想,一开始我将整个数据集随机分成训练集和测试集两份,相当于2折交叉检验,再颠倒过来将训练集作为测试集,测试集作为训练集。这样整个过程算是一组实验,然后再将整个数据集随机分成训练集和测试集,重复上面步骤,最终进行了5组10次实验,利用这10次的结果的均值来对算法精度作估计。以求达到更精确的评估。这里我就简单介绍一次实验的训练过程:(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/aaa.lst);以及后面等一系列操作,不具体描述,在Eclipse中运行TextClassificationofRandom类后,在E:DataMiningSampledocVector目录下,生成两个文件,一个是记录训练数据绝对路径的文件,一个是记录测试数据绝对路径的文件。(3)将记录训练数据绝对路径的文件的绝对路径,作为TrainMain类的参数,运行来训练样本的特征,首先计算每个类别出现的特征词数,将结果保存在NBTrain工程下的cateWordsNum.txt文件中,保存方式为:类别+空格+次数。再计算某单词在某类别中出现的次数,将结果保存在NBTrain工程下的cateWordsProb.txt文件中,保存方式为:类别_单词+空格+词数。最后,计算所有类别的总次数,将结果保存在NBTrain工程下的totalWordsNum.txt文件中。这样我们就得到最后的训练模型。5.5 测试过程通过上述步骤,我们得到四个文件,即记录测试数据绝对路径的文件,cateWordsNum.txt,cateWordsProb.txt,totalWordsNum.txt,我们将这四个文件的绝对路径作为TestMain类的参数,运行,通过朴素贝叶斯的算法,得到每个文件属于每个类的后验概率,取其中最大值,作为文件最终被分到的类别,并将数据以文件绝对路径+空格+类别的形式输出到NBTest工程下的classifyResultNew11.txt文件中,方便后期的实验数据统计。5.6 实验结果和性能评估最后实验结果用混淆矩阵来记录,由于我一共做了十次实验,这里就不一一列举,我拿第一次的实验结果来展示一下(后面数据均展示第一次实验结果),完整的实验结果记录在E:DataMiningSampledocVector五组实验数据目录下的分类结果.xlsx文件下。第一次实验结果的混淆矩阵如图5.2所示。图5.2 朴素贝叶斯分类结果-混淆矩阵表示上面混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目,每一列中的数值表示真实数据被预测为该类的数目。其中第一行第一列的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.6961第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.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所示。图5.3 第一次实验各20类对应评估性能分布图通过上图可以很明显看出第2类,第7类和第20类的数据有明显差异,评价性能不好。为更精确的评估该分类器的性能,下面给出10次实验,各20类对应的平均正确率、平均召回率和平均F1-Score,见表5.2.表5.2 10次实验各20类对应数据指标平均正确率平均召回率平均F1-Score第01类0.8887 0.8867 0.8871 第02类0.6866 0.7983 0.7303 第03类0.7596 0.7476 0.7516 第04类0.7734 0.7235 0.7471 第05类0.8932 0.7348 0.8042 第06类0.7757 0.8570 0.8135 第07类0.9031 0.5552 0.6870 第08类0.9137 0.8944 0.9038 第09类0.9590 0.9404 0.9495 第10类0.9748 0.9262 0.9499 第11类0.9494 0.9778 0.9633 第12类0.8777 0.9574 0.9152 第13类0.8526 0.7870 0.8180 第14类0.8787 0.9437 0.9099 第15类0.8609 0.9532 0.9036 第16类0.8419 0.9478 0.8914 第17类0.8463 0.9388 0.8896 第18类0.8577 0.9875 0.9176 第19类0.8403 0.8797 0.8592 第20类0.9325 0.5926 0.7227 总 体86.33 %85.15%8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论