CN110213222B - 基于机器学习的网络入侵检测方法 - Google Patents
基于机器学习的网络入侵检测方法 Download PDFInfo
- Publication number
- CN110213222B CN110213222B CN201910175142.4A CN201910175142A CN110213222B CN 110213222 B CN110213222 B CN 110213222B CN 201910175142 A CN201910175142 A CN 201910175142A CN 110213222 B CN110213222 B CN 110213222B
- Authority
- CN
- China
- Prior art keywords
- sample
- samples
- model
- data set
- classes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于机器学习的网络入侵检测方法,在数据预处理阶段除了使用常规的处理方法比如:符值转换、归一化处理之外,还使用SMOTE算法人工合成少数据量样本以及使用resample简单欠采样方法对多数据量样本进行欠采样,接着使用FCM聚类算法将特征按照隶属度排序,选择隶属度高的特征作为抽取的主要特征;在模型构建阶段,先使用kmeans聚类对每一种大异常分类,分为几类小的异常,通过这些分类细化对XGboost模型的建立,建立了一种4层嵌套式XGboost模型,最后可通过将训练好的最优模型与其他模型将比较,比较入侵检测的检测率和误检率来说明是否具有较好性能。
Description
技术领域
本发明涉及一种基于机器学习的网络入侵检测方法,属于网络入侵检测技术领域。
背景技术
如今网络来到千家万户中,网络与人们的生活变得越来越密切,网络的发展推动了世界的经济和社会发展,人类社会对网络的依赖程度日渐增加。然后信息革命在给人类社会带来具体好处的同时也有一些隐患。黑客入侵事件屡见不鲜,计算机病毒不断繁衍进化,这些信息安全带来的考验给社会安全、国家财产、人民生活保障都带来了巨大的隐患。在网络安全问题日益突出的今天,及时并有效的发现网络入侵行为显得尤为重要。虽然网络入侵检测技术有了一定的发展,但精度和检测速度都不够成熟。因此提出一种基于机器学习的网络入侵检测方法。
目前,随着人工智能领域的发展,国内外也有不少关于使用机器学习方法对网络入侵进行检测的方法,相继有人提出了基于SVM、Kmeans、改进的RBF神经网络等方法应用于网络入侵检测中,并且取得了不错的效果。但由于各种算法不断的出现和对数据处理等环节出现了更多优良的方案以及人们对网络入侵检测的精度和效率有了更高的要求。因此设计出一种满足高精度、高效率的检测算法是实现现代网络入侵检测的关键。
发明内容
本发明的目的是:基于机器学习的网络入侵检测方法,使得预测效率更高,精度更高。
为了达到上述目的,本发明的技术方案是提供了一种基于机器学习的网络入侵检测方法,其特征在于,包括以下步骤:
步骤1、数据预处理
从KDD99数据集中获取用于对模型进行训练的样本数据集,对样本数据集进行符值转换和归一化处理,将特征变为0到1区间内;
步骤2、模型构建
从样本数据集的属性中筛选对正确检测网络异常有影响的属性作为主要特征,样本数据包括N个异常大类及M个正常大类,判断出每一个异常大类中的所有小类,随后依据所有的异常大类建立N层XGboost模型,每个异常大类中的小类和其他异常大类分别作为输出值,这样后一层XGboost模型是在前一层XGboost模型识别的基础之上继续分类的;
步骤3、模型验证
将步骤1获得的样本数据集划分为10个子集,利用10个子集对步骤2建立的N层XGboost模型进行测试,每次都使用贝叶斯最优化的思想寻找最优参数,数据输入模型后通过结果计算检测率和误报率,最终对这十次的结果求平均,以保证最终预测分类测试结果的客观性与可靠性:
步骤4、调节N层XGboost模型中的顺序,依次输入上步的数据,找出参数最适宜、顺序最适合的N层XGboost模型,并计算检测率和误报率;
步骤5、利用KDD99数据集中的corrected作为测试集,对步骤4得到的N层XGboost模型进行测试。
优选地,所述步骤1中,采用过采样SMOTE算法与resample简单欠采样方法从KDD99数据集中获取所述样本数据集,其中:先采用过采样SMOTE算法将KDD99数据集中少数类比例提升至30%,随后采用resample简单欠采样方法将样本总数调整至原数据集数量的一半。
优选地,所过采样SMOTE算法包括以下步骤:
步骤101、对于数量较少的类别的样本,计算它到其余所有样本的距离,求得其k近邻;
步骤102、设置一个采样倍率N,采样倍率根据样本的不平衡比例设置,之后对少量类的样本x,在k近邻中随机采样选择若干样本xn;
步骤103、对于每个选择出的近邻xn,照下式构造新样本xnew:
xnew=x+rand(0,1)*|x-xn|。
优选地,所述步骤2中,使用FCM聚类算法进行降维,抽取样本数据集的主要特征,样本数据集设为S,包括p维特征变量,1维因变量,记为:
S={a1(X1,Y1),a2(X2,Y2),...as(Xs,Ys),}
式中,ai(Xi,Yi)为样本数据集S中的一个样本,Xi={x1,x2,...,xp}为ai(Xi,Yi)的p维特征变量,Yi为ai(Xi,Yi)的目标变量,抽取样本数据集的主要特征包括如下步骤:
步骤2A01、使用FCM对样本数据集S进行聚类,发现有q个簇,于是将因变量Yi分为{L1,L2,...,Lq}共q个场景,并根据每个样本因变量的值,将样本划分到对应的场景中,得到q个不同场景的子样本集,记为Zj:
Zj={ajk(Xjk)|k=1,2,...,Nj,1≤Nj≤s,ajk∈S}
式中,Nj,j=1,2,...,q为样本集Zj中样本的数量,ajk为样本数据集S中属于场景Lj的样本,Xjk为ajk的特征变量集合;
步骤2A02、将特征变量作为聚类对象输入,将初始样本集转化为变量聚类的输入样本集,记为D:
D={x1(a1,a2,...an),x2(a1,a2,...an),...xp(a1,a2,...an)}
式中,(a1,a2,...,an)为特征变量xi的样本数据集合,n为初始样本个数;
步骤2A03、结合步骤2A01及步骤2A02,每个场景子样本集Zj的变量聚类的输入样本集记为Dj:
Dj={xi(aj1,aj2,...,ajn)|i=1,2,...,p,xi∈X,ajk∈Lj}
式中:(aj1,aj2,...,ajn)为场景子样本集Zj中特征变量xi的样本数据集合,X为样本ajk的p个特征变量集合,ajk为场景子样本集Zj中的样本,一共得到q个输入样本集Dj,每个输入样本集Dj均有p个相同的特征变量;
步骤2A04、基于FCM聚类算法将每个输入样本集Dj输入FCM聚类进行变量聚类,得到各场景子样本集Zj中特征变量的隶属度矩阵Uj[uvw],其中uvw为属于第v(v=1,2,...,c)类模糊组的第w(w=1,2,...,Mv)个特征变量的隶属度,Mv为聚到第v类模糊组的特征变量个数;
步骤2A05、隶属度排序:基于Uj[uvw],根据以下规则排序,将同个场景子样本集Zj中同一模糊组内的所有特征变量排序,即v相同,按照隶属度从大到小排序,得到排后的特征变量矩阵,记为Rjv:
Rjv=[xv1,xv2,...,xvi,...,xvMv]
式中:Rjv为第j个场景子样本集Zj中第v个模糊组中特征变量隶属度排序,顺序为xv1最大,往右依次降低,xvi表示这个特征变量在第v个模糊组的隶属度排第i位;
步骤2A06、筛选出具有标签意义的特征变量:根据隶属度排序,设特征变量xz在每个场景子样本集Z1,Z2,...,Zj中均属于模糊组v,其排序数l分别为l1,l2,...,lj,若其中存在一个排序数li(1≤i≤j)远小于或远大于其他所有排序数,即li≥2lelse或li≤lelse/2,则说明该特征变量xz对该子样本集Zj所对应的场景Lj具有标签意义;
步骤2A07、筛选出所有具有标签意义的特征变量作为研究对象,即对原特征变量集合达到了降维的目的。
优选地,样本数据包括4个异常大类,分别是Dos、Probe、U2R、R2L异常,则步骤2中,分别对Dos、Probe、U2R、R2L这4种异常大类使用k-means算法挖掘每个大类中分为具体的几个小类,为构造细致的分层模型做铺垫,包括如下步骤:
步骤2B01、将因变量是Dos、Probe、U2R、R2L的数据分别提取出来分为4个集合样本;
步骤2B02、分别对每个集合使用k-means算法,输出每个子聚类里面的样本数量,再求取两两聚类最近样本点之间欧氏距离;
步骤2B03、将聚类数从1到20各取一次,如果当聚类数为某一个数时,其求得的欧氏距离比其他的欧氏距离都要大,那么最合适的聚类数就是该数;
步骤2B04、根据上步求得的聚类数就是该集合一共有几个不同的类,也就是这个异常里面又包括哪些子异常。
优选地,步骤3中,使用贝叶斯最优化的思想对XGboost算法寻找最优解,不断训练模型,通过评价函数对每个参数组合进行评价,最终得到最优参数组合,包括以下步骤:
步骤301、设t=0,设置参数组合的初始种群p(0);
步骤302、从p(t)中选择候选解S(t);
步骤303、根据下式构建符合要求的贝叶斯网格B:
xt为下一次采样的位置,首先使用已有的观测值构建一个高斯过程的回归模型,并预测出未知输入位置上的均值μt-1(x)和标准差σt-1(x),选择均值和标准差的加和最大的输入位置来作为下一个取样的点,这个加和公式被称为Acquisition Function,为权重参数;
步骤304、根据贝叶斯网格B的联合分布函数产生新的解O(t);
步骤305、用O(t)取代p(t)的部分解,形成新的种群p(t+1);
步骤306、如果不满足终止条件,转向步骤302。
优选地,步骤4中,为了更好地根据不同数据的特点来构造不同的模型,即分别构造4个不同的XGoost模型包括如下步骤:
步骤401、若Probe入侵集合使用kmeans聚类后,得到该集合最佳子集合数为n,分别给不同集合一个标签,再把除了Probe入侵之外的所有样本设为另外一个标签,将样本输入第一个XGboost训练模型,采用上一步的寻参方法;
步骤402、将U2R入侵集合同样按照上面方式处理,对U2R的子集合数和其它类型的样本重新打标签,再训练第二个Xgboost;
步骤403、将Dos和R2L入侵集合也按照步骤401及步骤402的方式处理;
步骤404、将验证数据经过预处理之后输入4层XGboost模型中,计算检测率和误差率;
步骤405、依次改变先后检测不同入侵的顺序;
步骤406、选取检测率和误差率总体最优的一个4层XGboost模型。
优选地,所述步骤5中,分别用原始的XGboost模型、随机森林、SVM与N层XGboost模型进行比较,将测试集经过预处理之后分别输入原始的XGboost模型、随机森林、SVM中,比较检测率和误差率,原始的XGboost模型使用和N层XGboost模型一样的参数,随机森林和SVM设置最优参数。
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明对于数据集做了较为精细的处理,同时提取较为主要的特征,使用了贝叶斯最优化的思想为每个XGboost模型寻找最优解,并根据不同数据的特性及量的多少使用遍历的方式构建出最优的4层XGboost递进模型。并最终通过与其他算法比较来验证预测效率和精度的提高。
附图说明
图1是网络入侵检测方法的工作流程图,表示整个系统方案的实现流程;
图2是本发明数据预处理流程图;
图3是本发明设计的4层优化XGboost模型结构图。
具体实施方式
为使本发明更明显易懂,兹以优选实施例,并配合附图作详细说明如下。
如图1所示,本发明提供了一种基于机器学习的网络入侵检测方法,具体包括以下步骤:
1、数据预处理。
将KDD99数据集的20%作为训练集。随机采样由于原始数据中存在着各种类型的数据,所以要将数据进行符值转换和归一化,将特征变为0到1区间内;由于冗余特征过多,对最终建模有影响,也影响训练速度;因为有些类型的样本数量过少,会给分类识别带来很大困难,所以要对少量样本进行扩增处理。
数据预处理的流程如图2所示。流程如下:
1)将采用数字0-(N-1)来表示这些字符型特征。具体是将数字0-2表示protocol_type中的3种特征值,用数字0到69表示service中的70种特征值,用数字0到10表示flag中的11种特征值。
2)再对变化范围大的特征如src_bytes和dst_bytes进行对象函数转换,以及对变化范围不大的进行线性归一化:
式中,x'表示转换后的新数据,x表示原始数据,xmin表示这一属性的最小值,xmax表示这一属性的最大值。
3)将数据按因变量提取成5个集合后,发现Dos集合样本的数量远大于其他集合,而因变量是U2R的样本远小于其他集合样本,而U2R类的入侵对网络危害很大,所以不能忽视。为了处理不平衡数据带来的问题,本发明使用组合采样技术即过采样SMOTE与resample简单欠采样方法。SMOTE算法的思想是首先分析数量较少的类别的样本,再通过人工合成新样本添加到相应类别中。流程如下:
(a)对于数量较少的类别的样本,计算它到其余所有样本的距离,求得其k近邻。注意本发明实验中对于少数类中只有一个样本的情况,通过微小噪声抖动的方式先构造若干样本加入其中。
(b)设置一个采样倍率N,采样倍率根据样本的不平衡比例设置,之后对少量类的样本x,在k近邻中随机采样选择若干样本xn;
(c)对于每个选择出的近邻xn,照下式构造新样本xnew:
xnew=x+rand(0,1)*|x-xn|
使用SMOTE算法将少数类比例提升至30%,再使用resample简单欠采样方法将样本总数调整至原数据集数量的一半。
4)使用FCM聚类算法进行降维,抽取主要特征。样本数据集设为S,包括p维特征变量,1维因变量,记为:
S={a1(X1,Y1),a2(X2,Y2),...as(Xs,Ys),}
式中,ai(Xi,Yi)为样本数据集S中的一个样本,Xi={x1,x2,...,xp}为ai(Xi,Yi)的p维特征变量,Yi为ai(Xi,Yi)的目标变量,抽取样本数据集的主要特征包括如下步骤:
(a)使用FCM对样本数据集S进行聚类,发现有q个簇,于是将因变量Yi分为{L1,L2,...,Lq}共q个场景,并根据每个样本因变量的值,将样本划分到对应的场景中,得到q个不同场景的子样本集,记为Zj:
Zj={ajk(Xjk)|k=1,2,...,Nj,1≤Nj≤s,ajk∈S}
式中,Nj,j=1,2,...,q为样本集Zj中样本的数量,ajk为样本数据集S中属于场景Lj的样本,Xjk为ajk的特征变量集合;
(b)将特征变量作为聚类对象输入,将初始样本集转化为变量聚类的输入样本集,记为D:
D={x1(a1,a2,...an),x2(a1,a2,...an),...xp(a1,a2,...an)}
式中,(a1,a2,...,an)为特征变量xi的样本数据集合,n为初始样本个数;
(c)结合步骤(a)及步骤(b),每个场景子样本集Zj的变量聚类的输入样本集记为Dj:
Dj={xi(aj1,aj2,...,ajn)|i=1,2,...,p,xi∈X,ajk∈Lj}
式中:(aj1,aj2,...,ajn)为场景子样本集Zj中特征变量xi的样本数据集合,X为样本ajk的p个特征变量集合,ajk为场景子样本集Zj中的样本,一共得到q个输入样本集Dj,每个输入样本集Dj均有p个相同的特征变量;
(d)基于FCM聚类算法将每个输入样本集Dj输入FCM聚类进行变量聚类,得到各场景子样本集Zj中特征变量的隶属度矩阵Uj[uvw],其中uvw为属于第v(v=1,2,...,c)类模糊组的第w(w=1,2,...,Mv)个特征变量的隶属度,Mv为聚到第v类模糊组的特征变量个数;
(e)隶属度排序:基于Uj[uvw],根据以下规则排序,将同个场景子样本集Zj中同一模糊组内的所有特征变量排序,即v相同,按照隶属度从大到小排序,得到排后的特征变量矩阵,记为Rjv:
式中:Rjv为第j个场景子样本集Zj中第v个模糊组中特征变量隶属度排序,顺序为xv1最大,往右依次降低,xvi表示这个特征变量在第v个模糊组的隶属度排第i位;
(f)筛选出具有标签意义的特征变量:根据隶属度排序,设特征变量xz在每个场景子样本集Z1,Z2,...,Zj中均属于模糊组v,其排序数l分别为l1,l2,...,lj,若其中存在一个排序数li(1≤i≤j)远小于或远大于其他所有排序数,即li≥2lelse或li≤lelse/2,则说明该特征变量xz对该子样本集Zj所对应的场景Lj具有标签意义;
(g)筛选出所有具有标签意义的特征变量作为研究对象,即对原特征变量集合达到了降维的目的。
2、模型构建。
因为原始数据中有41个属性,其中一些属性对正确检测网络异常没什么作用,所以要先筛选主要特征。原始数据中一共有5大类,其中一类是正常,其余四大类分别是Dos、Probe、U2R、R2L异常,而每种异常又包含某几个小类,为了达到更好这里先判断出每一大类异常中具体有哪几个小类,然后再依据这4大类建立4个XGboost模型,每个小类和其它类分别作为输出值,这样后一个模型是在前一个模型识别的基础之上继续分类的,结构模型如图3。
使用贝叶斯最优化的思想对XGboost算法寻找最优解,不断训练模型,通过评价函数对每个参数组合进行评价,最终得到最优参数组合。流程如下:
(1)设t=0,设置参数组合的初始种群p(0);
(2)从p(t)中选择候选解S(t);
(3)根据下式构建符合要求的贝叶斯网格B:
xt为下一次采样的位置,首先使用已有的观测值构建一个高斯过程的回归模型,并预测出未知输入位置上的均值μt-1(x)和标准差σt-1(x),选择均值和标准差的加和最大的输入位置来作为下一个取样的点,这个加和公式被称为Acquisition Function,为权重参数;
(4)根据贝叶斯网格B的联合分布函数产生新的解O(t);
(5)用O(t)取代p(t)的部分解,形成新的种群p(t+1);
(6)如果不满足终止条件,转向步骤302。
分别对Dos、Probe、U2R、R2L这4种异常使用k-means算法,挖掘每个大类中分为具体的几个小类,为构造细致的分层模型做铺垫。通过如下流程:
(1)将因变量是Dos、Probe、U2R、R2L的数据分别提取出来分为4个集合样本;
(2)分别对每个集合使用k-means算法,输出每个子聚类里面的样本数量,再求取两两聚类最近样本点之间欧氏距离;
(3)将聚类数从1到20各取一次,如果当聚类数为某一个数时,其求得的欧氏距离比其他的欧氏距离都要大,那么最合适的聚类数就是该数;
(4)根据上步求得的聚类数就是该集合一共有几个不同的类,也就是这个异常里面又包括哪些子异常。
3、模型验证。
为了更好的根据不同数据的特点来构造不同的模型,即分别构造4个不同的XGoost模型,如图3。将上述经过处理的数据集进行十折交叉验证,即将所用数据集划分为10个测试子集,每次都使用贝叶斯最优化的思想寻找最优参数,数据输入模型后通过结果计算检测率和误报率,最终对这十次的结果求平均,以保证最终预测分类测试结果的客观性与可靠性:
4、模型调优。
根据数据特点的不同试图更改XGboost的顺序,流程如下:
(1)若Probe入侵集合使用kmeans聚类后,得到该集合最佳子集合数为n,分别给不同集合一个标签,再把除了Probe入侵之外的所有样本设为另外一个标签,将样本输入第一个XGboost训练模型,采用上一步的寻参方法。
(2)将U2R入侵集合同样按照上面方式处理,这里会对U2R的子集合数和其它类型的样本重新打标签,再训练第二个XGboost。
(3)将Dos和R2L入侵集合也按照上述方式处理。
(4)将验证数据经过预处理之后输入4层XGboost模型中,计算检测率和误差率。
(5)依次改变先后检测不同入侵的顺序,比如第一次先使用U2R入侵集合训练XGboost模型,之后再训练Probe入侵集合的样本。
(6)选取检测率和误差率总体最优的一个4层XGboost模型。
5、模型测试及诊断。
将KDD99数据集中的corrected作为测试集。测试集共311029条数据。将数据按步骤1进行数据预处理,然后输入到4层优化XGboost模型中,计算检测率和误报率。将模型与随机森林、SVM,原始XGboost等做比较,即分别将测试集样本进行预处理之后输入到上述模型中,比较这4个模型的检测率、误检率,评判模型有效性与优良性。
以上所述,仅为本发明的一个参考实施例,并非对本发明任何形式上和实质上的限制,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还将可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。凡熟悉本专业的技术人员,在不脱离本发明的精神的范围的情况下,当可利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对上述实施例所作的任何等
同变化的更动、修饰与演变,均仍属于本发明的技术方案的范围内。
Claims (6)
1.一种基于机器学习的网络入侵检测方法,其特征在于,包括以下步骤:
步骤1、数据预处理
从KDD99数据集中获取用于对模型进行训练的样本数据集,对样本数据集进行符值转换和归一化处理,将特征变为0到1区间内;
步骤2、模型构建
从样本数据集的属性中筛选对正确检测网络异常有影响的属性作为主要特征,样本数据包括N个异常大类及M个正常大类,判断出每一个异常大类中的所有小类,随后依据所有的异常大类建立N层XGboost模型,每个异常大类中的小类和其他异常大类分别作为输出值,这样后一层XGboost模型是在前一层XGboost模型识别的基础之上继续分类的;
使用FCM聚类算法进行降维,抽取样本数据集的主要特征,样本数据集设为S,包括p维特征变量,1维因变量,记为:
S={a1(X1,Y1),a2(X2,Y2),...as(Xs,Ys)}
式中,ai(Xi,Yi)为样本数据集S中的一个样本,Xi={x1,x2,...,xp}为ai(Xi,Yi)的p维特征变量,Yi为ai(Xi,Yi)的目标变量,抽取样本数据集的主要特征包括如下步骤:
步骤2A01、使用FCM对样本数据集S进行聚类,发现有q个簇,于是将因变量Yi分为{L1,L2,...,Lq}共q个场景,并根据每个样本因变量的值,将样本划分到对应的场景中,得到q个不同场景的子样本集,记为Zj:
Zj={ajk(Xjk)|k=1,2,...,Nj,1≤Nj≤s,ajk∈S}
式中,Nj,j=1,2,...,q为样本集Zj中样本的数量,ajk为样本数据集S中属于场景Lj的样本,Xjk为ajk的特征变量集合;
步骤2A02、将特征变量作为聚类对象输入,将初始样本集转化为变量聚类的输入样本集,记为D:
D={x1(a1,a2,...an),x2(a1,a2,...an),...xp(a1,a2,...an)}
式中,(a1,a2,...,an)为特征变量xi的样本数据集合,n为初始样本个数;
步骤2A03、结合步骤2A01及步骤2A02,每个场景子样本集Zj的变量聚类的输入样本集记为Dj:
Dj={xi(aj1,aj2,...,ajn)|i=1,2,...,p,xi∈X,ajk∈Lj}
式中:(aj1,aj2,...,ajn)为场景子样本集Zj中特征变量xi的样本数据集合,X为样本ajk的p个特征变量集合,ajk为场景子样本集Zj中的样本,一共得到q个输入样本集Dj,每个输入样本集Dj均有p个相同的特征变量;
步骤2A04、基于FCM聚类算法将每个输入样本集Dj输入FCM聚类进行变量聚类,得到各场景子样本集Zj中特征变量的隶属度矩阵Uj[uvw],其中uvw为属于第v(v=1,2,...,c)类模糊组的第w(w=1,2,...,Mv)个特征变量的隶属度,Mv为聚到第v类模糊组的特征变量个数;
步骤2A05、隶属度排序:基于Uj[uvw],根据以下规则排序,将同个场景子样本集Zj中同一模糊组内的所有特征变量排序,即v相同,按照隶属度从大到小排序,得到排后的特征变量矩阵,记为Rjv:
Rjv=[xv1,xv2,...,xvi,...,xvMv]
式中:Rjv为第j个场景子样本集Zj中第v个模糊组中特征变量隶属度排序,顺序为xv1最大,往右依次降低,xvi表示这个特征变量在第v个模糊组的隶属度排第i位;
步骤2A06、筛选出具有标签意义的特征变量:根据隶属度排序,设特征变量xz在每个场景子样本集Z1,Z2,...,Zj中均属于模糊组v,其排序数l分别为l1,l2,...,lj,若其中存在一个排序数li(1≤i≤j)远小于或远大于其他所有排序数,即li≥2lelse或li≤lelse/2,则说明该特征变量xz对该子样本集Zj所对应的场景Lj具有标签意义;
步骤2A07、筛选出所有具有标签意义的特征变量作为研究对象,即对原特征变量集合达到了降维的目的;
步骤3、模型验证
将步骤1获得的样本数据集划分为10个子集,利用10个子集对步骤2建立的N层XGboost模型进行测试,每次都使用贝叶斯最优化的思想寻找最优参数,数据输入模型后通过结果计算检测率和误报率,最终对这十次的结果求平均,以保证最终预测分类测试结果的客观性与可靠性:
步骤4、调节N层XGboost模型中的顺序,依次输入上步的数据,找出参数最适宜、顺序最适合的N层XGboost模型,并计算检测率和误报率;
为了更好地根据不同数据的特点来构造不同的模型,即分别构造4个不同的XGoost模型包括如下步骤:
步骤401、若Probe入侵集合使用kmeans聚类后,得到该集合最佳子集合数为n,分别给不同集合一个标签,再把除了Probe入侵之外的所有样本设为另外一个标签,将样本输入第一个XGboost训练模型,采用上一步的寻参方法;
步骤402、将U2R入侵集合同样按照上面方式处理,对U2R的子集合数和其它类型的样本重新打标签,再训练第二个Xgboost;
步骤403、将Dos和R2L入侵集合也按照步骤401及步骤402的方式处理;
步骤404、将验证数据经过预处理之后输入4层XGboost模型中,计算检测率和误差率;
步骤405、依次改变先后检测不同入侵的顺序;
步骤406、选取检测率和误差率总体最优的一个4层XGboost模型;
步骤5、利用KDD99数据集中的corrected作为测试集,对步骤4得到的N层XGboost模型进行测试。
2.根据权利要求1所述的基于机器学习的网络入侵检测方法,其特征在于,所述步骤1中,采用过采样SMOTE算法与resample简单欠采样方法从KDD99数据集中获取所述样本数据集,其中:先采用过采样SMOTE算法将KDD99数据集中少数类比例提升至30%,随后采用resample简单欠采样方法将样本总数调整至原数据集数量的一半。
3.根据权利要求2所述的基于机器学习的网络入侵检测方法,其特征在于,所述过采样SMOTE算法包括以下步骤:
步骤101、对于数量较少的类别的样本,计算它到其余所有样本的距离,求得其k近邻;
步骤102、设置一个采样倍率N,采样倍率根据样本的不平衡比例设置,之后对少量类的样本x,在k近邻中随机采样选择若干样本xn;
步骤103、对于每个选择出的近邻xn,照下式构造新样本xnew:
xnew=x+rand(0,1)*|x-xn|。
4.根据权利要求1所述的基于机器学习的网络入侵检测方法,其特征在于,样本数据包括4个异常大类,分别是Dos、Probe、U2R、R2L异常,则步骤2中,分别对Dos、Probe、U2R、R2L这4种异常大类使用k-means算法挖掘每个大类中分为具体的几个小类,为构造细致的分层模型做铺垫,包括如下步骤:
步骤2B01、将因变量是Dos、Probe、U2R、R2L的数据分别提取出来分为4个集合样本;
步骤2B02、分别对每个集合使用k-means算法,输出每个子聚类里面的样本数量,再求取两两聚类最近样本点之间欧氏距离;
步骤2B03、将聚类数从1到20各取一次,如果当聚类数为某一个数时,其求得的欧氏距离比其他的欧氏距离都要大,那么最合适的聚类数就是该数;
步骤2B04、根据上步求得的聚类数就是该集合一共有几个不同的类,也就是这个异常里面又包括哪些子异常。
5.根据权利要求1所述的基于机器学习的网络入侵检测方法,其特征在于,步骤3中,使用贝叶斯最优化的思想对XGboost算法寻找最优解,不断训练模型,通过评价函数对每个参数组合进行评价,最终得到最优参数组合,包括以下步骤:
步骤301、设t=0,设置参数组合的初始种群p(0);
步骤302、从p(t)中选择候选解S(t);
步骤303、根据下式构建符合要求的贝叶斯网格B:
xt为下一次采样的位置,首先使用已有的观测值构建一个高斯过程的回归模型,并预测出未知输入位置上的均值μt-1(x)和标准差σt-1(x),选择均值和标准差的加和最大的输入位置来作为下一个取样的点,这个加和公式被称为Acquisition Function,为权重参数;
步骤304、根据贝叶斯网格B的联合分布函数产生新的解O(t);
步骤305、用O(t)取代p(t)的部分解,形成新的种群p(t+1);
步骤306、如果不满足终止条件,转向步骤302。
6.根据权利要求1所述的基于机器学习的网络入侵检测方法,其特征在于,所述步骤5中,分别用原始的XGboost模型、随机森林、SVM与N层XGboost模型进行比较,将测试集经过预处理之后分别输入原始的XGboost模型、随机森林、SVM中,比较检测率和误差率,原始的XGboost模型使用和N层XGboost模型一样的参数,随机森林和SVM设置最优参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910175142.4A CN110213222B (zh) | 2019-03-08 | 2019-03-08 | 基于机器学习的网络入侵检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910175142.4A CN110213222B (zh) | 2019-03-08 | 2019-03-08 | 基于机器学习的网络入侵检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213222A CN110213222A (zh) | 2019-09-06 |
CN110213222B true CN110213222B (zh) | 2021-12-10 |
Family
ID=67785020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910175142.4A Active CN110213222B (zh) | 2019-03-08 | 2019-03-08 | 基于机器学习的网络入侵检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213222B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111178435B (zh) * | 2019-12-30 | 2022-03-22 | 山东英信计算机技术有限公司 | 一种分类模型训练方法、系统、电子设备及存储介质 |
CN111695639A (zh) * | 2020-06-17 | 2020-09-22 | 浙江经贸职业技术学院 | 一种基于机器学习的电力用户用电异常检测方法 |
CN111756600B (zh) * | 2020-06-24 | 2022-03-01 | 厦门长江电子科技有限公司 | 一种实现多种交换机测试机的多通信系统及方法 |
CN111950585A (zh) * | 2020-06-29 | 2020-11-17 | 广东技术师范大学 | 一种基于XGBoost的地下综合管廊安全状况评估方法 |
CN111885033B (zh) * | 2020-07-14 | 2021-06-29 | 南京聚铭网络科技有限公司 | 基于多源安全检测框架的机器学习场景检测方法及系统 |
CN111967343B (zh) * | 2020-07-27 | 2023-07-28 | 广东工业大学 | 基于简单神经网络和极端梯度提升模型融合的检测方法 |
CN112818344A (zh) * | 2020-08-17 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 一种运用人工智能算法提高病毒查杀率的方法 |
CN111932039A (zh) * | 2020-09-29 | 2020-11-13 | 北京交通大学 | 一种列车到站晚点预测方法、装置、电子设备及存储介质 |
CN112258235A (zh) * | 2020-10-28 | 2021-01-22 | 国家电网有限公司客户服务中心 | 一种电力营销稽核新业务发现方法及系统 |
CN113194094B (zh) * | 2021-04-29 | 2022-07-15 | 哈尔滨工程大学 | 一种基于神经网络的异常流量检测方法 |
CN113746853A (zh) * | 2021-09-08 | 2021-12-03 | 程楠楠 | 一种基于机器学习的网络管理方法及系统 |
CN113689053B (zh) * | 2021-09-09 | 2024-03-29 | 国网安徽省电力有限公司电力科学研究院 | 一种基于随机森林的强对流天气架空线停电预测方法 |
CN116302661B (zh) * | 2023-05-15 | 2023-10-13 | 合肥联宝信息技术有限公司 | 一种异常预测方法、装置、电子设备及存储介质 |
CN116599779B (zh) * | 2023-07-19 | 2023-10-27 | 中国电信股份有限公司江西分公司 | 一种增加网络安全性能的IPv6云转换方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598813A (zh) * | 2014-12-09 | 2015-05-06 | 西安电子科技大学 | 一种基于集成学习和半监督svm的计算机入侵检测方法 |
CN106973057A (zh) * | 2017-03-31 | 2017-07-21 | 浙江大学 | 一种适用于入侵检测的分类方法 |
CN107948172A (zh) * | 2017-11-30 | 2018-04-20 | 恒安嘉新(北京)科技股份公司 | 一种基于人工智能行为分析的车联网入侵攻击检测方法和系统 |
CN109086603A (zh) * | 2018-07-10 | 2018-12-25 | 阜阳职业技术学院 | 一种基于机器学习的入侵检测系统及方法 |
CN109299741A (zh) * | 2018-06-15 | 2019-02-01 | 北京理工大学 | 一种基于多层检测的网络攻击类型识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180060728A1 (en) * | 2016-08-31 | 2018-03-01 | Microsoft Technology Licensing, Llc | Deep Embedding Forest: Forest-based Serving with Deep Embedding Features |
-
2019
- 2019-03-08 CN CN201910175142.4A patent/CN110213222B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598813A (zh) * | 2014-12-09 | 2015-05-06 | 西安电子科技大学 | 一种基于集成学习和半监督svm的计算机入侵检测方法 |
CN106973057A (zh) * | 2017-03-31 | 2017-07-21 | 浙江大学 | 一种适用于入侵检测的分类方法 |
CN107948172A (zh) * | 2017-11-30 | 2018-04-20 | 恒安嘉新(北京)科技股份公司 | 一种基于人工智能行为分析的车联网入侵攻击检测方法和系统 |
CN109299741A (zh) * | 2018-06-15 | 2019-02-01 | 北京理工大学 | 一种基于多层检测的网络攻击类型识别方法 |
CN109086603A (zh) * | 2018-07-10 | 2018-12-25 | 阜阳职业技术学院 | 一种基于机器学习的入侵检测系统及方法 |
Non-Patent Citations (4)
Title |
---|
《Network Intrusion Detection Using Clustering and Gradient Boosting》;Parag Verma;《2018 9th International Conference on Computing, Communication and Networking Technologies (ICCCNT)》;20181018;全文 * |
《XGBoost Classifier for DDoS Attack Detection and Analysis in SDN-Based Cloud》;Zhuo Chen;《2018 IEEE International Conference on Big Data and Smart Computing (BigComp)》;20180528;全文 * |
《基于SMOTE和GBDT的网络入侵检测方法研究》;封化民;《计算机应用研究》;20171230;全文 * |
《基于Xgboost算法的网络入侵检测研究》;张阳;《信息网络安全》;20180930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110213222A (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213222B (zh) | 基于机器学习的网络入侵检测方法 | |
Ahmad et al. | Data preprocessing and feature selection for machine learning intrusion detection systems | |
CN115577275A (zh) | 一种基于lof和孤立森林的时序数据异常监测系统及方法 | |
CN112039903B (zh) | 基于深度自编码神经网络模型的网络安全态势评估方法 | |
CN110377605B (zh) | 一种结构化数据的敏感属性识别与分类分级方法 | |
CN111556016B (zh) | 一种基于自动编码器的网络流量异常行为识别方法 | |
CN113553624A (zh) | 基于改进pate的wgan-gp隐私保护系统和方法 | |
Yao et al. | An abnormal network traffic detection algorithm based on big data analysis | |
CN114897085A (zh) | 一种基于封闭子图链路预测的聚类方法及计算机设备 | |
CN113343123A (zh) | 一种生成对抗多关系图网络的训练方法和检测方法 | |
Yang et al. | Voting-based ensemble model for network anomaly detection | |
CN117278314A (zh) | 一种DDoS攻击检测方法 | |
CN117349786A (zh) | 基于数据均衡的证据融合变压器故障诊断方法 | |
Uzun et al. | Performance evaluation of machine learning algorithms for detecting abnormal data traffic in computer networks | |
CN113852612B (zh) | 一种基于随机森林的网络入侵检测方法 | |
CN113722230B (zh) | 针对模糊测试工具漏洞挖掘能力的集成化评估方法及装置 | |
CN115842645A (zh) | 基于umap-rf的网络攻击流量检测方法、装置及可读存储介质 | |
CN114519605A (zh) | 广告点击欺诈检测方法、系统、服务器和存储介质 | |
Ni et al. | An unsupervised intrusion detection method combined clustering with chaos simulated annealing | |
CN113609480B (zh) | 基于大规模网络流的多路学习入侵检测方法 | |
Shen et al. | RP-NBSR: A Novel Network Attack Detection Model Based on Machine Learning. | |
Gosai et al. | An intrusion detection using ensemble classifiers | |
Saikam et al. | EESNN: Hybrid Deep Learning Empowered Spatial-Temporal Features for Network Intrusion Detection System | |
CN117437976B (zh) | 基于基因检测的疾病风险筛查方法及系统 | |
CN115314254B (zh) | 基于改进wgan-gp的半监督恶意流量检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |