北京邮电大学学期实验报告_第1页
北京邮电大学学期实验报告_第2页
北京邮电大学学期实验报告_第3页
北京邮电大学学期实验报告_第4页
北京邮电大学学期实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、北京邮电大学2013-2014学年第1学期实验报告课程名称:数据仓库与数据挖掘实验名称:SVM文本分类实验完成人:姓名学号:姓名学号:姓名学号:日 期:2013 年11 月实验SVM文本分类1. 实验目的熟悉爬虫的使用,可以利用网络爬虫抓取所需的网络语料 熟悉中文分词软件,可以熟练使用接口完成分词任务 熟悉文本分类必要的预处理步骤,并运用到实验实践中熟悉特征提取方法,包括CHI-square和LDA特征提取 了解SVM机器学习方法,可以运用开源工具完成文本分类过程2. 实验分工XXX:(1) 运用爬虫对语料库新闻的收集(2) 对数据的预处理工作(3) 后期的不同对比试验的测试XXX:(1)特征

2、的提取(2)训练集和测试集的生成(3)后期的不同对比试验的测试3. 实验环境中文分词与LDA特征提取运行环境:(1) Java version 1.7开发环境:eclipsePython代码运行环境:(1) pyth on 3.24. 主要设计思想4.1 实验工具介绍Web Crawler:由实验室集体开发的网络爬虫,不对外公开。可以方便的通过正则表达式的配置,轻松的完 成对网络数据的提取,并且可以根据需求完成过滤老新闻、不合适的网址格式等功能。最终的爬取结果文 件已经经过程序处理,可以直接得到最需要得到的内容。例如:在此实验中,最终的爬取结果即为已经从 网站中提取出的新闻标题和正文。API接

3、口,开发者可以根据ICTCLAS全称为汉语词法分析系统。具有简易的图形演示界面,和不同语言的 自己的需求选择不同的接口。主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用 户词典;在今年的12月中下旬会发布ICTCLAS2014版本。SVM模式识别与回归的软Lib svm:是由台湾大学林智仁副教授等开发的一个简单、易于使用和快速有效的 件包。除了主体训练,测试的程序,还提供了一些使用的工具,例如子集的选择,参数的选择与归一化的 操作等实用的方法。JGibbLDA:使用 JAVA 实现了 Late nt Dirichlet Allocatio n(LDA),使用了 Gibbs 采

4、样来进行参数估计。4.2 特征提取与表达方法的设计在此次实验中,我们采用了两种特征提取的方法。 针对不同的方法提取的特征分别作了文本分类实验。所有的特征提取与特征表达的详细步骤会在5.3种进行描述。CHI特征提取:根据上面的公式,最终建立成了数据字典。经过CHI特征提取建立成数据字典,数据字典如图所示(已经经过了按照字母排序处理)在每个词的前面是数据字典中,每个词对应的id。最终的特征向量表达方法为:Class_id word_id:tf- idf第一列class_id为此文本所属的新闻类别,word_id为数据字典中每个词对应的word_id,tf-idf为每 篇文档中,对应的tf-idf值

5、。LDA特征提取:LDA是主题模型的一种。假设一篇文章可以由不同的主题组成,把每篇文章中的主题分布概率来当作 这篇文章的特征,从而形成了特征向量。主题的数量可以由人工根据情况指定或者通过其他方法科学的得 到合理也就是概率最大的主题数量,再对其进行人工指定。SVM可以接受的输入格式,会得到如下的经过LDA主题模型分析之后,在通过简单的处理,变换成 特征向量:图中的第一列为文本的所属类别。后面的为topic_id:probability 。 Topic_id为相应的主题id,probability 为这篇文档此主题的分布情况。两种特征提取的方法,都将会在5.3中进行详细描述。4.3 分类算法的选择

6、我们使用的 SVM( Support Vector Machine )分类算法,是最大 margin分类算法中的一种。SVM是 种可训练的机器学习方法,在小样本中可以得到优秀的训练模型。如图中所示,SVM分类算法可以根据最边界的样本点,也就是支持向量,达到二分类的目的。当数据 的样本线性不可分时,会通过核函数的映射,把样本转换到线性可分的向量空间。所以核函数的选择也会 影响最终的效果。如果遇到了多分类的问题,如下图所示,可以通过多个 SVM训练模型完成多分类的任务。 现在的SVM 工具包都提供了自动的多分类接口。此外,SVM与logistic regression非常相似。Logistic r

7、egression虽然其名字当中是 regression也就是回 归,但是实际上此算法是一个分类算法。为了达到性能和效率兼备,对不同情况运用不同算法的场景进行 了描述:n为特征的数量,m为训练样本的数量(1)如果n相对m大很多,可以使用logistic regression或者使用SVM,核函数选择线性核函如果n很小,m的大小适中,使用 SVM,核函数选择Gaussia n 函数如果n很小,m很大,需要添加更多的特征,然后使用logistic regression 或者使用 SVM,不使用核函数。神经网络的算法的效果会优于上面的算法,但是训练的时间非常长,这也是为什么很多人选择SVM的原因之一

8、。4.4 性能评估方法最终性能的评价使用了准确率(P),回召率(R)和F1-Score来评价分类效果。为了解释每种评价标准的计算方法,先看如下表格:实际情况1代表真实情况此类,0代表不属于预测结果1代表预测属于此类0代表预测不属于此101True po sitiveFalse po sitive0False n egativeTrue n egative表1P = True po sitive / (True p ositive + False po sitive)R = True po sitive /(True p ositive + False n egative)F1-Score =

9、(2 * P * R)/( P + R)F1-Score的结果。在此实验中,我们分析了每种特征提取方法最终在每类与总体的准确率、召回率和关于结果分析的详细描述见5.6。5. 实验过程基于CHI特征提取的实验流程图:基于LDA特征提取的实验流程图:5.1文本分类语料库的采集通过网络爬虫在爬取新闻语料。爬取的类别有:Sp ort运动Fin ical经济Edu教育Ent娱乐Baby婴儿Tech科技Games游戏Comic动漫Auto汽车house房产404的爬取结果,原因在于访问的对方在语料库的收集中遇到的主要问题为,有的分类的网页会得到 服务器的文件夹年份过于早,网页已经被删除,也就是过期网页。经

10、过对这些网页爬取结果的分析,大部分此类网页的爬取结果都为1KB (在windows操作系统下,最小的文件只有1KB,没有更小的文件),为了提高最终分类的效果,对所有爬取的新闻文件小于1KB的都做了删除处理。另外,也对比较大的文件做了处理。 经过对爬取的文件的分析, 部分新闻文件都是代码没有新闻内容,对于这样的文件大部分在10、50KB以上,一篇新闻的内容大于150KB的可能性非常小,所以,对于此种异 常文件,也做了删除操作。经过以上处理,对新闻文件的分配如下:(1) 训练集:一共10类,每类的训练集为 5000篇新闻。总共50,000篇训练集。(2) 测试集:运动10223经济6906教育94

11、16娱乐34937婴儿14948科技12156游戏23945动漫12306汽车10305房产4373总计139, 515 篇详细结果分析见5.6。在后期的实验结果中,我们也对设计了不同的训练集和测试集的比例进行了实验,5.2数据预处理(1)对所有新闻文件使用 JAVA接口进行分词。效果如图:对每一类新闻的训练集进行提取名词、去停用词的处理,并且,为了以后方便计算每个词的tf,同时记录每个单词在文档中的tf。例如:汽车类(automatic)的其中一篇新闻,经过处理,转换成如下的文件内容,为了描述方便称此类文件为news_word_frequenee文件:经过对每一类新闻训练集进行如上处理,分别

12、将每一类的所有news_word_frequenee 文件的单词进行汇总,同时记录每个词的词频,最终得到如下文件:图中一共有10个文件,代表了 10类新闻中的出现的所有单词(已经经过了取名词、去停用词的处理,并且已经根据词频进行了降序排序)例如,auto.words文件如下:第一列为单词,第二列为此单词出现的频次。在我们的实验中,去除了频次低于5次的单词。处理过程如图所示:5.3特征提取和表达在本实验中使用了 CHI特征提取与LDA特征提取两种方法。下面分别对其提取过程进行描述。CHI特征提取:在此公式中,变量的含义如下所示:N:所有文档的数目A:在该分类下,包含此单词的文档数量B:不在该分类

13、下,包含此单词的文档数量C:在该分类下,不包含此单词的文档数量D:不在该分类下,不包含此单词的文档数量由于最后,只需要根据 CHI的卡方值进行排序,为了简化运算,对公式做了简单的简化处理:简化后的计算方法为:( ),因为在排序的步骤中,N (A+C) ,(B+D)不会对最后的排序造成影 响,所以做了简化处理。(1)因为训练集的数量一共为50000篇,计算CHI值的时间比较长,所以,先分别计算了每一类下每个 单词的A,B,C,D值,并输出到文件。如图所示:图中的每一个*.abcd文件,代表着每一类新闻的每一个单词的A,B,C,D值的信息。例如,下图所示:auto.abcd 文件第一列为汽车类(a

14、utomatic)中的单词,往后以此为此单词的A, B,C, D值。CHI值,降序排序后,最终(2)在得到上述文件之后,便可以根据简化后的公式,计算每个单词的得到如下文件:比如,在auto.chi文件中,如下图所示:经过降序排序以后,发现排列靠前的单词几乎全都与汽车相关。(4)分别取每一类的排序前1000个单词,经过汇总,去重,得到最终的数据字典,一共是7544个单词,同时对这些词进行唯一的id标识。得到chi.features文件。如图所示:第一列为单词的id,第二列为数据字典中的单词。(5)根据数据字典,将每篇训练集新闻文档和测试集新闻文档转换成特征向量。如图中所示:第一列为文本类型id,

15、其他列分别为 word_id:tf-idfLDA特征提取:LDA的特征提取使用了 JGibbLDA开源工具。(1) 根据要求,分别将训练集和测试集生成对应的格式要求。输入格式如下:Mdocume nt1docume nt2docume ntMdocume nti = wordi1 wordi2 . wordiNi M为总文件的个数 得到的文件如下所示: 50,000代表着训练集的数量。每一行代表一片文档,其中的单词代表每篇文档中出现的名词(已经经过取名词、去停用词等预处理)。(2) 首先对训练集进行迭代,最终得到 5个输出文件:.others .phi.theta.tassig n.tword

16、s其中.twords包括了每个主题当中,最可能的出现的单词。如图所示:经过人工判断就可以很明显的看出,LDA的主题分类效果是很好的。另一个重要的文件是.theta文件。此文件包含了主题-文档的分布情况,也就是 p(topi ct|docume ntm)。如图中所示:每一行代表一个文档,每一列代表一个主题。(3) 基于上面对训练集经过处理得到的5个文件,对测试集文件进行迭代,得到对应的主题-文档分布文件。(4) 由于此程序的输出格式并不是严格的按照lib svm的输入格式,需要编写代码转换成相应的训练文件格式。转换完成后,如下图所示:565.4 训练过程在本次实验中,我们做了多组实验。在这里仅列

17、出训练过程的步骤,详细的结果分析见使用checkdata.py工具对训练集和测试集进行检测,是否有格式不合 法的地方。通过数据格式检测之后,通过 svm-scale命令对训练集和测试集进行 归一化操作,下限为0,上限为1使用grid.py工具,对训练集进行调参,得到最优的c,g的值。在调参 的过程中,会绘制调参等高线图,如图所示: 此图为调参中的动态等高线图,其中从右上角的位置可以看出,绿色线代表目前最咼水平,当前的最好的参数c=32,g=0.03125但是,在程序调参完成以前,这只是当前局部最优参数,并非全局最优参数。在得到最终的最优参数之后,使用svm-train命令训练,得到model5

18、.5 测试过程(1) 在上一节中,得到了最终的训练模型,打开模型文件可以看到:十丄H十J十曙十a十1)T _c_avc cerrLel_type rbf0. Su nr cLasa 10r tQtaL_3v 22021L rho &7o44S7140.16543 0,00265504 -0,207333 -0.0601327 -0,0label 1 2 3 4 5 6 7 e ? 10_ ni SV 1692 1779 22SS 2217 2732 2793 2215 1941 1764 2石02 ;svnr class:为新闻分类的个数 nr sv:为每类的支持向量的个数(2) 使用svm-

19、predict命令,加载model文件,进行测试,并且指定输出文件(3) 完成测试之后,控制台只给出了精确率的结果。并不符合我们实验的结果分析的需求。根据第(2)步的输出文件,可以计算每类的预测和平均的预测精确率、召回率和F1-Scor5.6 实验结果和性能评估在本节中,详细的描述了不同实验设计的结果和分析。得到特征向量文件之后(未经过归一化处理),直接使用lib svm的默认 参数,进行模型训练,得到的模型用于测试。precision为:57.1838% (79780/139515) 可以看出结果比较差。在打开模型文件之后,可以发现所有的nr_sv值均为5000,这意味着 共5000*10个

20、样本点,每类的样本点都作为了自己的支持向量,这明显 是不合理的。为了解决上述问题,使用svm-scale对训练集和测试集进行归一化处理, 下限为0, 上限为1。再次使用lib svm默认参数训练模型,进行测试, 可以得到:Precision为:75.8535% (1058271395l5) 由此可以推断出,进行归一化处理,是必要的一步。它可以大大的提高 分类效果。为了更好的提高分类效果,使用grid. py工具进行调参。由于调参是一个 漫长的过程,我们分别做了如下对比试验:从50,000训练集中随使用最终全局最优参数训练对应的10, 000篇训练机挑选出10,000子训练集调整参数集得到 mo

21、del使用最终全局最优参数训练所有的50, 000篇训练集得到 model使用50,000训练集调整参数使用最终全局最优参数训练所有的50, 000篇训练集得到 model组实验用来检测,使用子训练集得到的最终参数是否适用于所有的训练集,还是更适用于子训练集组实验用来与实验进行对比,检测所有子训练集调参得到的参数与全部训练集调参得到的参 数的最终分类效果(4)由于目前LDA的topic数量是由人工指定的(已经有文献指出如何科学的选择LDA的topic数量,但是并没有在本次实验中使用),我们选择了 topic数量分别为50, 100, 200来做实验。同样也做了第(3)步的实验对比。(5)结果如

22、表中所示:表1:使用10, 000训练集调参,调参结果(大约计算了 10个小时左右)分别用于子训练集生成模型(subset model)和50,000全部训练集(allmodel),分类效果如下:cgrateSubset Model(13.9515)All model(2.7903)Topic 508.02.089.89%89.2298%83.5373%Top ic 1008.00.590.31%90.0692%76.9881%Top ic 2008.00.589.52%66.9132%59.4338%CHI4.00.2592.80%90.8906%92.3033%注:表中的subset mo

23、del与all model中的小数表示测试集与训练集的数量的比值从表格中可以得到以下信息:subset model的测试集大小:训练集大小的比例为 13.9515。经过此列的数据观察,大部分都在90%左右,说明在测试集非常大的情况下,仍然能够得到比较好的分类效果。通过观察,所有的 model,CHI的特征提取方法均大于 LDA主题模型。即使这样,值得我们注意的是,CHI的良好性能是建立在7544维度的基础之上的。而 LDA主题模型建立在 50-100维的基础上,甚至在 100维度的时候仍然能够达到了90.0692%的良好分类效果。LDA在维数大大低于 CHI维度的情况下,可以达到比较好的分类效

24、果已经值得引起注意。从表中1-3行来看,LDA主题模型的TOPIC数量并不是越少越好,也不是越多越好。LDA主题模型的TOPIC 数量,需要经过科学方法的选择,才会使最终的分类效果达到最优。可以参考论文:Griffiths T L, Steyvers M. Fin di ng scie ntific top icsJ. Proceedi ngs of the Nati onal academy of Scie nces of the Uni ted States of America, 2004, 101(Su ppl 1): 5228-5235.更重要的结论是,通过上表可以观察出,通过训练子

25、集得到的最优参数并不一定适用于用来训练全部的 训练集。因此,基于上面的结论,我们为了试图得到更好的分类效果,我们又做了如下实验。(1)使用grid.py工具对全部训练集进行调参(大约计算了6-8天左右),使用最终调参结果,训练模 型。经过测试,得到以下结果:表2: Model 1为训练子集调参的结果用于整个训练集训练模型得到的测试结果;Model 2为整个训练集都用于调参,最终得到的测试结果Model 1Model 2TOPIC 5083.5373%90.1143%TOPIC 10076.9881%90.4204%TIP IC 20059.4338%88.026%CHI92.3033%91.7

26、486%从表中我们可以得到: 1-3行表明:使用子集训练集得到的最优参数并不一定适用于训练所有的训练集。 虽然第4行中,Model 2略低于Model 1,仍然得到了不错的分类效果,而且非常接近。(2)以下,是我们基于所有训练集得到的参数训练的模型的结果图表:LDA TOPIC 50:LDA TOPIC 100:LDA TOPIC 200:CHI:从上述表格中可以看出:最影响分类效果的均是FINANCE类,也就是经济类新闻。同时,我们也绘制了分类效果最好的图表。由此可以看出,不同类新闻对于不同训练出的模型的影响大体是保持一致的。最后,给出基于所有训练集得到的最优参数得到的模型测试结果和全程实验最优结果的柱状图:也可以得到结论,TOPIC的数量需要科学选择才能达到最优。6. 实验总结经过此次试验,学习了文本分类的整体流程, 熟悉了机器学习中 SVM的原理与使用方法, 虽然已经取得 了比较好的分类效果,但是还有以下需要改进的地方。(1)从图表中可以看出,经济类新闻最影响分类效果,有可能与原始语料有关,可能存在噪音,可以从语料的选择和处理上改进。LDA模型虽然在整个实验中,并没有达到最高分类效果,但是

温馨提示

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

评论

0/150

提交评论