APP下载

基于XGBoost模型的文本多分类研究

2020-07-18方侠旋

网络安全技术与应用 2020年6期
关键词:类别文档准确率

◆方侠旋

(安徽大学经济学院 安徽 230601)

1 研究背景与现状

随着互联网时代的发展,网络上开始产生大量的信息,信息量呈爆发式增长,而对这些信息的收集与处理就显得尤为重要。一方面可以掌握当前形势下各种信息的情况;另一方面,充分利用这些信息可以帮助人们解决更多繁杂的问题,比如根据各种信息的特点进行垃圾邮件的过滤,或者利用信息预测未来事件的走势,以及对各种文本信息进行分类。

而文本分类任务一般分为两大类,输入文本对应一个输出类别的分类称为单标签分类;若输入一个文本,输出类别大于或等于二,则称为多标签分类。其中,单标签分类又分为二元文本分类和多类别文本分类:二元文本分类就是数据集仅有两个类别,多类别文本分类的数据集有超过两个的类别[1]。

当前学者所做的文本分类成果较多。有基于短文本评论数据进行的情感极性分类:其中王献伟[2]以京东智能冰箱的评论数据对文本情感进行正、负极性分类;Sanjiv R.Das[3]等人结合五种不同的分类器,通过投票机制将股票评论数据进行正、负、中情感极性分类;还有的学者基于文本主题进行分类:其中霍婷婷[4]基于FastText模型的三种改进算法对新闻文本进行分类,主要分为农业和非农业新闻;景永霞[5]等人基于矩阵SVD的方法对10个类别的文本数据进行了多分类,相较于以往基于信息增益的KNN算法分类性能有所提高;也有学者没有按主题而是按文档的整体情感对文档进行了分类[6]。本文就含有 19个类别的新闻数据基于 XGBoost进行单标签下的文本多分类,分析分类模型的性能优劣。

2 相关模型

在介绍XGBoost之前,介绍两种常用的分类模型,逻辑回归和 Navie Bayes,这两种模型在以往的很多分类任务中的分类效果都比较好,因此本文鉴于这两种模型来与 XGBoost进行对比分析。

逻辑回归(logistic regression)是一个应用非常广泛的机器学习算法,它基于极大似然估计的思想,利用模型所生成的概率去比较真实值与预测值之间的差异,可用于文本二分类或者多分类中;在文本分类任务中,如果把某个文本预测为某一类别当作一次事件,那么从文本中提取的特征及其频率等信息就可以作为此次事件发生的各个因素,使用回归去训练文本特征之间的关系,从而再去预测文本类别[7]。

朴素贝叶斯(Naïve Bayes,NB)是一种概率模型,算法简单且有大量的数学理论支撑,易于解释。虽然它基于一个假设:各样本属性之间是独立的,但是很多情况下,它的分类效果仍表现得很好,也因此在很多领域有大量应用,比如垃圾邮件的过滤、情感判别以及文本分类等等[8]。在文本分类任务中,模型计算每个样本属于各个类别的概率,将样本判给概率最大的类别。

XGBoost(eXtreme Gradient Boosting)是一种优秀的集成学习模型,主要思想就是训练很多个准确率较低的弱学习器(树模型),然后将它们集成为一个准确率较高的强学习器[9]。在拟合模型时,XGBoost运用二阶泰勒展开式,并且自带正则化项,可以有效防止过度拟合,提高模型泛化性能;在2014年由陈天奇将它实现,可同时并行多个CPU,运行速度快,分类效果好,并大量运用于工业中。

3 评测指标

3.1 对数损失函数

多数学者在进行文本分类时,都是直接使用召回率、准确率、Fβ值来评判分类效果,很少注意到模型的拟合情况。损失函数可以用来表示样本真实值与预测值之间的偏差,它的值往往表现一个模型的拟合情况和模型的性能。模型的拟合效果对最终预测有很大作用,往往直接决定最终的预测情况[10],用在分类问题中,它也可以反映模型的分类效果。

本文引用多类别对数损失(Multi-Class Log-Loss)来对模型的拟合效果进行分析,同时它也是 Kaggle大赛上通用的多分类问题的评测指标。

多类别对数损失与交叉熵损失函数有异曲同工之处。主要区别在于交叉熵损失函数多数情况下是作为二元分类模型的评判标准,而 log似然损失函数一般用于多分类,它的简化公式为:

其中:N为样本量;m为总类别数,本文为14;yi,k表示第i个样本的标签,取值为0或1;pi,k为观测样本i属于第k个类别的预测概率;从对数损失函数的含义可以看出:损失值越小,模型拟合效果也越好。

3.2 准确率

在得到模型拟合情况下,为了进一步判断模型分类的效果,我们使用准确率来进行分析。本文准确率(Accuracy)即为预测正确的样本数量与总测试样本数量之比,即:

4 数据处理

采用复旦大学中文分类语料库,一共9249篇文本观测数据,包含艺术、文学、哲学和法律等19个类别,且各类别数据量不相同,如表1。将数据集按8:2分为训练集与测试集;用训练集拟合模型,在测试集中计算损失函数的值及分类准确率。

表1 复旦大学中文分类语料

类别 计算机 环境 电子 农业 体育 时政 医疗 经济 法律数量 1356 1218 28 1022 1254 520 53 1601 52

4.1 分词与停用词

