APP下载

通信垃圾文本识别的半监督学习优化算法

2020-09-04邱宁佳沈卓睿

计算机工程与应用 2020年17期
关键词:分类器聚类密度

邱宁佳,沈卓睿,王 辉,王 鹏

长春理工大学 计算机科学技术学院,长春 130022

1 引言

现如今,随着民生平台的广泛使用垃圾数据急剧增加,避免垃圾数据的干扰来提高系统工作效率和服务水平成为热点研究。非平衡样本分类问题作为垃圾文本识别的基础,存在分类效果不佳的问题。针对此问题,从算法角度考虑主要包括分类集成法、代价敏感法和特征选择方法。Sundarkumar等提出通过串联使用k反向最近邻和一类支持向量机(OCSVM)来纠正数据不平衡问题[1]。Kaur通过引入特征缩放,抑制或中和平均绝对误差(MAE)的方法,有效提高了信用卡欺诈检测模型精度[2]。Gu等为了纠正分类面的偏移问题,对不平衡数据到分类面的距离进行参数调优,有效地完成了少数类和多数类的识别工作[3]。Agnihotri根据类中术语的分布从每类中选择可变数量的特征,提出了一种新的变量全局特征选择方案(VGFSS),此方法在处理不平衡数据时优于全局特征选择方案[4]。Duan 等使用马氏距离绘制聚类二叉树,将SVM从上到下应用于二叉树进行分类,此方法在机械故障诊断多分类问题中具有很高的分类精度[5]。Wu 等使用类重叠法和样本点重要性来设计样本模糊隶属函数和分配隶属度值,提出模糊多类支持向量机算法,该算法能够更有效解决多类别不平衡数据和噪声问题[6]。Chan 等通过使用先验类概率加权后验类概率来处理神经网络训练不平衡数据时少数类被错误分类的问题,此算法的平均召回率得到了提高[7]。Xu等通过定义新的基分类器初始权值矩阵更新规则和集成权重计算公式,提出一种污水处理故障诊断建模方法,此方法提高了故障类的识别率和分类精度[8]。

对于不平衡分类问题从训练集角度入手主要包括上采样方法和下采样方法,都是通过改变训练集样本的分布,提高不平衡样本的判别精度。Pozzolo 等通过使用贝叶斯最小风险理论找到正确的分类阈值,对不平衡数据在欠采样处理后进行调整,降低了欠采样对分类精度和概率校准的影响[9]。Huang 等根据类内、类间距离和不平衡度三者的关联,在样本特征的基础上提出一种新颖的上采样方法,显著提升了负样本的分类准确率[10]。Vannucci等提出使用遗传算法将欠采样和过采样结合的方法,确定最优不平衡率,使稀有模式检测率和分类性能有了明显的提高[11]。Zhao 等通过约束合成数据产生的范围,使数据集中化,提出了TSMOTE和MDSMOTE算法,解决了分类器和SMOTE 对于不平衡数据集存在边缘化分布的缺点[12]。Yang 等分别添加和删除与少数类相关性强和与多数类相关性弱的样本来实现样本的类分布平衡,提出关键值抽样法,提高了关联分类方法处理不平衡数据的精度[13]。Geng 等采用k-means 采样方法和分类指导词提出了一种组合策略,提高了不平衡数据的分类精度[14]。Zhang等分别对多数类和少数类进行不同权重调整,基于AdaBoost算法,提出了一种新颖的欠采样方法,提高了不平衡数据的分类效果[15]。

在通过聚类改进下采样时,为了避免传统聚类算法聚类数目不易确定和算法复杂度高的问题,本文提出基于否定选择密度聚类的下采样算法(Down-Sampling algorithm based on Negative Selection Density Clustering,NSDC-DS),首先结合否定选择算法自体异常检测机制的思想,将聚类中心点和待聚类样本分别作为检测器和自体集来进行异常匹配提出基于否定选择的密度聚类算法;然后使用基于否定选择的密度聚类算法对样本进行相似度评估来改进传统下采样代表性难以保证的问题,并选择NBSVM分类器对采样后的通信文本进行半监督垃圾识别;最后使用PCA 样本所具有信息量进行评估,提出改进的PCA-SGD(Stochastic Gradient Descent based on Principal Component Analysis)算法对模型参数进行调优,以达到提高通信垃圾文本识别精度的目的。

2 相关工作

