安全模型、算法与编程
基于特征选择的 K-means 聚类异常检测方法
◆樊 蓉 李 娜
(四川大学计算机学院 四川 610065)
摘要:K-means 算法是一种采用距离作为相似性评价指标的聚类算法,其快速简洁的特点在异常检测场景中有一定的应用价值。但是,
传统的 K-means 聚类算法在选取初始中心和度量相似性上有一定缺陷。针对传统的 K-means 算法中存在的问题,本文对原有的方法
进行了改进。第一,在初始化聚类中心时选取了一种优化的方法作为初始聚类中心,替代原有的随机选择方法以减少计算量和迭代次
数。第二,采用基于信息熵属性加权的样本相似性度量来进一步精确样本差异。实验过程中,针对异常检测数据含有冗余特征,对样
本数据做了冗余特征过滤,实验结果表明改进之后的方法较传统的 K-means 算法有更好的检测效果。
关键词:K-means 算法;异常检测;聚类;冗余特征
0 引言
异常检测就是假设入侵行为异常于正常行为,如果当前行为
与正常行为存在一定的偏差就认为系统受到攻击[1]。这个特点使
其有能力识别未知类型的攻击,异常检测是入侵检测方面的一个
研究热点。从 Wenke Lee[2]使用数据挖掘方法得到属于不同数据的
行为轮廓开始,聚类算法在异常检测方面广为使用。江颉[3]和
Aljarah[4]针对 K 值选取提出的改进聚类算法,周涓等人[5]针对中心
选取提出的一种多个聚类中心选择算法等。K-means 聚类算法在
异常检测方面有着广泛的应用和良好的效果。但是存在几个问
题,一是 K 个中心初始位置的选取和确定,中心初始位置选择不
好会导致迭代次数增多和计算量增大,严重影响聚类效果;二是
样本度量问题,K-means 算法采用各属性无差异的欧式距离来计
算样本之间的相似性,没有考虑不同属性权重对样本的影响使得
相似性度量不准确;三是冗余属性和噪音会对聚类结果产生偏
离,计算时对效率影响较大。针对方法涉及的几个问题,本文提
出一种基于特征选择的 K-means 聚类算法。首先,采用 Fisher
特征选择对特征重要度排序,用顺序前向最优搜索的方法快速确
定所选特征数量由小到大的最优特征子集,所选的特征子集能最
大程度的代表原始特征,并且去除不必要的特征和噪音。其次,
采用一种优化的方法来选取初始聚类中心以减少计算量和迭代
次数;最后,计算各属性的信息熵作为属性权重来度量样本之间
的差异,区别不同属性对样本的贡献。本文提出的方法在异常检
测方面取得不错的检测效果。
1 一种改进的 K-means 聚类算法
1.1 K-means 聚类算法
K-means 算法是一种典型的基于距离度量相似性的聚类算
法,算法的主要思想是差异最小最相似,根据样本之间的相似程
度划分至相应的簇内[6]。具体流程如图 1 所示:
输入:样本集,初始聚类中心数 K
步骤:1)从样本集中 X 中随机选择 K 个样本作为初始簇
中心{C1,C2,...,Ck};
2)计算样本集中各样本与各簇中心 Cj(1
安全模型、算法与编程
输入:样本数据集
步骤:1)输入数据集,计算矩阵行列数,初始化零矩阵
A(i)用于存放特征的排序结果,计算特征数 n,类别数 m;
2)计算每一个特征从 1 到 n 的所有数据算数平均
值,x 计算每一类数据从 1 到 m 在此特征下的平均值和样本
总平均值的方差,同时把所有类别加和,表示类间方差,y
计算所有类别下此特征的方差和,表示类内方差;
3)若 x=0,表示类间该特征无区分度,A(i)=0;若
y=0,表示类内相似度高,类间相似度低,此特征有较好的
区分度,A(i)=100,否则 A(i)=x/y;
输出:特征重要程度排序
图 4 Fisher 分特征排序
2.2 基于特征选择的 K-means 聚类异常检测
首先对输入样本根据 Fisher 分进行特征选择,采用前向序列
搜索选出能够代表样本的最优特征子集,然后基于改进的 K 均值
算法进行聚类,方法流程如图 5 所示。
样 本 数
据集
数 据 预
处理
Fisher 特征选择(去
冗余特征)前向序列
搜索选出最优特征子
改进 K 均值聚类
样本属性加权
检测结果生
成报告
(正常/异常)
模 型 分
类检测
簇中心选取
加权距离度量
聚类迭代
图 5 基于特征选择的 K-means 聚类异常检测流程
3 实验测试与分析
3.1 实验数据与评价指标
实验将选取 10000 条样本记录作为实验数据集输入,每一条
样本记录由 41 维向量特征组成。在进行实验之前,对样本记录
做标准化和归一化处理以消除样本差异及覆盖等影响。实验效果
则采用检测率、误报率、检测时间为评价指标。其中,样本集来
自当前入侵检测领域权威数据集 KDD,实验平台为开放的数据挖
掘平台 weka。
3.2 实验设计与结果分析
本文设置三组实验:
第一组实验的目的是证明本文的特征选择所选出的特征对
于聚类检测具有可行性。实验采用 Fisher 分对抽样的 41 维数据
进行排序的结果如表 1 所示:
表 1 Fisher 分对数据特征排序
序号 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15
Fisher 23 32 24 12 3 2 33 27 34 28 4 39 37 10 16
序号 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Fisher 40 41 22 29 6 14 5 35 30 25 31 38 26 26 11
序号 31 32 33 34 35 36 37 34 35 36 37 38 39 40 41
Fisher 17 9 13 1 16 19 9 1 16 19 9 15 7 20 21
为了得到最优的特征子集并且不丢失必要的特征,本文采用
前向序列搜索依次加入 5、3、2、1 个特征进行聚类的结果如图 6
所示:
图 6 特征数与聚类检测率结果
‖26‖
通过实验,从图中可以看出,首先加入前 5 个特征有较好的
检测率,然后逐次加入 3、2、1 个特征时检测率有所提高,当所
加入的特征数为 11 时,检测率趋于稳定,通过前向序列搜索得
出最优特征子集为{23 32 24 12 3 2 33 27 34 28 4},相比于原始 41
维数据,得到的最优特征子集能很好的得到检测效果,与原始的
数据检测率相当,有效的减少了计算资源。
第二组实验设计了 2000 条数据样本,分别采用本文改进的
K-means 聚类方法和传统方法做聚类对比实验,实验检测结果如
图 7 所示。
图 7 传统 K-means 与改进 K-means 检测率对比
图 7 中序列 1 代表传统的 K-means 算法,序列 2 代表改进的
K-means 算法。实验数据分析可以得出在 K 取不同值情况下检测
结果也会随之变化,当 K 取值为 8 时,两种方法的检测效果都达
到最佳。由于改进的方法优化聚类中心的选取,采用信息熵加权
的距离计算,使得检测率高于传统方法。
第三组实验的目的在于验证本文提出的方法能够取得较好
的检测结果。设计两组相同数据集,采用两种方法做对比实验,
重复实验 10 次,实验取平均值。检测结果如表 2 所示:
表 2 传统 K-means 与本文方法检测结果对比
聚类算法
传统 K-means
基于特征选择
检测率
91.64%
误报率
2.37%
检测时间(s)
251
92.43%
2.38%
47
K-means
通过本组对比实验可以看到本文改进的方法在检测的误报
率相当的情况下,在检测率上有一定的提高,在检测时间上也有
着显著的缩减。由于采用特征选择去除不必要特征使得数据维数
缩减,减少了聚类时间,去除的噪音数据也消除了对样本相似性
度量的影响。同时,优化的聚类中心选取与加权的距离度量也使
得检测的检确率有一定的提升。
4 结束语
本文通过 Fisher 进行特征选择过滤了冗余特征,大大缩减了
检测时间,提高检测效率,同时采用改进的 K-means 算法进行聚
类检测提高了检测率。经实验验证可以得到,本文提出的改进的
K-means 聚类异常检测方法相较于传统的方法有着较好的检测
效果。
参考文献:
[1]卿斯汉, 蒋建春, 马恒太等.入侵检测技术研究综述[J].
通信学报,2004 .
[2]Lee W, Stolfo S J.A framework for constructing features
and models for intrusion detection systems[J].ACM Transactions
on Information and System Security(TISSEC),2000.
[3]江颉, 王卓方, 陈铁明等.自适应 AP 聚类算法及其
(下转第 30 页)
安全模型、算法与编程
务。
图 2 LVS+OSPF 集群模式
该技术具体工作流程如下:
如图 2 所示,每台 LVS 一个接口与三层交换机上连,另一个
接口下连多台 RS。三层交换机与 LVS 安装的软路由软件 Quagga
分别启用 OSPF,并彼此建立 OSPF 邻接关系。每台 LVS 将各自
的 VIP 宣告进 OSPF 域,最终三层交换机路由表将有多条通往 VIP
的等价路由。前端 LVS 与后端 RS 使用 DR(directly routing)模式[6]。
当客户端向 VIP 发起一个 TCP 连接请求,数据包必将路由
到三层交换机,三层交换机查询路由表,通往目的地址 VIP 有多
条等价路径,通过对源 IP 地址、源端口、目的 IP 地址和目的端
口进行 hash,将 TCP 连接分配到集群中的某一台前端 LVS 上,
LVS 将请求分发到后端某一台后端 Real server(RS),后端 RS 完成
处理后将数据直接返回给用户,完成整个过程。
该解决方案的好处在于:首先,LVS 可以自由横向扩展,最
多扩展到 8 台前端 LVS 同时 active;另外,不存在 LVS 备机,提
高了设备利用率;最后,高可用性进一步提升,某台 LVS 宕机后,
其他 active 接替其处理。
4 方案测试实验
为了验证该方案可行性和集群性能,将分别进行 HA 模式和
多活 LVS 模式对比实验测试。本次实验中,将使用 Microsoft Web
Application Stress Tool(简称 WAS),一种 WEB 压力测试工具。
实验环境,我们利用一台 Dell PowerEdge 710 服务器上进行
测试,物理机采用 ESXi 64 位版本为 6.5 的系统,处理器为 8 颗
Intel Xeon CPU E5620 @240GHZ 处理,16GB 内存。在 ESXI 中多
个虚拟机,虚拟机中都使用 Centos7.2 系统,每个虚拟机使用 1
颗 vCPU、2G 内存。
(上接第 26 页)
在入侵检测中的应用[J].通信学报, 2015.
[4]Aljarah I,Ludwig S A.Parallel particle swarm optimization
clustering algorithm based on MapReduce methodology[C]/
/Proc of the 4th World Congress on Nature and Biologically
Inspired Computing. [S.l.]: IEEE Press,2012.
[5]周涓, 熊忠阳, 张玉芳等.基于最大最小距离法的多中
心聚类算法[J].计算机应用, 2006.
[6]李锐,李鹏,曲亚东,王斌译.Peter HARRINGTON.
机器学习实战[M].北京:人民邮电出版社, 2013.
‖30‖
分别部署 HA 模式和多活 LVS 模式,使用 WAS 分别对集群
进行 Web 压力测试。测试结束后,WAS 会产生一个 report,包括
对各项性能进行了详细分析,其中一个重要指标是 TTLB(Time To
First Byte),它反应了业务的平均响应时间。基于报告我们得到实
验结果,如下图所示,图 3 显示了当连接数较小的时候,并发连
接数在 100 到 400 时,多活 LVS 模式与 HA 模式在 TTLB 指标差
别微弱。但是随着增加连接数,多活 LVS 模式的 TTLB 指标明显
优于 HA 模式。这是由于多台 LVS 服务器同时分担了连接数的调
度分发。
图 3 LVS 的 HA 模式与多活模式 TTLB 指标对比
5 结束语
本文首先对 LVS 和 OSPF 进行了简要介绍,进一步介绍了目
前企业中常用的 LVS HA 模式的负载均衡技术,并分析了该技术
的在目前移动互联网情况下的弊端,进而提出了基于 OSPF 的
LVS 集群解决方案-多活 LVS 集群模式。最后通过实验,验证了
本文介绍的方案在性能方面的更加优越。
参考文献:
[1]wikipedia.https://en.wikipedia.org/wiki/Linux_ Virtual_
Server.
[2]腾讯云. https://www.qcloud.com/community/ article/
238341.
[3]ZhnagWS.LVSclusterLoaddispatch[EB/OL].[2016-03-10]
.http://www.linuxvirtualserver.org/zh/lvs4.html.
[4]杨岚兰,唐宁九.基于 IPv6 的 OSPF 技术及实现[D].四
川大学, 2005.
[5]quagga. http://www.nongnu.org/quagga.
[6]章文崇山. http://www.linuxvirtualserver. org/zh/ lvs3.
html.
[7] 程正东,章毓晋,樊祥等.常用 Fisher 判别函数的判别
矩阵研究[J].自动化学报,2010.
[8]CHENG Zhengdong,ZHANG Yujin,FAN Xiang,et
al.Study on Discriminant Matrices of Commonly-Used Fisher
Discriminant Functions [J]. SctaAutomaticaSinica,2010.
基 金 项 目 : 国 家 重 点 研 发 计 划 (2016yfb0800604 ,
2016yfb0800605),国家自然科学基金项目(61572334)。