本文分词工具使用Python中最常用的jieba分词,一般来说jieba分词结果较为精准;停用词库为根据哈工大、川大、百度停用词库以及代码运行过程中的提示自行整理而成。

4.2 文本特征提取

在分词、剔除停用词以后,需要对文本进行特征表示,从而使文本数据转化为计算机可以识别的形式。其中最常用的是向量空间模型,它将每篇文本表示为一个向量形式;它也具有很多衍生版本,其中使用最多的是词袋模型。

词袋模型(bag of words)对每个训练文本中所出现的词汇的出现频率进行统计,将出现的所有词汇进行排列,当作一列特征,进而构成一个词汇矩阵。它是最基本的一种特征提取方法,易于理解和使用,但是它依赖于词典的构建,也容易造成稀疏矩阵的问题。词袋法不考虑每个词汇出现的顺序,也不考虑单词与句子或者段落之间的复杂联系。

相比较于词袋法——直接将所有词汇在本篇文档中的出现频率作为这个词的特征权重,TF-IDF方法不仅考虑出现的词汇在本篇文档中的频率,而且考虑每个词汇在所有文档中的出现频率。它认为,某个词汇的重要性与这个词汇在本篇文档中的概率成正比,而与在所有文档中出现的概率成反比;相关计算公式如下:

其中,ni,j表示特征项tj在文档di中出现的次数;分母表示文档di中所有特征项出现的次数;N为所有文档的总数;nj表示含特征项tj的文档总数;

则idfi,j表示出现特征项tj的文档的倒数;此处为了避免分母除零的现象,我们将分母中含有特征项tj的文档总数加 1,用来平滑IDF权重,也即改进逆文档频率,公式如下:

最后我们得到TF-IDF的表达式为:tfidfi,j=idfi,j*tfi,j

也即一个词在某篇文档中出现次数越多越重要,同时这个词在所有文档集合中出现的次数越少也越重要;因为出现次数越少,表明对主题的代表性越好,区分文档的能力越强。

本文在提取文本特征时,将所有数字更换为同一个占位符,以达到降维作用。同时将词袋模型与采用TF-IDF加权方法的建模结果进行对比分析,寻找最优模型。

5 数据实现与结果分析

本文采用前面所描述的两种特征提取方法,结合三种模型,对数据集使用Python平台进行代码实现。最终输出为6个对数损失值和对应的准确率,我们将其汇总为以下两张表格进行展示。

表2 对数损失值

表3 准确率

观察对比两个表格可以发现:

表2中XGBoost的对数损失值要比逻辑回归和Navie Bayes小很多,说明就模型的拟合情况来看,XGBoost算法具有一定的优势;其中,Navie Bayes拟合效果最差,可能是由于NB一般适用于小规模的数据,且样本间的独立性也有待考究[8],所以对于本文数据而言,性能有所下降;而逻辑回归由于多数情况下是在两个类别中进行分类,而且不能很好地处理特征空间很大的情况,所以在本文类别较多且数据量不平衡的情况下分类性能也不算特别好,而且,逻辑回归由于自带正则化项(本文为L2正则化)有时还会出现欠拟合的情况。

与表2相对应的观察表3,可以看到,拟合效果越好的模型,分类准确率也越高;其中,XGBoost的准确率依然最高,主要还是因为 XGBoost类似于一种集成学习,将大量弱学习器集成一个强学习器,改善了模型对不平衡数据的敏感性;同时我们对此次XGBoost中每个弱学习器,也即每个树模型赋予7层树结构,从而使模型具有优良的性能;对比另外两个模型,Navie Bayes依然效果最差,逻辑回归居中,也说明自带正则化项的XGBoost和逻辑回归可以有效地防止过拟合现象的发生,对数据的预测能力较Navie Bayes要更好。

另外对比两个表格发现,三种算法里基于TF-IDF提取文本特征的效果大多都不如普通词袋模型,究其原因可能有三个方面:第一,TF-IDF法没有考虑到特征词在类间和类内的分布情况[12],比如部分词在某一类文章中不常见,会赋予较高的TF值,但是不足以作为区分文档的关键类别词,这些低频词的偶然出现被当作高权值的关键词,这将过度放大生僻词的重要性[4];同时,在计算TF值时,也放大了常用词的重要性;第二,TF-IDF法也没有考虑到新闻中各特征词的位置;第三,由于本文数据各类别的数量差异较大,不平衡性较严重,而TF-IDF恰恰对不平衡数据比较敏感。所以就提取文本特征这一环节来看,可以进一步寻找其他优化算法。

6 结束语

本文根据包含19个类别的复旦大学中文分类语料,基于两种特征提取方法、三种分类模型对文本进行了分类,同时使用了多分类对数损失率来衡量模型的拟合效果,并根据准确率进行了最终分类评测。一方面看到不同模型对数据的拟合情况,也反映了不同模型的分类效果,并且探讨了XGBoost的机制,了解了其算法的优劣之处,可见,XGBoost模型对于不平衡数据的文本分类任务表现很好。

进一步还可以进行以下工作:(1)由于分词效果对结果影响较大,可尝试其他分词器,进行对比优化;(2)此次运行时间长,可对 XGBoost模型中的参数进行调参以优化结果、缩短运行时间。

猜你喜欢

类别文档准确率
浅谈Matlab与Word文档的应用接口
论陶瓷刻划花艺术类别与特征
有人一声不吭向你扔了个文档
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
一起去图书馆吧
Word文档 高效分合有高招
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat