基于改进agnes算法的协议分类方法

文档序号:9432601阅读:497来源:国知局
基于改进agnes算法的协议分类方法
【技术领域】
[0001] 本发明设及一种基于改进AGNES算法的协议分类方法。
【背景技术】
[0002] 网络信息安全与对抗已成为信息时代十分关注的重要问题。在电子对抗等领域, 常使用特殊手段获得双方通信的比特流,一般通信双方采用的通信协议是订制的、非公开 的。另外,在网络通信过程中使用协议解析工具时,往往会遇到无法解析的协议比特流;解 析运些完全未知的协议是比较困难的,但对于像网络监管、信息保护、信息窃取等领域,识 别未知协议又是一项至关重要的工作;因此从所获得的比特流序列中进一步识别通信所使 用的未知协议是一个重要课题。
[0003] 目前未知协议识别的一种基本思路是针对某一种未知协议,采用数据挖掘和模式 匹配的方法,用数据挖掘方法寻找该未知协议的特征,然后用模式匹配方法匹配特征进行 识别;该类方法前提是要得到单协议数据帖供学习使用,单协议数据帖对多协议数据帖进 行聚类得到,需要用到层次聚类算法,也就是AGNES算法。
[0004] 传统的AG肥S算法思想为:首先将每个对象作为一个簇,然后根据设定的准则一 步一步将簇合并为越来越大的簇,知道满足希望得到的簇个数或其他设定条件,通常合并 的准则为对象间和类簇间的相似度。
[000引传统的AG肥S算法的描述如下:输入:含有C个对象的数据集;希望得到的簇个数k;输出:k个类簇;步骤:(1)将每个对象作为一个类簇,共C个;(2)Repeat; (3)根据距离 准则的定义,找到最相似的两个簇;(4)合并最相似的两个簇,得到新的簇的集合;(5)知道 达到指定的类簇的数目k。
[0006] AGNES算法简单、准确率高,但该算法没有良好的可伸缩性;算法在合并点的选择 非常关键,若在某一步没有较好的选择合并点,会直接影响后面的聚类效果。

【发明内容】

[0007] 本发明的目的在于克服现有技术的不足,提供一种基于改进AGNES算法的协议分 类方法,能够自动确定聚类的个数,所得的每一个类簇都有一个相似度评价指标,算法在聚 类过程中会考察当前的聚类结果,将已满足的类簇及时提取出来。
[0008] 本发明的目的是通过W下技术方案来实现的:基于改进AGNES算法的协议分类方 法,它包括W下步骤:
[0009] S1.输入n个数据对象的数据集化taSet,设定最低可合并相似度lowestSimi、 最低类簇对象个数lowestSize和相似度降低步长temp的值,其中最低可合并相似度 lowestSimi小于 1 ;
[0010] S2.将每个对象当作一个初始的类簇,并设置相似度参考阔值,相似度参考阔值 similar= 1 ;
[0011] S3.将数据集化taSet中第i个类簇与除自身外所有类簇进行比较和聚类,其中, 且i为整数;
[001引 S4.变换i的取值,循环执行步骤S3的比较和聚类,直到i取完1~n中所有的整 数值;
[0013] S5.判断S3~S4中聚类得到的类簇对象个数是否大于最低类簇对象个数 lowestSize:
[0014] (1)聚类得到的类簇对象个数大于最低类簇对象个数lowestSize,将聚类结果加 入聚类结果集合clusterResultSet,将类簇含有的对象编号加入类簇含有的对象编号集合 indexResultSet;将当前的similar的值加入相似度评价集合similarSet,并跳转到步骤 S6 ;
[0015] (2)聚类得到的类簇对象个数不大于最低类簇对象个数lowestSize;跳转至步骤 S6 ;
[0016] S6.降低similar的值,更新后的similar值取更新前的similar值减去相似度降 低步长temp,并判断更新后similar的值是否大于最低可合并相似度lowestSimi:
[0017] (1)更新后similar的值大于最低可合并相似度lowestSimi,跳转至步骤S3 ;
[0018] (2)更新后similar的值不大于最低可合并相似度lowestSimi,跳转至步骤S7 ;
[0019] S7.聚类结束,检查剩余不能合并的数据帖,将其加入剩余未形成较好聚类的数据 对象集合leftDataSet。
[0020] 所述的步骤S3包括W下子步骤:
[0021] S31.将类簇i分别与当前数据集DataSet除自身W外的所有类簇比较,找出当前 数据集化taSet中与类簇i相似度最高的类簇j;其中,类簇i为初始数据集化taSet中第 i个类簇;
[0022] S32.判断类簇i与类簇j的相似度是否大于当前的similar的值;
[002引 (1)类簇i与类簇j的相似度大于当前的similar的值时:将类簇i与类簇j合 并;
[0024] (2)类簇i与类簇j的相似度不大于当前的similar的值时,跳转至步骤S4 ;
[00巧]S33.从数据集化taSet中删除第j个类簇,更新数据集化taSet,并跳转至步骤S31。
[0026] 所述的步骤S31包括W下子步骤:
[0027] S311.分别计算类簇i与当前数据集化taSet中除自身W外的所有类簇分别求相 似度;
[0028] S312.找出当前数据集中与类簇i相似度最高的类簇j。
[0029] 所述的两个类簇间的相似度按照W下公式求解:
[0030]
[0031] pGCi'p'GCj
[003引式中,davg(Ci,Cj)表示两个类簇Ci,Cj之间的相似腹n康示类簇C冲包含的数据 帖条数,n,表示类簇C,中包含的数据帖个数,d(p,P')为数据帖P和数据帖P'之间的相似 度;
[0033] 所述的d(p,p')的求解方法有两种:
[0034] 方法一:直接求解数据帖之间的相似度,即求解d(p,p'):
[00;35] d(p,p')=sam(p,P')/sum(p,P'),
[003引其中sam(p,p')为按W下操作得到的结果:将数据帖P,P'W左端对齐,W半字节 为单位,从左到右对数据帖P,P'的对齐字符进行比较,遇到对齐字符相同的情况的次数即 为sam(p,P');而sum(p,P')为计算sam(p,P')时所比较的次数;
[0037] 方法二:将每条数据帖当成一条字符串,字符串之间的相似度similar(p,p')即 为所求的d(p,p'):
[0038]
[0039] 式中,length(P),length(P')分别为字符串P和字符串P'的长度, Distance(P,P')为两条字符串的编辑距离,表示将字符串P通过插入、替换、删除操作变为 字符串P'需要的操作次数。
[0040] 本发明的有益效果是:(1)本发明通过改变终止条件可W自动确定聚类的个数, 终止条件为:在某个设定的相似度参考阔值下,没有可W合并的类簇;本发明的AG肥S算法 先W高相似度聚类,然后逐步降低相似度直到设定的最低相似度值。
[0041] 似本发明使用了不同等级的相似度作为参考阔值,W得到不同聚类效果的类簇, 所得的每一个类簇都有一个相似度评价指标,运样可W从聚类结果上直观的看出哪些类簇 是较好的聚类。
[004引做本发明指定了满意的类簇对象个数阔值,在聚类过程中考察聚类结果,当有比 较满意的聚类类簇出现时(比如某个类簇的对象个数超过设定阔值),将该类簇提取出来 加入结果集中;可W及时发现已经形成的较好的类簇,W防被后面的不良的合并破坏;另 一方面,可W减小不良合并对后面步骤的影响,提高算法的可伸缩性。
【附图说明】
[0043] 图1为本发明的流程图。
【具体实施方式】
[0044] 下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于 W下所述。
[0045] 如图1所示,基于改进AGNES算法的协议分类方法,它包括W下步骤:
[0046] S1.输入n个数据对象的数据集化taSet,设定最低可合并相似度lowestSimi、 最低类簇对象个数lowestSize和相似度降低步长temp的值,其中最低可合并相似度 lowestSimi小于 1 ;
[0047] S2.将每个对象当作一个初始的类簇,并设置相似度参考阔值,相似度参考阔值 similar= 1 ;
[0048] S3.将数据集化taSet中第i个类簇与除自身外所有类簇进行比较和聚类,其中, 且i为整数;
[004引 S4.变换i的取值,循环执行步骤S3的比较和聚类,直到i取完1~n中所有的整 数值;
[0050] S5.判断S3~S4中聚类得到的类簇对象个数是否大于最低类簇对象个数 lowestSize:
[0051] (1)聚类得到的类簇对象个数大于最低类簇对象个数lowestSize,将聚类结果加 入聚类结果集合clusterResultSet,将类簇含有的对象编号加入类簇含有的对象编号集合 indexResultSet;将当前的similar的值加入相似度评价集合similarSet,并跳转到步骤 S6 ;
[0052] (2)聚类得到的类簇对象个数不大于最低类簇对象个数lowestSize;跳转至步骤 S6 ;
[005引 S6.降低similar的值,更新后的similar值取更新前的similar值减去相似度降 低步长temp,并判断更新后similar的值是否大于最低可合并相似度lowestSimi:
[0054] (1)更新后similar的值大于最低可合并相似度lowestSimi,跳转至步骤S3 ;
[00巧](2)更新后similar的值不大于最低可合并相似度lowestSimi,跳转至步骤S7 ;
[0056] S7.聚类结束,检查剩余不能合并的数据帖,将其加入剩余未形成较好聚类的数据 对象集合leftDataSet。
[0057] 所述的步骤S3包括W下子步骤:
[0058] S31.将类簇i分别与当前数据集DataSet除自身W外的所有类簇比较,找出当前 数据集化taSet中与类簇i相似度最高的类簇j;其中,类簇i为初始数据集化taSet中第 i个类簇;
[0059] S32.判断类簇i与类簇j的相似度是否大于当前的similar的值;
[0060] (1)类簇i与类簇j的相似度大于当前的similar的值时:将类簇i与类簇j合 并;
[0061] (2)类簇i与类簇j的相似度不大于当前的similar的值时,跳转至步骤S4 ;
[0062] S33.从数据集化taSet中删除第j个类簇,更新数据集化taSet,并跳转至步骤 S31。
[0063] 所述的步骤S31包括W下子步骤:
[00
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1