APP下载

基于信息熵和K均值的船舶网络入侵检测方法

2019-11-14肖鹏博闵绍荣罗威

软件 2019年9期
关键词:信息熵均值聚类

肖鹏博 闵绍荣 罗威

摘  要: 船舶网络是维护船舶正常功能的重要结构,当船舶网络被入侵时,网络流量会呈现异常状态,严重影响船舶功能。而当前的船舶网络入侵检测方法不能兼顾检测速度和准确度,无法满足入侵检测要求。为了克服目前船舶网络入侵检测方法存在的不足,以改善船舶入侵检测方法的性能,提出基于信息熵和K均值算法的船舶网络入侵检测方法,通过信息熵理论找到最优特征子集,然后利用K均值算法实现入侵检测,并与普通K均值算法进行对比测试。结果表明:本文方法可以有效检测出船舶网络入侵状况,并且在保证准确性的同时极大的缩短了检测时间,是一种高效的入侵检测方法。

关键词 船舶网络;入侵检测;信息熵;聚类算法

中图分类号: TP309    文献标识码 A    DOI:10.3969/j.issn.1003-6970.2019.09.008

本文著录格式:肖鹏博,闵绍荣,罗威. 基于信息熵和K均值的船舶网络入侵检测方法[J]. 软件,2019,40(9):36-39

Research on Ship Network Intrusion Detection Based on Information Entropy and K-means Algorithm

XIAO Peng-bo, MIN Shao-rong, LUO Wei

China Ship Development and Design Center, Wuhan 430064)

Abstract: Ship network is an important structure to maintain the normal function of ships. When the ship network  is intruded, the network flow will be abnormal, which will seriously affect the ship function. However, the current methods of ship network intrusion detection can not give consideration to both detection speed and accuracy, and can not meet the requirements of intrusion detection. In order to overcome the current ship the deficiency existing in network intrusion detection methods, to improve the performance of ship's intrusion detection method, based on information entropy and shipping network intrusion detection method of k-means algorithm, through the information entropy theory to find the optimal data subset, then using k-means algorithm to detect network intrusion, and compared with ordinary k-means algorithm. The results show that this method can effectively detect the ship network intrusion, and not only ensure the accuracy but also greatly shorten the detection time, It is an efficient intrusion detection method.

Key words: Ship network; Intrusion detection; Information entropy; Clustering algorithm

0  引言

現代船舶网络是为船舶内部多个功能子系统之间建立连接,并为终端用户提供信息交互、安全监控、资源共享等信息服务的多媒体通信网络。船舶网络的特点主要表现在通信模式繁多、终端节点类型丰富、各类业务QoS需求差异较大[1]。当船舶网络出现入侵异常时,网络流量会出现异常,严重影响网络性能,进而影响船舶正常功能。对入侵异常的检测对于维护船舶网络正常状态十分重要,因此设计性能优异的船舶网络入侵异常检测方法具有十分重要的意义。

船舶网络入侵检测实际上是对船舶网络的流量数据报文进行分类,当前船舶网络入侵检测主要有四大类[2-5]:基于特征库的检测、基于统计的检测、基于信息论的检测和基于数据挖掘技术的检测。基于特征的检测需要预先建立入侵异常数据库,不能检测出未知的异常;基于统计的检测通过历史正常网络数据来检测异常,然而一旦历史数据过期,检测结果会有很大偏差;使用信息论[6-7]为原理的检测方法通过观测网络流量数据的信息熵变化来判断入侵异常,但其不能保证检测精度;基于数据挖掘[8]的检测方法随着机器学习,大数据处理技术的进步也越来越多的被用在了船舶网络入侵检测中,并且达到了较好的效果。

本文提出一种船舶网络入侵检测方法,以信息熵相关理论结合K均值算法[9-10]实现。K均值聚类算法是无需监督的算法,其通过将类似属性数据聚类成簇来进行数据的分类,为了解决船舶网络数据流中特征属性维度过高对聚类检测准确率和及时性的负面影响,提出基于信息熵的特征维度缩减流程,通过缩减特征维度提高K均值算法的效率。

1  基于信息熵的特征筛选

信息熵的概念来源于信息论,用信息熵的概念来表示所含信息量的大小,从而描述系统信息的无序度。数据集的信息熵越大,其包含的信息量就越大。在多维特征数据集中,条件熵表示某一维特征对整体信息不确定性的影响,信息增益表示某一维特征为系统信息带来的信息量的大小。

计算出多维特征数据集中每一维特征的信息增益,比较大小之后可以得到该维特征对数据集的信息重要程度。信息熵的各个概念定义如下:

信息熵值计算公式:

(1)

其中Y是特征数据集合,n为特征中不同数值个数,即Y={},表示某个数值在集合中出现的概率。

条件熵计算公式:

(2)

其中p(y|x)表示在已知X发生的条件下Y的数值概率,条件熵表示在X发生条件下的Y的信息复杂程度。

在细分条件之后,数据集的信息复杂度势必会降低,这个差值表明了该条件对系统的重要程度,即信息增益:

(3)

2  K均值聚类算法

K均值算法是一种非监督算法,无需提前训练数据集,其基本思想是将数据划分进指定数目的簇中,并且使最终迭代结果中的每个样本点到其所在簇的欧式距离最小。其实现步骤如下:

步骤1输入数据集S,聚类中心个数k,随机从数据集中选取k个点作为簇的中心;

步骤2计算其他点到每个中心的欧式距离,把数据点划分到距离最近的中心形成点簇。

(4)

其中:分別表示第ij条数据的第k个维度数值,表示第ij条数据间的欧式距离;

步骤3根据欧式距离公式,计算每个点簇中所有点的均值,,将作为新的点簇中心;

步骤4若新的点簇中心与上次一致,则停止迭代,否则转到步骤2。在实际实验中,设立停止条件避免迭代次数过多:

(5)

其中:是由用户设定的一个较小阈值,是点簇中心组成的矩阵。满足迭代停止条件则结束算法,否则转到步骤2。

K均值算法原理简单,其时间复杂度为,其中n是数据项的个数,k是聚类中心个数,t是结束迭代的总共迭代次数。在算法计算过程中,欧式距离的计算需要计算每一个特征维度的数据,数据源的特征属性越多,算法的计算量越大。本文为了缩减K均值算法的计算量,同时保证算法准确性,结合信息熵理论实现特征的降维筛选,从数据集中选取最优特征子集作为K均值算法的输入数据。

3  K均值++算法

K均值算法中,初始的k个聚类簇中心是随机选取的,若随机选取的聚类中心距离很近,可能导致算法迭代结果局部最优而无法得到全局最优解。对于比较直观的数据集,可以由人工指定初始的k个簇中心点,而对于特征属性多、数据量大的网络数据集来说,人工观测出合适的初始聚类中心是不可能的。因此,可以采用K均值++算法。步骤如下:

步骤1从数据集中随机选取一个数据点作为第一个聚类簇中心;

步骤2计算每一个数据点与当前已选取的聚类簇中心之间的最短欧式距离,用表示,其中x表示第x个数据点。将每个数据点被选为下一个聚类簇中心的概率用公式表示:

(6)

最后,將所有数据点的概率划分成概率区间,随机生成一个0-1之间的随机数,这个随机数属于哪个区间,那么就取该区间序号对应的数据点为下一个聚类簇中心。

步骤3重复步骤2直到选择出k个聚类簇中心;

之后的步骤和经典K均值算法中的第2步到第4步相同。

利用K均值++算法,可以让初始的k个聚类簇中心尽可能的均匀分布,由于初始聚类簇中心分布合理,可以大大减小K均值算法的迭代次数,缩短算法时间,并且能大幅度提高聚类结果的准确性,解决了经典K均值算法出现局部收敛导致结果准确性差的问题。

4  实验与结果

4.1实验环境与数据集

本文的实验过程在Windows操作系统环境下实现,CPU为英特尔酷睿i7-7700HQ,内存为32GB。实验使用python 3编写算法代码。采用1999年数据和知识挖掘比赛数据(KDD Cup99)作为本文的实验数据集,该数据集是公认的网络异常检测实验数据集。其包含约50万条数据记录,每条数据记录由41个特征属性数据组成,数据集组成比例见表1。

4.2数据预处理

KDD99数据集是模拟真实网络环境收集到的数据集,其有数据量大,特征属性多的特点。在对数据集进行处理之前,有必要进行数据预处理工作:

(1)数据集中存在很多攻击类型的子类型,将这些子类型划分进它们的父类中。

(2)数据集中存在非数值特征属性,无法应用欧式距离进行计算,因此需要将这些非数值特征转化成数值特征,使数据数值化从而参与计算。

(3)数据集中存在多维特征,并且每一维特征都采用欧式距离进行距离计算。但是在数据集中每个维度的数值存在巨大的差异,这种差异对距离计算的影响是十分大的,因此有必要对每个维度的数据进行数据归一化的处理。

(7)

其中:X表示某一维属性中要进行归一化的数值,分别代表该维数据的最小和最大值。为了使归一化得到的数据可观性和精确度更高,将结果数据放大十倍处理。

猜你喜欢

信息熵均值聚类
基于信息熵可信度的测试点选择方法研究
基于DBSACN聚类算法的XML文档聚类
基于信息熵的实验教学量化研究
基于高斯混合聚类的阵列干涉SAR三维成像
一种基于信息熵的雷达动态自适应选择跟踪方法
均值不等式失效时的解决方法
均值与方差在生活中的应用
基于信息熵的IITFN多属性决策方法
关于均值有界变差函数的重要不等式
一种层次初始的聚类个数自适应的聚类方法研究