K - M e a n s 聚 类 算 法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于K-means聚类算法的入侵检测系统的设计
基于K-means聚类算法的入侵检测系统的设计
今天给大家讲述的是K-means聚类算法在入侵检测系统中的应用首先,介绍一下
聚类算法
将认识对象进行分类是人类认识世界的一种重要方法,比如有关世界的时间进程的研究,就形成了历史学,有关世界空间地域的研究,则形成了地理学。
又如在生物学中,为了研究生物的演变,需要对生物进行分类,生物学家根据各种生物的特征,将它们归属于不同的界、门、纲、目、科、属、种之中。
事实上,分门别类地对事物进行研究,要远比在一个混杂多变的集合中更清晰、明了和细致,这是因为同一类事物会具有更多的近似特性。
通常,人们可以凭经验和专业知识来实现分类。而聚类分析(cluster analysis)作为一种定量方法,将从数据分析的角度,给出一个更准确、细致的分类工具。
(聚类分析我们说得朴实一点叫做多元统计分析,说得时髦一点叫做数据挖掘算法,因为这个算法可以在一堆数据中获取很有用的信息,这就不就是数据挖掘吗,所以大家平时也不要被那些高大上的名词给吓到了,它背后的核心原理大多数我们都是可以略懂一二的,再
比如说现在AI这么火,如果大家还有印象的话,以前我们在大二上学习概率论的时候,我也和大家分享过自然语言处理的数学原理,就是如何让机器人理解我们人类的自然语言,比如说,苹果手机上的Siri系统,当时还让杨帆同学帮我在黑板上写了三句话,其实就是贝叶斯公式+隐含马尔可夫链。估计大家不记得了,扯得有点远了接下来还是回归我们的正题,今天要讨论的聚类算法。)
K-Means是常用的聚类算法,与其他聚类算法相比,其时间复杂度低,结果稳定,聚类的效果也还不错,
相异度计算
在正式讨论聚类前,我们要先弄清楚一个问题:如何定量计算两个可比较元素间的相异度。用通俗的话说,相异度就是两个东西差别有多大,例如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能我们直观感受到的。但是,计算机没有这种直观感受能力,我们必须对相异度在数学上进行定量定义。
要用数量化的方法对事物进行分类,就必须用数量化的方法描述事物之间的相似程度。一个事物常常需要用多个特征变量来刻画,就比如说我们举一个例证,就有一项比较神奇的技术叫面部识别技术,其实听起来很高大上,它是如何做到的,提取一个人的面部特征,比如说嘴巴的长度,鼻梁的高度,眼睛中心到鼻子的距离,鼻子到嘴巴的距离,这些指标对应得数值可以组成一个向量作为每一个个体的一个标度变量(),或者说叫做每一个人的一个特征向量。
如果对于一群有待分类的样本点需用p 个特征变量值描述,则每
个样本点可以看成是Rp空间中的一个点。因此,很自然地想到可以用距离来度量样本点间的相似程度。这一距离的定义是我们所熟知的,它满足正定性,对称性和三角不等式。在聚类分析中,对于定量变量,最常用的是Minkowski (闵可夫斯基)距离
(这个名字大家应该有所耳闻,提出的闵可夫斯基空间解决了爱因斯坦的狭义相对论中遨游一边太空回来后分不清楚谁是哥哥,谁是弟弟的双生子佯谬问题,当然真正解决是还是爱因斯坦的广义相对论)当q = 1,2或q →+∞时,则分别得到
在 Minkowski 距离中,最常用的是欧氏距离,它的主要优点是当坐标轴进行正交旋转时,欧氏距离是保持不变的。因此,如果对原坐标系进行平移和旋转变换,则变换后样本点间的距离和变换前完全相同。
值得注意的是在采用 Minkowski 距离时,一定要采用相同量纲的变量。如果变量的量纲不同,测量值变异范围相差悬殊时,建议首先进行数据的标准化处理,然后再计算距离。
以距离的长短就来表示两个个体的之间的这个相似程度,那么到目前为止的话,我们就已经实现了目的可以定量的描述现实中两个个体的相似程度。
k均值聚类算法的计算过程:
(1)从D中随机取k个元素,作为k个簇的各自的中心。
(2)分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。
(3)根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。
(4)将D中全部元素按照新的中心重新聚类。
(5)重复第4步,直到聚类结果不再变化。
(6)将结果输出。
算法到此介绍完毕,接下来就看看基于K-means聚类算法入侵检测系统的设计
基于该算法的系统设计
1、研究背景
传统的入侵检测系统( Intrusion Detection System,IDS) 是采取分析和提取入侵模式和攻击特点,建立检测规则库及模式库,所以传统 IDS 在检测效率和智能性上存在明显不足。在网络带宽快速提高,入侵和攻击模式不断变化的新形势下,传统 IDS 的检测方式、检测效率面临巨大挑战,甚至不能即时响应和检测。数据挖掘( DataMining,DM ) 能够从海量数据中根据不同的挖掘算法,挖掘出具有不同用途的知识和信息。因此,可以将数据挖掘技术植入到IDS 中,应用适当的挖掘算法,就可解决前文提出的
IDS 效率和自适应问题。目前,DM + IDS 已成为入侵检测领域的一个重要研究方向.
入侵检测工作过程主要由数据采集、数据分析和响应三个步骤组成。美国互联网工程任务组(IETF)为入侵检测系统制定了标准,并发起制订了系列的建议草案,提出了入侵检测系统框架模型。此模型把
一个入侵检测系统分解为事件产生器、事件分析器、事件数据库和响应单元四个部分。
事件产生器进行网络数据的抓取和预处理,事件分析器进行规则的分析匹配,事件数据库存放规则模式,响应单元产生动作执行操作。根据采用的检测方法,入侵检测技术可分为异常检测和误用检测。
数据挖掘又称数据库中的知识发现( Knowledge Discover inDatabase,KDD),能够从大量的、海量的数据中提取出未知的、并具有用户期望价值的信息。
数据挖掘的过程,根据其工作内容,可分为数据准备、数据挖掘、挖掘结果的解释与评价三个阶段在传统的入侵检测系统中植入数据挖掘技术,数据挖掘技术可分为以下几种类型: 关联规则、序列模式、分类、聚类等,研究探索适当的数据挖掘算法,通过从海量网络数据中,过滤掉正常数据模式,只提取异常入侵模式,智能地构建入侵检测模型,就可以极大地提高传统入侵检测系统的检测效率,并拓展其自适应性,从而降低传统IDS的误检率。
2、IDS-K-means算法流程
分为三个大步骤:
输入:训练数据和半径参数
输出:训练数据的聚类
算法流程
(1)将输入的训练数据集T归一化预处理,减少特定较大数据对聚类结果的影响