2.1 否定选择算法

否定选择(Negative Selection,NS)算法是根据免疫系统自体、非自体细胞的识别工作仿真得到的一种选择方案,检测器是随机产生的,能够保留包含非自体的检测器,删除包含自体的检测器,最终实现两种数据的分类。其算法思想如下:首先定义需要保护与检测的自体集,然后产生检测器集合,检测器为不与受保护数据匹配的集合,最后将检测器与自体集进行比较来检测自体集的改变,如果自体集与检测器匹配,表示自体集发生了异常变化。结构如图1所示。

图1 否定选择算法

2.2 NBSVM分类算法

朴素贝叶斯和支持向量机常被用在文本分类的基线模型,但是性能受特征和数据集等因素的影响较大。Wang 等使用朴素贝叶斯对数计数比率作为特征值的SVM 变种,提出了一种将朴素贝叶斯与支持向量机结合的算法(NBSVM),此算法在文本分类领域取得了不错的效果[16]。此算法是使用NB 算法生成的特征训练SVM来构造一个线性分类器。测试实例k的预测函数如公式(1)所示:

其中,w和b通过最小化目标函数获得,为样本所包含类别,为第i个训练样本的特征向量,反之此处相乘的方法为对应位置元素相乘,为特征在正、负样本中出现的概率比值对数化后的值,称为对数计数比率(log-为平滑系数。

3 改进的随机采样算法

3.1 基于否定选择的密度聚类算法

k-means算法存在聚类数目不易确定和只适用于凸样本空间数据集的问题,并且对于非平衡数据集,其聚类效果不佳。谱聚类算法适用于任意形状样本空间的数据集,但仍存在聚类数目不易确定的缺点,当样本维度大时,对聚类效果影响较大。针对以上问题,本文提出一种基于否定选择的密度聚类算法,将聚类中心点和待聚类样本分别作为检测器和自体集来进行相似度匹配,匹配条件使用改进的相似度计算公式,即在距离测量相似度的基础上加入了密度来刻画相似度。其具体思想如下:

(1)首先利用分词工具对待聚类样本进行分词、去停,使用TfidfVectorizer工具将文本向量化,转化为特征矩阵,如式(2)所示:

其中,每一行代表一个样本,共具有n个样本和m个特征。

(2)检测器和自体集。计算所有待聚类样本点的邻域密度ρi,去除孤立点,选择待聚类样本Dwait中密度最大的样本点ρmax作为聚类中心点,即否定选择算法中的检测器。其他待聚类样本点作为自体集,对两者使用步骤(3)中的匹配条件进行检测匹配。

(3)设置否定选择中的“匹配条件”,使用距离和密度结合的相似度计算方法,如公式(3)所示。在距离度量相似度的基础上加入密度是由于:欧式距离在某些情况下不能刻画真实的数据分布。例如在图2中,点a为其他类,在此希望b、c间相似度比b、a间的相似度更大,但使用欧式距离计算时,b、a分为一类,因而本文引入密度权值来调节相似度值。

图2 不同流行上的数据点

其中,x1t和x2t代表两个样本的第t个维度为两样本的欧氏距离。σ1和σ2代表样本点所处邻域内的密度。这样在计算数据点间相似度的过程中,当两样本点所在的密度存在差异时,就可以通过权值对相似度进行调整,密度相差越大,相似度越小。

根据多次实验得到合适的相似度阈值γ,当检测器与自体集满足匹配条件时,即当检测器与自体集之间相似度大于等于相似度阈值γ时便找到样本中心点密度可达的所有样本,生成一个聚类簇;每聚成一个簇后,继续寻找待聚类样本中密度最大的点作为下一个聚类中心点,更新其为检测器,与其他作为自体集的待聚类样本点计算相似度,找到满足相似度阈值匹配条件的样本聚成下一个簇,直到满足终止条件。

(4)终止条件。当待聚类样本点为空时聚类结束,得到聚类后的k类样本。整体聚类流程图如图3所示。

图3 基于否定选择的密度聚类算法

3.2 否定选择密度聚类的不平衡数据处理

本文使用通信文本数据集,在对此数据集进行垃圾文本识别时,为了使学习效果更好,因此需要解决训练集样本中通信垃圾文本和通信非垃圾文本的不平衡问题。随机的下采样方法会丢失大量的数据,使模型只学习到总体模式的一部分,削弱了样本的多样性。为了避免以上问题,本文提出一种基于否定选择密度聚类的下采样算法(NSDC-DS)。

对于样本比例不平衡的数据采用下采样方法时,如果先将多数类样本聚类为k个不相交子类,再从每个子类中均匀采样出样本作为与少数类样本重构为平衡数据集再进行分类器学习,将会避免原采样方法削弱多数类样本多样性和只学习到其总模式一部分的缺点。其改进方法如下:

(1)使用基于否定选择的聚类算法对多数类别样本聚类为k类。

(2)使用距离与密度结合的改进相似度公式计算出每个簇中各个样本点距离聚类中心点的相似度,选择每个簇中距离聚类中心点最近的若干个样本,从每个簇中采样出的个数为多数类样本个数与聚类个数的比值。

(3)所有簇中采样得到的样本与少数类样本重构为平衡样本。

基于否定选择密度聚类的下采样算法(NSDC-DS)归纳如下:

算法1 NSDC-DS算法

通过此算法得到的样本比随机下采样得到的样本具有更完整的特征和更强的多样性,使用此算法得到的样本组成的平衡样本作为训练集用于分类器的学习,有助于提高分类器的性能。

4 通信垃圾文本识别模型优化

4.1 垃圾识别模型优化

经过否定选择密度聚类下采样处理得到平衡样本后,选择NBSVM 分类器对平衡训练集进行学习,使用半监督学习方法对通信垃圾文本进行识别,为了进一步提高模型的分类效果,达到更好的垃圾文本识别效果,采用PCA-SGD算法对模型参数进行优化。

随机梯度下降每次迭代使用一个样本对参数进行更新,具有训练速度快的优点,但每次更新可能不会按照正确的方向进行,引起较大的优化波动,模型难以收敛。针对此问题,本文提出一种改进的随机梯度下降算法PCA-SGD,使用PCA 对特征所含信息量的大小进行判断,并计算出每一个样本具有的全部特征所含信息量大小,选择出更能代表全体样本的单一样本来进行参数更新,降低样本不确定性导致其朝着非优化的方向前进的概率,加快随机梯度下降的收敛速度和减少优化时的波动。梯度下降参数更新公式如公式(5)所示:

其中,θ为优化参数,η为学习率,∇θ J(θ)为参数梯度。

损失函数使用交叉熵代价函数,如公式(6)所示:

其中,r为训练集大小,c为类别总数,y为预测类别,为实际类别,λ||θ||2为正则项。具体描述如算法2所示:

算法2 PCA-SGD算法

由于使用PCA 来估计样本所含信息量,使用含有信息量高的样本对参数更新,进而降低了样本不确定性导致其朝着非优化方向前进的概率,此算法将减少SGD的波动和加快其收敛速度。

4.2 模型描述

在进行通信垃圾文本识别时,为了提高识别的准确率,首先将训练集中的多数类使用改进的否定选择密度聚类算法进行无监督学习,然后从每一类中采样出若干具有代表性的样本与训练集中的少数类重组为平衡训练集,选择NBSVM 分类器进行有监督学习,最后使用改进的PCA-SGD 算法对整体模型进行优化,完成半监督学习下的垃圾文本识别任务。整体解决方案如图4。

图4 通信垃圾文本识别模型

5 实验与结果分析

5.1 实验描述与实验数据

为了验证本文在三个改进方面的有效性,设计了如下三个实验。通过使用具有不同属性的数据集,对比传统算法和否定选择密度聚类算法在不同数据集下的聚类纯度和时间(时间复杂度和空间复杂度),验证后者具有更高的效率和更强的鲁棒性;使用随机下采样方法、否定选择密度聚类算法与传统的聚类算法分别对非平衡通信数据中的多数类进行采样,将重组后的平衡样本作为训练集使用NBSVM分类器进行学习分类,并使用验证集验证改进后的下采样方法的有效性;使用改进后的随机梯度下降算法对模型进行优化,通过与传统算法对比收敛速度和模型训练速度来验证PCA-SGD算法的性能。

实验1中,为了验证改进聚类算法的鲁棒性和有效性,本文分别选择样本数均接近的非凸、高维和不平衡样本空间数据集:Double-circles、Wine、Glass 和对比数据集Iris;实验2和实验3使用不平衡通信文本数据对否定选择密度聚类的下采样和PCA-SGD算法进行性能评估,其中Lingspam 和Spambase 为常用的通信数据集,Unicom数据为民生平台客户咨询的不平衡通信文本数据。详细实验数据集及其属性的如表1所示。

表1 数据集及其属性

5.2 评价指标

本文使用聚类纯度、准确率和时间三个指标设计实验对改进算法进行评估,其具体说明如下:

(2)准确率:Accuracy=(TP+TN)/(TP+FN+FP+TN),其中TP表示真实类别为正类,预测类别为正类;TN表示真实类别为负类,预测类别为负类;FP表示真实类别为负类,预测类别为正类;FN表示真实类别为正类,预测类别为负类。

5.3 算法性能验证

实验1 否定选择密度聚类算法(NSDC)性能验证

k-means 算法只适用凸样本空间数据集,对于非平衡数据集聚类效果不佳,并且对于高维数据集,k-means与谱聚类算法存在聚类精确度下降和时间消耗长的缺点。为了验证否定选择密度聚类算法能够改进以上缺点,本实验分别使用了凸样本空间数据集Double-circles和非凸样本空间高维数据集Wine、不平衡数据集Glass和对比数据集Iris。实验选择传统k-means,谱聚类作为对比算法,与否定选择聚类算法进行性能比较,使用聚类纯度和时间作为评价指标,具体实验结果如图5、6所示。

由结果可以看出,对于非凸样本空间数据集Doublecircles,k-means并不适用于此类数据集,因而具有较低的纯度,谱聚类虽然适用于此类数据集,但由于计算的复杂度,导致需要的时间较长。对于非平衡数据集Glass,其中的少数类样本在最小化均方误差过程中会被k-means算法忽略而导致聚类纯度对比平衡数据集Iris降低。对于高维数据集Wine,k-means算法由于需要反复更新聚类中心点、谱聚类算法由于需要进行高维矩阵运算而需要较大的时间开销。本文提出的否定选择密度聚类(NSDC)算法通过将距离和密度集合来计算相似度,改进了k-means 不适用与非凸球形样本空间的缺点,对于Double-circles 数据集,具有较高的纯度和需要较少的时间;由于避免了k-means最小化均方误差过程,减少了非平衡数据Glass对其聚类纯度的影响;此外,否定选择密度聚类算法避免了传统k-means 算法反复更新聚类中心点和谱聚类高维矩阵计算导致较高的时间复杂度,减少了高维数据对聚类所需时间的影响。从实验结果可以看出,否定选择密度聚类算法具有更高的聚类纯度、时间效果和更强的鲁棒性。

图5 不同数据集下各个算法聚类准确度比较

图6 不同数据集时间比较/对比

实验2 改进下采样方法性能比较

为了对比随机下采样方法和通过聚类下采样方法对不平衡数据处理的差异性,本实验设计使用随机下采样、通过k-means聚类算法下采样和否定选择密度聚类算法下采样对不平衡数据中多数类样本进行处理,并与少数类样本重组成平衡样本,使用NBSVM分类算法对这三组平衡数据分别进行分类,分类混淆矩阵如图7所示。

图7 不同方法处理不平衡样本,NBSVM分类混淆矩阵

通过图7可以看出,在使用随机下采样方法对多数类样本处理时,由于随机采样得到的样本可能并不具有代表性,分类器在进行学习时不能学到较完整的特征,从而导致分类器具有较多的误分样本和较低的准确率。通过聚类算法对多数类样本聚类再进行采样得到的样本,由于聚类后的每个簇与簇间具有低的相似度、簇中样本间具有高的相似度,每个簇中距离聚类中心点越近的样本越可以更好地代表此簇样本,所以从每个簇中均选择出若干具有代表性的样本即可更好地代表全部多数类样本,使用此采样方法得到的样本进行训练,能使分类器学习到更完整的全样本特征。因此,通过k-means聚类算法对不平衡样本进行下采样处理比随机下采样方法对其进行处理降低了垃圾文本和非垃圾文本的误分率,垃圾文本误分率从0.49 减少到0.23,非垃圾文本误分率从0.40减少到0.21,准确率从59.62%升高到79.22%,很大程度上提高了分类的准确率。同时,对比通过k-means算法对不平衡数据集进行处理,使用本文改进的NCBA 聚类算法对其进行处理使垃圾文本误分率从0.23减少到0.15,非垃圾文本误分率从0.21减少到0.14,准确率达到了85.62%,分类器具有更精准的文本垃圾识别率,进一步说明了改进聚类的有效性。以上数据可以说明,通过聚类改进随机下采样提高了分类器的准确率,弥补了随机下采样分类器只学习到部分特征的缺点,实验结果证明了改进下采样方法的有效性。

实验3 改进PCA-SGD算法性能验证

为了验证本文改进的PCA-SGD算法具有更高的稳定性和更快的优化速度,本实验设计改进算法与BGD、MBGD、SGD三种算法进行误差变化率与分类精度的比较,使用表1中Unicom不平衡通信文本数据集共17 223条。其中,四个算法误差变化率比较结果如图8,分类精度随时间变化比较结果如图9所示。

图8 同迭代次数对模型训练稳定性的影响

图9 不同训练时间下模型分类准确率比较

由图8和图9可以看出,由于BGD使用全样本对模型进行训练,保证了每次迭代都朝着整体最优化的方向进行,基本保证了损失值是单调下降的,但使用全样本进行训练同样带来了训练速度过慢的缺点;SGD 与MSGD由于使用部分数据进行模型训练,加快了训练的速度,但随机选取的样本不能保证每次迭代损失值都是下降的,所以导致损失值的变化存在较大的波动;而改进的PCA-SGD 由于在选取样本时进行了评估,选择出了更具代表性的样本进行参数的更新,进而使损失值的变化得到了比SGD 和MSGD 都小的波动,并具有更快训练速度的优点。通过实验结果验证,PCA-SGD 算法具有较高的稳定性和较快的收敛速度,综上,此算法具有较高的可行性。

实验4 垃圾文本识别模型性能对比

为了验证本文提出的半监督通信垃圾文本识别模型的有效性,选取 Lingspam、Spambase 和 Unicom 三个通信文本数据集,使用本文改进的模型与TFGE[17]、IDRF[18]模型进行准确率对比,实验结果如表2所示。

表2 3种方法文本识别准确率对比 %

可以看出,由于Unicom 数据集对比Lingspam 和Spambase 数据集具有更多的样本数和更高的不平衡比例,导致三个模型的准确率均有所下降,但本文提出的半监督模型具有最小的准确率下降幅度。此外,由于本文提出的模型在解决不平衡样本时,不仅使用改进的NSDC-DS 欠采样方法对其中的多数类进行欠采样,并且在使用NBSVM分类器对重组后的均衡样本分类后,再使用改进的优化算法PCA-SGD 对模型进行优化,得到了更好的垃圾文本识别效果。实验结果证明,本文提出的半监督模型在解决不平衡问题时,三个数据集上均优于其他两个模型,表现出了较优的通信垃圾文本识别性能。

6 结语

在对通信垃圾文本进行识别时,本文将无监督与有监督学习结合,改进算法模型优化参数,更好地实现了垃圾文本识别的效果,具体如下:(1)无监督学习部分。提出否定选择密度聚类算法,改进传统聚类算法聚类中心点敏感和聚类数目不易确定的缺点。(2)有监督学习部分。使用否定选择密度聚类算法改进了传统随机下采样方法,采样后的样本具有更完整的整体特征,提高了分类器的性能,使用半监督学习的方法完成通信文本的垃圾识别工作。(3)模型优化。最后使用改进的PCA-SGD 算法实现对文本垃圾识别模型的优化任务,提高了模型的识别性能。实验结果表明,否定选择密度聚类算法具有更高的效率和更低的复杂度,改进的下采样方法NSDC-DS 使分类器具有更高的性能,改进的随机梯度下降算法PCA-SGD具有更稳定收敛趋势和更快的收敛速度,本文提出的半监督学习下的通信垃圾文本识别模型具有较高的识别性能。在基于否定选择的密度聚类算法中,相似度阈值的选取是通过多次实验得到,需要较大的人工精力,如果根据不同数据集对阈值进行自适应调整是接下来工作的重点研究方向。

猜你喜欢

分类器聚类密度
『密度』知识巩固
密度在身边 应用随处见
基于K-means聚类的车-地无线通信场强研究
“玩转”密度
密度应用知多少
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
基于高斯混合聚类的阵列干涉SAR三维成像
基于Spark平台的K-means聚类算法改进及并行化实现
基于改进的遗传算法的模糊聚类算法