维普资讯 http://www.cqvip.com 2OO8牵 期年9月 Journal of South-Ce耋nt塞r一a墨lU薹ni奎ve薹rs篓ityfor!N篓at鍪iona lities(Nat.Sc i.Ed ition): VoIS.Zep7.N20o0.38 改进k均值聚类算法在网络入侵检测中的应用研究 覃 俊 ,易云飞 ,李 林 (1中南民族大学计算机科学学院,武汉430074;2河池学院计算机与信息科学系,河池546300) 摘要针对k-means算法事先必须获知聚类数目以及难以确定初始中心的缺点,提出了一种改进的k-means聚 类算法.改进后的算法首先使用了复合形和粒子群算法来选取聚类的初始中心点,然后使用志一means算法快速收敛 获取聚类结果.实验表明:把改进后的算法用于网络入侵检测系统中,可以提高不需指导的异常检测的检测率,降 低误检率. 关键词 复合形法;粒子群优化算法;五一mea ̄s算法;入侵检测 中图分类号TP393.08文献标识码A文章编号1672-4321(2008)03—0075—04 Research of Improved k-Means Clustering Algorithm in Network Intrusion Detection Qin Jun ,Yi Yunfei ,Li Lin (1 College of Computer Science,South—Central University for Nationalities,Wuhan 430074,China; 2 Department of Computer Science and Information,Hechi University,Hechi 546300,China) Abstract In allusion to the disadvantage of having to obtain the number of clusters of datasets in advance and the sensitivity to selecting initial clustering centers in the k-means algorithm,an improved k-means clustering algorithm based on Complex-Particle Swarm Optimization is proposed.The number of clusters of data SetS and the initial clustering centers in the k-means algorithm has been assigned by the improved algorithm through the Complex—Particle Swarm Optimization.The experimental results show that the improved-algorithm can improve the DR and reduce the AR of the Unsupervised Abnormal Detection in NIDS(Network Intrusion Detection System). Keywords complex method;particle swarm optimization;k-means algorithm;IDS 根据数据分析手段的不同,常用的入侵检测方 法[1 ]可以分为滥用检测和异常检测.滥用检测是利 用已知的系统缺陷和已知的入侵方法进行入侵活动 的行为特征来检测入侵.异常检测模型把用户习惯 行为特征存储在特征数据库中,然后将用户当前行 为与特征数据库中的特征进行比较,若两者偏差足 够大,则说明发生了人侵.这种方法的优点是能检测 未知的攻击类型,适应性强.异常检测又分为需指导 的异常检测和不需指导的异常检测两种.当今,不需 的检测,其优点是准确度很高,缺点是误检率和漏检 率较高.异常检测是指利用定量的方式来描述可接 受的行为特征,以区分和正常行为相违背的、非正常 收稿日期 2008.06—23 作者简介覃corn  ̄(1968一),女,副教授,博士,研究方向:数据挖掘,智能计算和网络安全,E—mail:wrjqj@hotmail. —基金项目 国家民委自然科学基金资助项目(PMZY06004);中南民族大学大学生科研创新基金项目(cxcy2008003y);河 池学院自然科学基金资助项目(2007B—N004) 维普资讯 http://www.cqvip.com 76 中南民族大学学报(自然科学版) 第27卷 指导的异常检测方法的入侵检测技术已经成为研究 的焦点.该技术可以利用不完全正常的训练数据,只 需要未加工的网络原始数据作为输入,就能发现其 中存在的攻击数据.现有的入侵检测系统大都采用 专家系统或基于统计的方法,这都需要较多的经验, 数据挖掘方法的优势在于它能从大量数据中提取人 们感兴趣的、事先未知的知识和规律,而不依赖 经验. k-means聚类算法 可以用于不需指导的异 常检测技术中,并且可以在未标记的数据上进行.它 将相似的数据划分到同一个聚类中,而将不相似的 数据划分到不同的聚类,并为这些聚类加以标记表 明它们是正常还是异常,然后将网络上数据划分到 各个聚类中,根据聚类的标记来判断网络数据是否 异常.然而该算法也存在着不足之处:忌个初始聚类 中心点的选取对聚类结果有较大的影响,同时由于 该算法是采用梯度法求解极值,结果可能只是局部 而非全局最优.为了克服这些缺陷,有文献结合遗传 算法对愚均值算法进行改进,如,Malik等采用了聚 类中心的浮点编码方式,并设计了浮点数交叉和变 异算法,从而提高了遗传聚类算法的搜索效率__3].但 是,实验表明,当样本数目、维数和类别数较大时,这 些算法常常过早的收敛于局部极优点的现象.本文 提出了一种基于粒子群和复合形法的改进的愚均值 聚类算法(Complex—PSO and k-means Clustering Algorithm),简称COPSOK算法.改进后的是一means 算法可以选择适当的初始聚类中心点,同时也能得 到更好的聚类结果.实验表明,把改进后的算法用于 网络入侵检测系统中,可以提高不需指导的异常检 测的检测率,降低误检率. 1尼一means聚类算法 k-means算法的基本思想是,以忌为参数,把n 个对象划分成C个簇.以使簇内具有较高的相似度, 而簇间的相似度较低 ].相似度的计算根据簇的重 心,其值用簇中各对象的平均值来计算.首先从数据 集中随机选取c个点作为初始聚类中心,然后对剩 余的每个对象,根据其与各个簇中心的距离,将它赋 予最近的簇.重新计算每个簇的平均值来找簇的重 心,如此反复,直到准则函数收敛为止.通常采用平 方误差准则,其定义如公式(1)所示: c t,一 Il z{ )_ , (1) 其中, 一1,2,…,c; ,是C个聚类的中心,它的值 为簇c 的均值,即: ,一音 ~1三 . (2) J—i k-means算法的处理过程: ①从 个数据对象集{3-2" , :,…,z }中随机选 取是个对象{Y , 。,…, }为初始聚类中心; ②计算各对象到中心对象的距离,并根据最小 距离重新划分; ③更新簇的平均值,即计算每个簇中对象的平 均值; ④循环②到③,直到每个聚类不再发生变化时 算法终止. 从算法流程不难看出,该算法得到的聚类结果 受初始时聚类中心对象的选取的影响很大,随机选 取的不同的初始值可能导致不同的聚类结果,甚至 可能出现得不到有意义的聚类结果的情况.另外,由 于该算法是采取梯度法求解极值,而梯度法的搜索 方向是沿能量减小的方向进行的,所以得到的结果 往往是局部最优而非全局最优. 2粒子群复合形算法 2.1 复合形法 复合形法 (Complex Method)是一种常用的 直接搜索方法,该算法只需通过直接比较和利用个 设计点的约束函数和目标函数本身的值来进行搜 索,每一步都寻找一个较好点取代最差点,若未找到 就剔除最差点.该算法局部搜索能力很强,但结果全 局性较差.复合形法的基本思想是:在解空间中随机 地给出五个初始点z。, 一, ,称为初始原形,每进 行一步都对这是点以目标函数值f(x。),f(x ),…, f(x )为据排序,假设函数值最大的点z 为最差点, 函数值最小的点 为最好点,然后分别使用公式 (3)和(4)求除最差点外其余各点的中心点X。和反 射点 (检查z 是否可行,若不可行,令a一号,再 由公式(4)计算 ,直到可行为止),当f(x )<厂(z ) 时,由 代替X ,从而得到一个新的复形,如此循环 计算直到满足以下终止条件: 1 k-1 一31,27o一7一西 ∑Xi厶.・ (3), 11 z。一z0+a(xo--X ). (4) 2.2粒子群算法 维普资讯 http://www.cqvip.com 第3期 覃 俊,等:改进k均值聚类算法在网络入侵检测中的应用研究 77 粒子群算法(Particle Swarm Optimization, PSO)是Kennedy与Eberhart于1995年提出的一种 全局优化算法,该算法的基本思想来源于对鸟群简 化社会模型的研究及行为模拟,其中的每个个体充 分利用群体的与自身的智能,不断地调整学习,最终 得到满意解 ¨.在PSO算法中,每个备选解都是搜 索空间中的一个“粒子”,每个粒子根据它自身的“经 验”和粒子群的最佳“经验”,在问题空间中向更好的 位置“飞行”,如此循环搜索直到发现最优解. 在基本PS0算法中,粒子群在一个D维空间中 搜索,粒子的总数为 ,粒子群的初始位置和速度随 机产生,然后按照公式(5)和(6)进行迭代计算,直到 满足终止条件. 一 +clrand1()×( d—z )+ Czrand2()×(户 一z ). (5) 一 + ,1≤ ≤ ,l≤ ≤D. (6) 式中, 表示第志次迭代后粒子i飞行速度矢量 的第 维分量;z 表示第七次迭代后粒子 位置矢量 的第d维分量;P 表示粒子i个体最好位置的第d维 分量;户 表示群体最好位置的第d维分量; 为惯性 权重函数;f1,f2表示权重因子;randl(),randz()分 别为产生[O,1]的随机数的随机函数. 2.3粒子群复合形算法 粒子群算法源于对鸟群觅食过程中的迁徙和群 居的模拟,系统初始化为一组随机解,通过迭代搜寻 最优值,粒子在解空间中追随最优的粒子进行搜索. 该算法以种群行为而不是适者生存原则来激励粒子 的运动.每个潜在解与粒子运行速度相联系,该速度 根据自身和种群的经验来调整大小、方向,总是希望 朝着更好的方向发展.在搜索过程中,全局搜索能力 与局部搜索能力的平衡关系对于算法的成功起着至 关重要的作用.复合形法是一种常用的直接搜索方 法,该算法局部搜索能力很强,但结果全局性较差. 算法中的每一步都寻找一个较好点取代最差点,若 未找到就剔除最差点.本文将复合形法作为一个算 子对粒子群算法中的粒子进行运算,以充分发挥两 种算法的优点,在更有利于最优搜索的基础上,构建 粒子群复合形算法. 2.4 基于粒子群和复合形算法的改进k-means 算法 本文提出的基于复合形和粒子群算法的改进k— means聚类算法的基本思想是,首先利用复合形和 粒子群算法寻找最优的五个初始聚类中心点,然后 利用k-means算法找到聚类结果,最后把找到的结 果输出即可.算法中待求解的向量空间中每个向量 被描述为一个点,在数据集中的每个项目被描述为 解空间中的一个维,整个数据集作为一个带很多点 的空间来描述,每个点映射为一个粒子,整个数 据集就是一个粒子群. 基于复合形和粒子群算法的改进的志一means算 法的流程如下: ①从n个数据对象集{ ,z ”,z )中随机选 择不同的对象,每个对象当作一个初始粒子分别用 公式(5)和(6)来计算其速度和位置值; ②在①的处理过程中,把复合形法作为其中的 一个算子对其中的每个粒子进行运算,找出初始的五 个初始聚类点; ③利用②得到的志个初始聚类点,使用传统的 k-means算法进行聚类; ④输出志个聚类中心及其所划分的集合. 3实验分析及结论 聚类算法能够用于异常检测,要求训练集数据 中异常行为的数据占正常行为数据的比例为3 ~ 10 ,当聚类簇集合中包含的异常行为记录大于训 练集异常记录的比例时,称此集合为异常行为集合, 其余为正常行为集合.异常检测是通过训练过程建 立类别模式,然后将检测数据与类别模式逐一比较, 一般用检测率和误检率评价检测结果. 实验选用的数据集是测试数据KDD cup99数 据中的“kddcup data 10 percent”,该数据集共有 494 021个记录,其中正常记录数据是:97 278,其余 396 473的是异常数据,异常数据分为4类:Dos (Denial of Service)、U2R(User to Root)、R2L (Remote to User)和Probe.为了满足聚类算法能用 于异常检测的条件,从整个检测数据集中提取4组 数据作为实验用数据,每组数据中包含30 910条记 录,其中29 986条正常数据,924条异常数据,异常 数据占正常数据的比例为3.O8 ,符合正常数据的 数目要远多于入侵数据数目的要求.由于所选择的 数据集“kddcup.datalO——percent”中U2R异常数 据个数只有5O多个,没有必要进行同一入侵类型检 测.所以前3组数据集分别对应的是只包含Dos, R2L,Probe入侵的数据,第4组数据集包括所有4 类入侵数据.对于每个TCP/IP连接,除了一些基本 属性外,还有利用领域知识扩展了一些属性.每个连 接有41种符号型和数值型的特征属性.在实验过程 维普资讯 http://www.cqvip.com
78 中南民族大学学报(自然科学版) 第27卷 中只选取数据中的15种关键属性进行聚类,其中12 个数值属性,3个字符属性.为了评价分析结果,采 操作系统为WinXP,开发平台为VC+ 6.0)分别实 现传统的k-means算法和本文提出的COPSOK算 用检测率和误检率来衡量. 法所得的实验结果分别如表I和表2所示. 用实验环境(内存为512M,CPU为P4 2.4GHz, 表1 k-means算法实验结果 Tab.1 Results of the k—means 从2个表不难看出,C0PS0K算法所得实验结 果的误检率都比k-means算法的低,检测率要高.究 参考文献 其主要原因,是文章采用的算法改进策略,即,将复 合形和粒子群算法来确定聚类的最佳数目以及选取 [1] Xu Rui,Wunsch Donald.Survey of clustering 聚类的初始中心点,这正好弥补了k-means算法的 algorithms[J].IEEE Transactions on Neural 不足之处.实验表明,本文提出的算法是有效的. Networks,2005,16(3):634—678. [2] Xia Shixiong,Li Wenchao,Zhou Yong,et a1. 4 结束语 Improved k-means clustering algorithm[J].Journal of Southeast University(English Edition),2007,23 (3):435—438. 聚类算法被引入到入侵检测中,主要运用在异 [3] Maulik U,Bandyopadhyay S.Genetic algorithm—based 常检测技术中.在实现系统自动检测,预防未知攻击 clustering technique[J].Pattern Recognition,2000,33 方面具有巨大的优势.用聚类方法建立的系统不需 (9):1 455—1 465. 要任何事先标记信息的数据记录,它在保持较低误 [4] 谷保平,许孝元,郭红艳.基于粒子群优化的五均值算 检率的同时可以有很高的检测率.k-means算法是 法在同络入侵检测中的应用EJ].计算机应用,2007,6 一种简便实用的无监督学习算法,但是该算法通常 (27):1 368—1 370. 受初始的聚类中心点的选取的影响很大,特别当出 E53 赵锋,薛惠锋,王 伟.基于复合形遗传算法的七一 现异常点的情况时,该算法将很难得到理想的聚类 means优化聚类方法[J].航空计算技术,2006,36(5): 结果.针对该算法的一些不足之处,本文引入了复合 59—61. 形和粒子群算法来选取聚类的初始中心点,改进传 [6] 沈显君,王伟武,郑波尽,等.基于改进的微粒群优化算 法的O一1背包问题求解[J].计算机工程,2006,32(18): 统的k-means聚类算法.实验表明,把改进后的算法 23—24. 用于网络入侵检测系统中,可以有效提高不需指导 [7] 杨 勋,王江晴.求解聚类问题的混合PSO算法设计 的异常检测的检测率,降低误检率,进一步的研究计 [J].微电子学与计算机,2007,24(10):43—45. 划是如何优化算法,节省程序执行开销.