李 宁
(山西警察学院,山西 太原 030401)
随着信息技术和计算机技术的快速发展和深度应用,尤其是管理信息系统、数据库系统的使用,数据的收集和存储呈现爆炸式的增长[1]。然而,人们处理数据和分析数据的能力非常有限,无法满足数据快速增长的需求。面对海量数据,云计算[2-3](Cloud Computing,CC)为海量数据的存储、分析和处理提供了实际可行性。基于云计算平台的虚拟化、稳定性高、安全性高和易于扩展等优点,因此基于云计算的数据挖掘算法是分析和处理海量数据一个符合最优选择的工具[4]。为提高海量网络入侵数据检测的效率和精度,将云计算和核极限学习机结合,提出一种基于云计算的核极限学习机的网络入侵数据挖掘算法。通过Map函数和Reduce函数的并行设计和计算,实现网络入侵数据的分布式分析和处理。研究结果表明,通过CC-KELM、KELM和ELM进行对比发现,CC-KELM算法能够有效提高网络入侵检测的准确率,具有速度快和精度高的优点,为海量网络入侵数据检测和挖掘提供新的方法。
Hadoop云计算平台由MapReduce框架和分布式文件系统构成,其是Apache 基金会开发的开源软件。MapReduce是由Map和Reduce两个函数组成的程序模型,特别适合海量数据的分布式处理和挖掘,MapReduce运行机制如图1所示。
图1 MapReduce运行机制
1) Input阶段。读取数据,将数据切片并分配给Map函数。
2) Map阶段。Map函数按照逻辑关系处理每一个数据片。
3) Shuffle阶段。通过Shuffle阶段将中间键值由Map节点运送到Reduce节点,并且对中间键值进行合并和排序。
4) Reduce阶段。Reduce 函数处理Shuffle阶段传递过来的数据。
5) Output阶段。输出MapReduce最终结果并进行保存。
极限学习机[5-6](Extreme Learning Machine,ELM)是一种单层神经网络算法,其是在Moore-Penrose矩阵理论基础上提出的,具有学习速度快的优点。若ELM隐含层神经元数量为L个,训练样本N个,其矩阵形式为(xj,tj)∈R″×R‴,其中xj=[xj1,xj2,…,xjn]T和tj=[xj1,xj2,…,xjm]T分别表示ELM的输入矩阵和输出矩阵,则ELM的输出为[7-9]:
(1)
(2)
其中:
则公式(2)的矩阵形式为:
HB=T
(3)
其中,H表示极限学习机ELM的隐含层神经元的输出矩阵;xj:h(xj)表示输入xj的特征映射,其中h(xj)=[ψ(xj;μ1,v1),…,ψ(xj;μL,vL)]。
当训练样本数量N>L时,ELM的训练误差接近于0。此时,求解ELM近似等价于求解B的线性方程组的最小二乘解:
(4)
等式(4)中,结合岭回归,运用正则化系数C改善极限学习机网络的稳定性和泛化能力,则B的最小二乘解可表示为:
(5)
那么,ELM的输出可表示为:
(6)
为了避免初始权值和偏置对ELM预测效果的影响,将核函数引入ELM形成新的ELM即基于核的ELM算法。
在KELM 中,其核矩阵QELM=HHT,核矩阵的元素可表示为:
QELM(i,j)=h(xi)·h(xj)=K(xi,xj)
(7)
将公式(7)带入公式(6),KELM的输出可表示为:
(8)
其中,核函数K(xi,xj)本文选择RBF核函数。
随着Internet网络复杂程度日益加剧和规模的扩大,网络安全问题成为目前研究的热点问题和重点问题。由于网络入侵类型和行为的多样性、复杂性等特点,因此,高精度的网络入侵检测对网络安全的控制和防范具有重要意义。将云计算和核极限学习机KELM结合,对网络入侵数据进行切片处理,通过Map函数和Reduce函数并行化设计和计算,实现云计算的核极限学习机(CC-KELM)的网络入侵类型检测。基于云计算的核极限学习机的网络入侵数据挖掘算法流程如下。
图2 基于云计算的KELM数据挖掘流程图
1)读取网络入侵数据训练集,训练集数据处于云计算Hadoop平台分布式文件系统中,运用MapReduce框架分割网络入侵数据的训练集样本,得到k个不同的网络入侵数据训练集子集样本,其中k为并行Map的数量。
2)根据Map函数的程序逻辑运行网络入侵数据的训练集子集样本,也就是核极限学习机KELM的训练算法逻辑,并行训练网络入侵数据的训练集样本,即训练k个不同的核极限学习机KELM。
3)通过MapReduce框架的Shuffle阶段将k个不同的核极限学习机KELM的网络入侵预测结果传输到Reduce阶段,之后计算k个不同的核极限学习机KELM预测结果的权重确定各Map操作输出的网络入侵类型预测的权重,最后综合确定网络入侵类型预测结果。
为验证CC-KELM算法的有效性,以Hadoop平台为基础,该平台由32个节点组成,每个节点PC机配置如下:Intel(R)Core(TM)、CPU的主频为2.60 GHz、处理器I5-2400 、4核,内存8GB,云计算平台如图3所示。
图3 云计算平台
为了验证CC-KELM算法进行网络入侵检测的效果,以Windows10为操作系统,仿真软件平台选择MATLAB2015(a),PC机的处理器为Intel core I5 2.4GHZ 、内存8GB。选择KDD CUP99数据作为网络入侵检测和数据挖掘的研究对象[11],将检测率和误判率作为网络入侵检测效果的评价指标,二者的评价公式如下[12]。
1)准确率T:若实际网络入侵类型数目为b,正确检测的网络入侵类型数目为a,那么网络入侵检测的准确率如公式(9)所示。
(9)
2)误判率F:若第i类网络入侵类型的实际数目为a,将第i类网络入侵类型误判为第j类网络入侵类型的数目为c,那么网络入侵检测的误判率如公式(10)所示。
(10)
为了进一步说明CC-KELM算法的有效性,将CC-KELM、KELM和ELM进行对比,对比结果如表1和表2所示。
表1 检测率对比结果表
表2 误判率对比结果表
由表1和表2可知,CC-KELM的4种网络攻击类型的检测率分别为100%、99.45%、96.02%和99.46%,高于KELM算法的98.44%、90.75%、88.23%、86.64%和ELM的97.67%、96.22%、98.42%、90.33%。通过对比发现,CC-KELM算法能够有效提高网络入侵检测的准确率。
图4 CC-KLEM检测结果
图5 KELM检测结果
图6 ELM检测结果
为提高海量网络入侵数据检测的效率和精度,将云计算和核极限学习机结合,提出一种基于云计算的核极限学习机的网络入侵数据挖掘算法。通过Map函数和Reduce函数的并行设计和计算,实现网络入侵数据的分布式分析和处理。研究结果表明,通过CC-KELM、KELM和ELM进行对比发现,CC-KELM算法能够有效提高网络入侵检测的准确率。