一种移动App流量统计特征选择方法与流程

文档序号:17003514发布日期:2019-03-02 01:55阅读:337来源:国知局
本发明涉及流量测量领域的流量分类
技术领域
:,具体涉及一种移动app流量统计特征选择方法。
背景技术
::基于机器学习的移动app流量分类技术描述为:对原始流量基于五元组{源ip、目的ip、源端口、目的端口、传输层协议}组流,对流提取流统计特征建立流样本集合,用于训练分类模型。多种流统计特征已经被提出,例如moore等人在2005年提出248个流统计特征(a.moore,d.zuev,m.crogan.discriminatorsforuseinflow-basedclassification.queenmaryandwestfieldcollege,departmentofcomputerscience,2005.),包括:报文大小的统计特征(最小、最大、均值、中间值、标准差)、报文到达时间间隔的统计特征(最小、最大、均值、中间值、标准差)、特殊报文数(push报文、ack报文等)等。流统计特征集合可能存在与分类无关或冗余的特征,为降低分类模型的训练开销和提高分类性能,特征选择通常作为分类模型的预处理(z.liu,r.wang,m.tao,etal.aclass-orientedfeatureselectionapproachformulti-classimbalancednetworktrafficdatasetsbasedonlocalandglobalmetricsfusion.neurocomputing,2015,168:365-381.)。在互联网流量分类领域,信息增益率等特征选择算法已被用于选择流统计特征,但这些算法仅关注特征在类间的区分能力,忽略了互联网流量的动态特性导致的特征不稳定问题。zhang等人提出srsf特征选择算法,此算法在多个训练集上利用wsu_auc指标分别选择一个特征子集,再从多个子集中选择出现频率较高的特征加入最终的特征子集(h.zhang,g.lu,m.t.qassrawi,etal.featureselectionforoptimizingtrafficclassification.computercommunications,2012,35(12):1457-1471)。fahad等人提出goa特征选择算法,此算法通过多个特征评估指标(例如信息熵、信息增益率、卡方等)分别选择一个最优的特征子集,然后搜索具有较高出现频率的特征加入最终的特征子集(a.fahad,z.tari,i.khalil,a.almalawi,anoptimalandstablefeatureselectionapproachfortrafficclassificationbasedonmulti-criterionfusion,futuregener.comput.syst.36(2014):156–169)。上述特征选择算法间接地考虑了特征稳定性问题,但是没有提出特征稳定性的评估指标。专利cn201410352930.3提供了一种基于杜鹃搜索算法的对等网络流量统计特征选择方法,对对等网络数据集,利用杜鹃搜索算法进行特征选择,剔除不相关或冗余的对等网络流量特征,取出真正相关的特征,节省对等网络流量识别中特征提取的计算时间,从而提高对等网络流量识别的效率和正确率。该发明尽管针对网络流量数据,剔除了冗余特征,但是没有分析特征的稳定性,不能用于选择较为稳定的特征子集。技术实现要素:本发明的目的在于克服现有技术中的缺点与不足,提供一种移动app流量统计特征选择方法,选择区分能力强且稳定性高的特征集合。为实现以上目的,本发明采取如下技术方案:一种移动app流量统计特征选择方法,包括下述步骤:步骤s1、获取移动app的原始流量数据集,提取移动app流量的流统计特征,获取用于训练的有标记数据集ld,以及待分类的无标记数据集ud;步骤s2、在ld数据集上,利用信息增益率,评估每个流统计特征在类间的区分能力;步骤s3、在ld和ud数据集上,计算每个流统计特征的取值分布,利用hellinger距离评估特征取值分布差异性,评估流统计特征的漂移程度;步骤s4、将漂移程度作为特征区分能力的惩罚因子,计算流统计特征的综合评估值;步骤s5、基于综合评估值,搜索区分能力强且漂移程度低的流统计特征子集。作为优选的技术方案,步骤s1中所述提取移动app流量的流统计特征,具体包括下述步骤:步骤s11、获取移动app的原始pcap流量数据,根据五元组{源ip、源端口、目的ip、目的端口},对一定时间间隔内具有相同五元组的tcp/udp报文进行组流;步骤s12、对属于同一条流的报文计算流统计特征,具体采用相邻报文大小差值的最小值、最大值进行统计计算。作为优选的技术方案,步骤s1中,ld数据集的每条网络流有app类别标签,ud数据集的每条流没有app类别标签;数据采集过程中,在移动设备端记录会话信息,会话信息包括:五元组、会话创建或结束时间、会话活动状态、以及创建会话的app;在标记网络流时,查找会话信息记录中,五元组相同且时间戳最接近的app作为网络流的类别标签。作为优选的技术方案,步骤s2,具体包括下述步骤:步骤s21、在ld数据集上,采用有监督的最小描述长度方法离散化每个流统计特征fi,i=1,2,..,m,m表示特征个数;步骤s22、在ld数据集上,计算每个流统计特征的信息增益率gr(ld,fi),表征流统计特征fi在类间的区分能力dis(fi),信息增益率越大表明该特征有利于确定类别取值,即在类间的区分能力越强;所述信息增益率的计算公式如下:其中v(fi)表示特征fi的取值域,ldv表示ld数据集中特征fi取值为第v个值的样本集合;entropy(ld)和entropy(ldv)分别表示ld和ldv数据集上类别的信息熵;ldk表示类别ck的样本集合,k表示类别序号,ldvk表示来自ck类别中特征fi取值为第v个值的样本集合。作为优选的技术方案,步骤s3,具体包括下述步骤:步骤s31、采用无监督的简单取值域方法离散化ld和ud数据集的每个流统计特征fi的取值,i=1,2,..,m,m表示特征个数;步骤s32、在ld数据集上计算每个流统计特征fi的取值分布prob(fi|ld),表示为:prob(fi|ld)={p(r1),...,p(rn)},其中p(rj)表示特征fi在ld数据集上的取值分布,j=1,…,n,n=li,li表示ld数据集上特征fi的取值个数;步骤s33、在ud数据集上计算每个流统计特征fi的取值分布prob(fi|ud),表示为:prob(fi|ud)={p'(r1),...,p'(rn)},其中p'(rj)表示特征fi在ud数据集上的取值分布,j=1,…,n,n=li,li表示ud数据集上特征fi的取值个数;步骤s34、利用hellinger距离,计算流统计特征fi在ld和ud数据集上的取值分布的差异性,用于评估特征fi的漂移程度;hellinger距离记为hd,具体计算如下:每个特征fi的漂移程度:drift(fi)=hdi。作为优选的技术方案,步骤s4中,所述流统计特征的综合评估值表示为:其中,dis(fi)表示特征fi的类间区分能力,drift(fi)表示特征fi的漂移程度;dis(fi)由步骤s2的信息增益率评估,drift(fi)由步骤s3的hellinger距离hd评估;dis和drift在计算com之前进行了min-max式的归一化;γ表示dis和drift之间的平衡系数。作为优选的技术方案,所述dis和drift之间的平衡系数γ,计算步骤包括:步骤(a):算法参数初始化:k=0,γ=2-k=1,循环执行步骤(b)~(d);步骤(b):利用当前的γ值,计算每个特征的综合评估值com(fi),i=1,2,…,m;步骤(c):判断ssafety的每个特征fi在所有特征集合中的com取值排序,若排序在前2*|ssafety|中,则返回γ值,退出循环,否则执行步骤(d);其中ssafety表示在ld数据集上具有显著区分能力的特征子集,这些特征子集将被选择;步骤(d):更新k值,k=k+1,更新γ值,γ=2-k,然后执行步骤(b)和步骤(c)。作为优选的技术方案,步骤s5,具体包括下述步骤:步骤s51、基于区分能力dis,获取具有显著区分能力的特征子集ssafety,具体是:基于所有特征的区分能力dis={dis1,dis2,...,dism},获取显著值划分阈值ηdis;若特征fi的disi>ηdis,则将fi加入到ssafety中;步骤s52、基于漂移程度drift,获取具有显著漂移程度的特征子集sdanger,具体是:基于所有特征的漂移程度drift={drift1,drift2,...,driftm},获取显著值划分阈值ηdrift;若特征fi的drifti>ηdrift,则将fi加入到sdanger中;步骤s53、对所有特征,根据综合评估值com值进行降序排序,获得ssort;步骤s54、将ssafety的特征加入最优特征子集sbest,sbest=sbest∪ssafety,将ssafety从ssort中移除;步骤s55、获取ssort的第一个特征fp,判断fp是否在sdanger中,若不在其中,则将fp加入sbest,并从ssort中剔除;循环执行当前步骤s55,直到sbest的大小为k,其中k为用户预设定的选择的特征个数,sbest为最终选择的特征子集。作为优选的技术方案,步骤s51和步骤s52中的显著值划分阈值,获取步骤如下:步骤(1):初始化较大取值序列初始化较小取值序列步骤(2):计算数值序列val={v1,v2,..,vm}的误差平方和sse,表示为其中数值序列val,当搜索类间区分能力dis的显著值划分阈值时,val表示dis序列;当搜索漂移程度的显著值划分阈值时,val表示drift序列;vi表示数值序列的第i个值,i=1,2,…,m;步骤(3):对val序列进行降序排序,降序排序后的val序列表示为vsort;步骤(4):获取vsort的前两个值,加入vlarge;步骤(5):将vlarge从vsort中移除,表示为vsmall=vsort\vlarge;步骤(6):获取vlarge的误差平方和sse,表示为获取vsmall的误差平方和sse,表示为步骤(7):若为真,返回显著值划分阈值η,否则执行步骤(8);其中β表示用户设定的是否有显著变化的阈值;步骤(8):vlarge的最后一个值赋值给η,vsmall的第一个值赋值给v,vlarge=vlarge∪{v},vsmall=vsmall\{v},执行步骤(6)。作为优选的技术方案,在步骤(2)中,所述误差平方和sse表示为:其中vi表示数值序列val的第i个值,i=1,2,…,m;表示数值序列val的所有值的均值。本发明相对于现有技术具有如下的优点和效果:(1)本发明方法利用有标记和无标记数据集,提出了特征漂移程度评估指标,对特征的稳定程度进行了量化,有利于选择稳定的特征子集。(2)本发明提出的特征选择方法综合了有标记数据集上的区分能力评估指标和无标记数据集上的特征漂移程度评估指标,选取的特征集合不仅具有较高的区分能力,并且较为稳定。(3)本发明方法的多个参数可以通过搜索算法获取,不依赖于人工设定,避免人工设定参数不当带来的性能损失。附图说明图1是本发明的一种移动app流量统计特征选择方法流程图;图2是本发明实施例中评估流统计特征的漂移程度的方法流程图;图3是本发明实施例中综合评估指标的平衡系数γ的搜索流程图;图4是本发实施例中流统计特征子集的搜索流程图;图5是本发明实施例中显著值划分阈值的搜索流程图;图6是本发明实施例的特征选择算法性能示意图。具体实施方式为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不限于本发明。实施例如图1所示,一种移动app流量统计特征选择方法,包括下述步骤:步骤s1、获取移动app的原始流量数据集,提取移动app流量的流统计特征,获取用于训练的有标记数据集ld,以及待分类的无标记数据集ud;步骤s2、在ld数据集上,利用信息增益率,评估每个流统计特征在类间的区分能力;步骤s3、在ld和ud数据集上,计算每个流统计特征的取值分布,利用hellinger距离评估特征取值分布差异性,评估流统计特征的漂移程度;步骤s4、将漂移程度作为特征区分能力的惩罚因子,计算流统计特征的综合评估值;步骤s5、基于综合评估值,搜索区分能力强且漂移程度低的流统计特征子集。可以理解,在流量数据集上提取流统计特征并建立流样本集合是特征选择算法研究和评价的第一步。s1、建立流样本集合的步骤包括:步骤s11、获取原始pcap流量数据,根据五元组{源ip、源端口、目的ip、目的端口},对一定时间间隔(600秒)内具有相同五元组的tcp/udp报文进行组流;步骤s12、对属于同一条流的报文计算流统计特征,例如,相邻报文大小差值的最小值、最大值等统计计算等。本发明实施例的移动app流量数据集的采集过程中,在移动设备端记录移动app的会话信息,包括:五元组、会话创建(或结束)时间、会话活动状态、产生会话的app。在标记网络流时,查找会话信息记录中,五元组相同且时间戳信息最接近的app作为网络流的类别标签。本发明实施例提供的数据集包含了155维特征,共12种app。本实施实例中,ld数据集的流样本带有类别标签,ud数据集的流样本集合没有类别标签。ld数据集可以看作有标记的训练样本集,将被用于评估每个特征在类间的区分能力。s2、本发明采用信息增益率作为区分能力的评估指标,其实施步骤包括:步骤s21、在ld数据集上,采用有监督的最小描述长度方法(minimumdescriptionlength)离散化每个统计特征fi,i=1,2,..,m,m表示特征个数;步骤s22、在ld数据集上,计算每个流统计特征的信息增益率gr(ld,fi),表征了特征fi在类间的区分能力dis(fi);信息增益率越大表明该特征有利于确定类别取值,即在类间的区分能力越强;所述信息增益率的计算公式如下:其中v(fi)表示特征fi的取值域,ldv表示ld数据集中特征fi取值为第v个值的样本集合;entropy(ld)和entropy(ldv)分别表示ld和ldv数据集上类别的信息熵;ldk表示类别ck的样本集合,k表示类别序号,ldvk表示来自ck类别中特征fi取值为第v个值的样本集合。s3、如图2所示,在ld和ud数据集上,建立每个流统计特征的取值分布,利用hellinger距离评估特征取值分布差异性,作为特征的漂移程度,具体过程包括如下步骤:步骤s31、采用无监督的简单取值域方法(simplebinning)离散化ld和ud数据集的每个流统计特征fi的取值,i=1,2,..,m;步骤s32、在ld数据集上计算每个流统计特征fi的取值分布prob(fi|ld),表示为:prob(fi|ld)={p(r1),...,p(rn)},其中p(rj)表示特征fi在ld数据集上的取值分布,j=1,…,n,n=li,li表示ld数据集上特征fi的取值个数;步骤s33、在ud数据集上计算每个流统计特征fi的取值分布prob(fi|ud),表示为:prob(fi|ud)={p'(r1),...,p'(rn)},其中p'(rj)表示特征fi在ud数据集上的取值分布,j=1,…,n,n=li,li表示ud数据集上特征fi的取值个数;步骤s34、利用hellinger距离,计算流统计特征fi在ld和ud数据集上的取值分布的差异性,用于评估特征fi的漂移程度;hellinger距离记为hd,具体计算如下:每个特征fi的漂移程度:drift(fi)=hdi。s4、流统计特征的综合评估值表示为:其中,dis(fi)表示特征fi的类间区分能力,drift(fi)表示特征fi的漂移程度;dis(fi)由步骤s2的信息增益率评估,drift(fi)由步骤s3的hellinger距离hd评估;dis和drift在计算com之前进行了min-max式的归一化;γ表示dis和drift之间的平衡系数。本实施例中,如图3所示,综合评估值中的γ表示dis和drift之间的平衡系数,计算步骤包括:步骤(a):初始化参数,k=0,γ=2-k=1,循环执行步骤(b)~(d);步骤(b):利用当前的γ值,计算每个特征的综合评估值com(fi),i=1,2,…,m;步骤(c):判断ssafety的每个特征fi在所有特征集合中的com取值排序,若排序在前2*|ssafety|中,则返回γ值,退出循环,否则执行步骤(d);其中ssafety表示在ld数据集上具有显著区分能力的特征子集,这些特征子集将被选择;步骤(d):更新k值,k=k+1,更新γ值,γ=2-k,然后执行步骤(b)和步骤(c)。s5、如图4所示,基于综合评估值,搜索区分能力强且漂移程度低的流统计特征子集,包括如下步骤:步骤s51、基于区分能力dis,获取具有显著区分能力的特征子集ssafety,具体是:基于所有特征的区分能力dis={dis1,dis2,...,dism},获取显著值划分阈值ηdis;若特征fi的disi>ηdis,则将fi加入到ssafety中;步骤s52、基于漂移程度drift,获取具有显著漂移程度的特征子集sdanger,具体是:基于所有特征的漂移程度drift={drift1,drift2,...,driftm},获取显著值划分阈值ηdrift;若特征fi的drifti>ηdrift,则将fi加入到sdanger中;步骤s53、对有所特征,根据综合评估指标com值进行降序排序,获得ssort;步骤s54、将ssafety的特征加入最优特征子集sbest,sbest=sbest∪ssafety,将ssafety从ssort中移除;步骤s55、获取ssort的第一个特征fp,判断fp是否在sdanger中,若否,则将fp加入sbest,并从ssort中剔除。可以理解,循环执行s55,直到sbest的大小为k,其中k为用户预设定的选择的特征个数,sbest为最终选择的特征子集,通过保留区分能力强的ssafety的特征,剔除漂移程度高(不稳定)的sdanger的特征,并从剩余的特征中选择综合指标值较高的特征,最终选择的特征个数为用户预先设定的k。在步骤s51和步骤s52中,ηdis和ηdrift表示在某个数值序列val={v1,v2,..,vm}中的显著值划分阈值,如图5所示,显著值划分阈值的获取步骤包括:步骤(1):初始化较大取值序列初始化较小取值序列步骤(2):计算数值序列val={v1,v2,..,vm}的误差平方和sse,表示为其中数值序列val,当搜索类间区分能力dis的显著值划分阈值时,val表示dis序列;当搜索漂移程度的显著值划分阈值时,val表示drift序列;所述误差平方和sse表示每个取值到均值的距离平方之和,具体计算如下:其中vi表示数值序列val的第i个值,i=1,2,…,m;表示数值序列val的所有值的均值;步骤(3):对val序列进行降序排序,降序排序后的val序列表示为vsort;步骤(4):获取vsort的前两个值,加入vlarge;步骤(5):将vlarge从vsort中移除,表示为vsmall=vsort\vlarge;步骤(6):获取vlarge的误差平方和sse,表示为获取vsmall的误差平方和sse,表示为步骤(7):若为真,返回显著值划分阈值η;否则执行步骤(8);其中β表示用户设定的是否有显著变化的阈值;步骤(8):vlarge的最后一个值赋值给η,vsmall的第一个值赋值给v,vlarge=vlarge∪{v},vsmall=vsmall\{v},执行步骤(6)。本实施例中,如图6所示,在本发明提供的移动app流量数据集上,开展了特征选择算法的性能比较实验,分别从流分类准确率(flowaccuracy),字节分类准确率(byteaccuracy),流g-mean(flowg-mean),字节g-mean(byteg-mean)四个指标比较,四项指标计算如下:在某个网络流量数据上,af、ab、gf、gb分别表示流分类准确率,字节分类准确率,流g-mean,字节g-mean。cf、cb分别表示正确分类的流数目和字节数目,nf、nb分别表示总体流数目和字节数目,cib分别表示类别i的正确分类的流数目和字节数目,和nib分别表示类别i的流数目和字节数目。实验结果表明,本发明提供的方法ddfs的性能更优。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以权利要求所述为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1