CN116582300A - 基于机器学习的网络流量分类方法及装置 - Google Patents
基于机器学习的网络流量分类方法及装置 Download PDFInfo
- Publication number
- CN116582300A CN116582300A CN202310386039.0A CN202310386039A CN116582300A CN 116582300 A CN116582300 A CN 116582300A CN 202310386039 A CN202310386039 A CN 202310386039A CN 116582300 A CN116582300 A CN 116582300A
- Authority
- CN
- China
- Prior art keywords
- training
- sample
- samples
- training data
- data set
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000010801 machine learning Methods 0.000 title claims abstract description 18
- 238000012549 training Methods 0.000 claims abstract description 116
- 230000002159 abnormal effect Effects 0.000 claims abstract description 37
- 238000005070 sampling Methods 0.000 claims abstract description 23
- 238000013145 classification model Methods 0.000 claims abstract description 18
- 238000003064 k means clustering Methods 0.000 claims abstract description 7
- 238000012360 testing method Methods 0.000 claims description 32
- 238000007637 random forest analysis Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010606 normalization Methods 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 4
- 238000010187 selection method Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000001514 detection method Methods 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 6
- 238000003066 decision tree Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 239000012141 concentrate Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- 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/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于机器学习的网络流量分类方法及装置,所述方法包括:获取包含正常流量和异常流量的训练数据集;基于训练数据集中样本的近邻,计算样本的刚度IH;根据刚度IH,将训练数据集划分为易集和难集;根据类别的样本数量,将难集划分为多数类样本集和少数类样本集;对多数类样本集进行K‑means聚类,并用聚类中心代替每个簇中的样本,以得到样本集SK;对多数类样本集进行SMOTE过采样,以得到样本集SZ;合并易集、少数类样本集、样本集SK和样本集SZ,得到训练数据集SN;基于训练数据集SK对网络流量分类模型进行训练;使用训练后的网络流量分类模型进行待检测流量的预测,得到该待检测流量的分类结果。本发明可以提高网络流量分类模型的准确率。
Description
技术领域
本发明属于机器学习与信息安全结合的交叉技术领域,尤其涉及一种基于机器学习的网络流量分类方法及装置。
背景技术
近年来,随着计算机网络应用在各个领域的迅速普及,网络威胁日益严重。许多机制,如防火墙、杀毒软件、反恶意软件和垃圾邮件过滤器,被用作保护网络安全的工具。然而,如今的网络攻击是系统且长期的,并且网络中的流量数据庞大而复杂,难以分析和检测。网络流分类也是一种有效而强大的网络安全技术,目前有关机器学习的方法被广泛应用于网络流量检测中。
机器学习可以通过学习大量数据中的特征来识别异常流量。它可以分为监督学习和非监督学习。监督学习是指学习有标记的训练数据,发现输入和输出数据之间的关系,用于预测和分类,包括深度神经网络,决策树,支持向量机,K近邻,高斯朴素贝叶斯等。无监督学习是指对无标记训练数据的模式和结构进行学习和总结,用于预测和分类,包括主成分分析,K-means聚类等。
随着近年来网络威胁的增加,对网络安全防护措施的需求形式也越来越多。为了适应动态威胁环境,本研究基于机器学习对网络流量进行检测,从而发现混杂在网络流中恶意流量。
然而,在日常的网络环境中,正常流量的数量要远远多于恶意流量,因此网络流量存在天然的类分布不平衡问题。目前大多数研究中并没有考虑网络流量的类别分布情况,导致最终的模型会偏向多数类样本,忽略掉更加重要的少数恶意样本,使得模型对数量较少的恶意流量缺乏识别能力。另一方面,传统的基于机器学习的网络入侵检测通常使用单一的模型对流量进行分类,这会导致许多问题。首先,单一机器学习模型存在一定的局限性,如容易过拟合或欠拟合,难以处理多分类问题等,导致检测率较低。另外,单一的模型泛化能力较差,无法应用到广泛的网络流量中。因此如果能提前处理数据类别分布,并且结合多个模型对数据进行训练,可以更好地提升入侵检测的准确性。
发明内容
针对现有技术中存在的问题,本发明提出了一种基于机器学习的网络流量分类方法及装置,其通过一种新的平衡数据集的方法(SDsampling)和一种新的分层集成学习框架,可以很好地提高网络流量分类模型的准确率。
为达到目的,本发明采用具体技术方案是:
一种基于机器学习的网络流量分类方法,所述方法包括:
获取包含正常流量和异常流量的训练数据集;
基于训练数据集中样本的近邻,计算该样本的刚度IH,并根据所述刚度IH,将所述训练数据集划分为易集和难集;
根据类别的样本数量,将所述难集划分为多数类样本集和少数类样本集;
对多数类样本集进行K-means聚类,并用聚类中心代替每个簇中的样本,以得到样本集SK;
对多数类样本集进行SMOTE过采样,以得到样本集SZ;
合并易集、少数类样本集、样本集SK和样本集SZ,得到训练数据集SN;
基于训练数据集SN对网络流量分类模型进行训练,并使用训练后的网络流量分类模型进行待检测流量的预测,得到该待检测流量的分类结果。
进一步地,所述获取训练数据集,包括:
获取原始训练数据集;其中,所述原始训练数据集的样本为未预处理的正常流量或未预处理的异常流量;
对原始训练数据集的样本进行预处理,得到训练数据集;其中,所述预处理包括:
删除原始训练数据集中的重复样本和存在缺失特征的样本;
和,
将原始训练数据集中包含的符号数据,利用one-hot编码转换为数字数据;
和,
对原始训练数据集中的样本进行数值数据归一化处理。
进一步地,所述刚度其中,xneighbor表示样本x的近邻,k表示近邻xneighbor的数量,label表示样本的标签。
进一步地,根据所述刚度IH,将所述训练数据集划分为易集和难集,包括:
获取硬度阈值IH′;
将刚度IH大于硬度阈值IH′的样本放入难集;
将小于硬度阈值IH′不大于硬度阈值IH′的样本放入易集。
进一步地,所述网络流量分类模型为XGBoost模型和随机森林模型的双层结构;其中,所述网络流量分类模型的第一层使用XGBoost模型预测网络流量为正常或异常,所述网络流量分类模型的第一层使用随机森林模型预测异常网络流量的攻击类型。
进一步地,所述基于训练数据SN对网络流量分类模型进行训练,包括:
将所述训练数据集SN分割为训练集和测试集;
通过对训练集和测试集的复制,得到第一训练集、第一测试集、第二训练集和第二测试集,并对第一训练集和第一测试集中的样本进行正常或异常的标记,对第二训练集和第二测试集中的样本进行流量类别的标记;
使用XGBoost模型对第一训练集进行训练,得到二分类器;
使用随机森林模型对第二训练集进行训练,得到区分异常流量类型的多分类器;
使用二分类器对第一测试集进行分类,并将第一测试集中的异常样本标记为第一数据集;
从第二测试集中选择第一数据集包含的数据;
使用多分类器对第二测试集进行分类和预测,基于预测结果调整XGBoost模型和随机森林模型的参数,并返回至所述使用XGBoost模型对第一训练集进行训练,得到二分类器。
进一步地,所述使用XGBoost模型对第一训练集进行训练,得到二分类器,包括:
针对第一训练集,基于随机森林的特征选择方法,并通过基尼指数来评估样本的每个特征的权重;其中,所述基尼指数其中,D表示第一训练集,|Ck|表示第一训练集中第K类的样品数量;
基于若干个权重最大的特征对XGBoost模型进行训练,以得到二分类器。
一种基于机器学习的网络流量分类装置,所述装置包括:
数据获取模块,用于获取包含正常流量和异常流量的训练数据集;
数据集生成模块,用于基于训练数据集中样本的近邻,计算该样本的刚度IH,并根据所述刚度IH,将所述训练数据集划分为易集和难集;根据类别的样本数量,将所述难集划分为多数类样本集和少数类样本集;对多数类样本集进行K-means聚类,并用聚类中心代替每个簇中的样本,以得到样本集SK;对多数类样本集进行SMOTE过采样,以得到样本集SZ;合并易集、少数类样本集、样本集SK和样本集SZ,得到训练数据集SN;
训练与预测模块,用于基于训练数据集SN对网络流量分类模型进行训练,并使用训练后的网络流量分类模型进行待检测流量的预测,得到该待检测流量的分类结果。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一所述方法。
一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一所述方法。
与现有技术相比,本发明的积极效果为:
本发明在CICIDS2017的网络流量数据集上进行了实验,使用整体准确率,精准率,召回率,F1值,误报率和漏报率对模型的性能进行评价。实验结果表明,本发明提出的模型在性能方面优于决策树、随机森林、XGBoost、深度神经网络等现有的基线识别方法。
附图说明
图1是本发明的整体流程图。
图2是本发明提出的SDsampling算法的流程图。
图3是本发明提出的分层集成模型框架的流程图。
图4是本发明所使用的CICIDS2017数据集的各类别样本数量的分布情况。
图5是本发明特征选择模块中对特征数量进行参数调优的情况。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术核心作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明的网络流量分类方法,其总体思路是对网络流量数据先进行预处理,再使用SDsampling算法对网络流量进行平衡,然后使用分层集成模型框架来训练模型和检测网络流量数据中的攻击行为。
具体来说,SDsampling方法根据样本的空间分布情况将样本分为易分类集和难分类集两类,保持易分类集的样本不变,针对难分类集的样本,根据每个类别的数量采用合成少数过采样技术(SMOTE)算法和随机欠采样结合的方式来平衡数据集。该方法既克服了传统SMOTE的过度泛化,又结合了欠采样和过采样的思想。将平衡后的样本根据类别输入到分层集成学习框架中,从而对网络流量进行更准确地分类。
本发明的整体流程图如图1所示,所述方法的具体步骤细节描述为:
(1)数据获取模块
本发明使用的数据集为CICIDS2017。CICIDS2017数据集是加拿大网络安全研究所2017年收集的一个广泛使用的数据集。它包含正常流量和异常流量,是在真实的网络环境中模拟生成的,更接近现实情况,更可靠。CICIDS2017数据集提供原始的pcap包,本发明从中提取了统计特征作为实验的原始数据集。这是因为该数据集中传输内容大多是加密的,因此很难从流量中获取语义特征,但是会话中正常流量报文和异常流量报文的统计分布是不同的,如报文的数量和长度等。因此,本文采用统计特征代替原始流量进行分类。需要注意的是,一个正向流/反向流的所有报文都需要在会话结束时收集,然后才能计算出该流的统计特征。
在样本量水平上,CICIDS2017数据集共包含2,830,743条记录,其中正常流量记录2,273,097条,异常流量记录557,646条。由此可见,该数据集极不平衡。在特征大小层面,CICIDS2017数据集是一个高维数据集,包含84个特征列和1个标签列。为了提高模型的泛化能力,我们去掉了“流ID”、“源IP”、“源端口”、“目的IP”和“时间戳”5个特征。因此,最终的数据集只包含79个特征列和1个标签列。
(2)预处理模块
为了去除冗余数据,提升检测效率,减少耗费时间。本发明对网络流量数据进行了数据预处理,包含去除重复和缺失值、符号特征数值化和数值数据归一化三部分。
去除重复和缺失值:删除数据集中的重复样本和存在缺失特征的样本。
符号特征数值化:CICIDS2017数据集中包含符号特征数据,而模型难以直接对符号数据进行处理,因此,在该步骤中使用one-hot编码器将符号数据转换为数字数据。
数值数据归一化:数据归一化可以解决不同特征数据之间维度相差较大的问题,因此被广泛用于数据预处理步骤中。为了保证检测结果的可靠性,需要对两个数据集中的数值数据进行归一化处理,归一化是指将所有特征数据缩小到[0,1]范围内。本发明拟采用Min-Max归一化方法来处理数据,其转换公式为:其中x代表某一种特征的属性值,xmax代表这种特征属性的最大值,xmin代表这种特征属性的最小值,x′代表对x进行归一化处理后的结果。
(3)数据采样模块
在网络流量数据中,通常异常流量数据远远少于正常流量数据,导致决策函数偏向多数样本,低频攻击样本被视为噪声而忽略。因此,为了提升模型的检测性能,需要对数据量较少的数据进行处理。通常有两种处理方法,分别是在算法级别上的解决方案和在数据级别上的解决方案。本文提出了一种在数据级别上的采样方法——SDsampling。具体如图2所示,流程如下:
第一步:对数据集S中每个样本求k个近邻,然后计算每个样本的实例硬度IH。
式中xneighbor——样本x的k近邻中的一个
x——输入样本
第二步:设定一个实例硬度阈值IH′,将实例硬度小于等于该阈值的样本加入易集,记为SE;将实例硬度大于该阈值的样本加入难集,记为SD。
第三步:设定一个阈值upperbound,对于任一类别的样本数量,如果该数值大于等于upperbound,则将该类别加入多数类样本集合,记为Smaxi;如果小于upperbound,则将该类别加入少数类样本集合,记为Smini。
第四步:从难集SD中找到属于Smaxi的样本,称为难集中多数类样本,记为Smaj。对SMaj进行K-means聚类,然后用聚类中心代替每个簇中的样本,最后生成的样本记为SK。
第五步:从难集SD中找到属于Smini的样本,称为难集中的少数类样本,记为SMin。对SMin中存在的少数类样本类别进行SMOTE过采样。过采样阈值设为upperbound,采样后的样本记为SZ。
第六步:将上述得到的处理后的样本按下述公式合并,合并结果记为SN
SN=SE+SK+SMin+SZ 公式(2)
(4)特征选择模块
机器学习算法很难从高维度数据中学习信息,特征选择是解决该问题的一种有效方法,通过提前选择权重较高的特征进行训练,在提高性能的同时还可以节省计算资源。该模块采用基于随机森林的特征选择方法,通过基尼指数来评估每个特征的权重。随机森林由许多CART树组成,最终的分类结果由这些CART树通过投票决定。
基尼指数描述纯度,其值越小,纯度越高。因此,在CART树中,使用基尼指数来评估使用特征分裂节点前后节点纯度的变化,其值越小表示特征越好。对于样本集D,设有K个类,第K类的样品量为|Ck|,D的样品量为|D|,则样本集D的基尼指数表达式为:
(5)分类模块
本模块主要关注流量分类。我们提出了一个结合了XGBoost和随机森林的双层结构。第一层使用XGBoost模型区分数据集中的正常和异常样本,第二层使用随机森林模型区分每个异常样本的攻击类型。
XGBoost是一个增强的树模型,它将许多树模型组合在一起,形成一个非常强大的集成分类器。XGBoost的思想是训练K棵树,最终的预测结果是这K棵树的预测值的加和。它是对梯度增强算法的改进,可以在很短的时间内获得较高的准确率。随机森林是一种集合模型,利用多棵决策树对样本进行分类预测,最后对分类结果进行投票。随机森林的随机性体现在随机数据采样和随机特征选择上,这使得训练速度更快,准确率更高。
结合XGBoost和随机森林的双层结构采用分层方法对流量进行多分类。其工作流程如图3所示,主要包括以下三个步骤:
第一步:数据集构建。将训练集和测试集复制为两个副本,分别记为训练集1,测试集1,训练集2和测试集2,并对标签进行重新编码。将训练集1和测试集1中的所有正常样本标记为0,异常样本标记为1;将训练集2和测试集2中的所有正常样本标记为0,异常样本依次标记为1,2,3,…,m。其中m为异常类别数。
第二步:模型训练。使用XGBoost模型对训练集1进行训练,得到一个二分类器,记为分类器1;使用随机森林模型对训练集2进行训练,得到一个能区分异常流量类型的多类分类器,记为分类器2。
第三步:分类。使用分类器1对测试集1进行分类,分类为正常的样本标记为data0,分类为异常的样本标记为数据1。从测试集2中选择数据1中包含的数据。然后,使用分类器2对测试集2进行分类和预测,将分类为正常的样本记为添加到数据0中,将分类为异常的样本记为数据1,数据2,…,数据m。
(6)结果对比
本发明在CICIDS2017的网络流量数据集上进行了实验,使用整体准确率,精准率,召回率,F1值,误报率和漏报率对模型的性能进行评价。为了验证所提采样方法(SDsampling)的优势,本发明对无采样、SMOTE、随机采样的情况均进行了实验。另一方面,为了验证所提分层集成模型框架的优越性,使用了常用的六种机器学习方法来做对比,分别是:K近邻、决策树、支持向量机、深度神经网络、随机森林、XGBoost。
1)与常见采样方法的性能对比
本实验在CICIDS2017数据集上的性能比较结果如表1,表2,表3和表4所示。表1表示无采样情况下模型在第一层(正常与异常流量二分类)与第二层(异常流量具体类型多分类)的分类性能;表2表示SMOTE采样情况下模型在第一层与第二层的分类性能;表3表示随机采样情况下模型在第一层与第二层的分类性能;表4表示SDsampling采样情况下模型在第一层与第二层的分类性能;对比四个表格可以看出,在区分正常和异常流量的层面,上述四种采样模式的分类性能大致相同。而在区分异常流量具体类型的层面,模型对SDsampling算法采样的数据集中少数样本的分类能力明显提高,每次攻击的识别能力可达到99%以上。其原因是SDsampling算法对少数样本进行过采样,对大多数样本进行聚类。这样,多数样本和少数样本之间的不平衡比率就会降低,这样更有利于模型用少数样本区分异常流量。
表1原始数据集的分类性能
表2SMOTE算法采样数据集的分类性能
表3随机采样数据集的分类性能
表4SDsampling采样数据集的分类性能
2)与机器学习方法的性能对比
本实验在七种模型上的性能比较结果如表5所示。对比发现,在相同采样模式下,双层集成模型结构的6个评价指标均显著高于其他六个模型。两层结构更有效的原因是,第一层可以先检测到正常的流量并将其从数据集中删除,而第二层只检测第一层判断为异常的流量。这样可以增加测试集中少数样本的比例,减少数据集不平衡的影响,提高模型对少数样本的分类能力。
表5七种模型在三种采样模式下的分类性能
综上所述,本发明选择SDsampling方法用于平衡流量数据的类别分布的原因在于它具有以下优点:(1)相比于传统SMOTE算法,SDsampling只对被确定为难集中的少数类别样本进行采样,采样次数远远小于SMOTE算法,从而减小了空间复杂度和时间复杂度。(2)相比于传统SMOTE算法,该算法不仅仅具有对少数类样本进行过采样的能力,还有对多数类样本进行一定程度的欠采样的能力。(3)该算法欠采样时,以样本是否容易被分类为依据,将多数类中不易被分类的样本聚类,这样就会减少这些样本的影响,且在一定程度上还保留了这些样本的信息。(4)该算法过采样时,相比于SMOTE对所有异常类样本无差别采样,该算法将异常类样本进行进一步区分,只对异常类样本中的少数类别进行过采样,并且只对其中存在不易分类样本的类别进行SMOTE过采样,这样一来,使得采样后的数据并不会产生分布边缘化的问题。
此外,由于单一模型提取数据信息能力有限,可能导致训练准确率较低,使用分层集成模型能够综合考虑多个模型的结果,使得最终的分类效果更佳。该分层集成模型框架大致流程如下:(1)数据集构建:将CICIDS2017数据集分割为训练集和测试集,并将训练集和测试集复制为两个副本,并对标签分别进行重新编码。(2)模型训练:使用XGBoost模型对第一个CICIDS2017副本训练集进行训练,得到一个二分类器;使用随机森林模型对第二个CICIDS2017副本训练集进行训练,得到一个能区分异常流量类型的多类分类器。(3)分类:使用训练得到的两个分类器对测试集进行分层分类。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体,但并不能因此理解为对本发明专利范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应当以所附权利要求为准。
Claims (10)
1.一种基于机器学习的网络流量分类方法,其特征在于,所述方法包括:
获取包含正常流量和异常流量的训练数据集;
基于训练数据集中样本的近邻,计算该样本的刚度IH,并根据所述刚度IH,将所述训练数据集划分为易集和难集;
根据类别的样本数量,将所述难集划分为多数类样本集和少数类样本集;
对多数类样本集进行K-means聚类,并用聚类中心代替每个簇中的样本,以得到样本集SK;
对多数类样本集进行SMOTE过采样,以得到样本集SZ;
合并易集、少数类样本集、样本集SK和样本集SZ,得到训练数据集SN;
基于训练数据集SN对网络流量分类模型进行训练,并使用训练后的网络流量分类模型进行待检测流量的预测,得到该待检测流量的分类结果。
2.如权利要求1所述的方法,其特征在于,所述获取训练数据集,包括:
获取原始训练数据集;其中,所述原始训练数据集的样本为未预处理的正常流量或未预处理的异常流量;
对原始训练数据集的样本进行预处理,得到训练数据集;其中,所述预处理包括:
删除原始训练数据集中的重复样本和存在缺失特征的样本;
和,
将原始训练数据集中包含的符号数据,利用one-hot编码转换为数字数据;
和,
对原始训练数据集中的样本进行数值数据归一化处理。
3.如权利要求1所述的方法,其特征在于,所述刚度其中,xneighbor表示样本x的近邻,k表示近邻xneighbor的数量,label表示样本的标签。
4.如权利要求1所述的方法,其特征在于,根据所述刚度IH,将所述训练数据集划分为易集和难集,包括:
获取硬度阈值IH′;
将刚度IH大于硬度阈值IH′的样本放入难集;
将小于硬度阈值IH′不大于硬度阈值IH′的样本放入易集。
5.如权利要求1所述的方法,其特征在于,所述网络流量分类模型为XGBoost模型和随机森林模型的双层结构;其中,所述网络流量分类模型的第一层使用XGBoost模型预测网络流量为正常或异常,所述网络流量分类模型的第一层使用随机森林模型预测异常网络流量的攻击类型。
6.如权利要求1所述的方法,其特征在于,所述基于训练数据SN对网络流量分类模型进行训练,包括:
将所述训练数据集SN分割为训练集和测试集;
通过对训练集和测试集的复制,得到第一训练集、第一测试集、第二训练集和第二测试集,并对第一训练集和第一测试集中的样本进行正常或异常的标记,对第二训练集和第二测试集中的样本进行流量类别的标记;
使用XGBoost模型对第一训练集进行训练,得到二分类器;
使用随机森林模型对第二训练集进行训练,得到区分异常流量类型的多分类器;
使用二分类器对第一测试集进行分类,并将第一测试集中的异常样本标记为第一数据集;
从第二测试集中选择第一数据集包含的数据;
使用多分类器对第二测试集进行分类和预测,基于预测结果调整XGBoost模型和随机森林模型的参数,并返回至所述使用XGBoost模型对第一训练集进行训练,得到二分类器。
7.如权利要求1所述的方法,其特征在于,所述使用XGBoost模型对第一训练集进行训练,得到二分类器,包括:
针对第一训练集,基于随机森林的特征选择方法,并通过基尼指数来评估样本的每个特征的权重;其中,所述基尼指数其中,D表示第一训练集,|Ck|表示第一训练集中第K类的样品数量;
基于若干个权重最大的特征对XGBoost模型进行训练,以得到二分类器。
8.一种基于机器学习的网络流量分类装置,其特征在于,所述装置包括:
数据获取模块,用于获取包含正常流量和异常流量的训练数据集;
数据采样模块,用于基于训练数据集中样本的近邻,计算该样本的刚度IH,并根据所述刚度IH,将所述训练数据集划分为易集和难集;根据类别的样本数量,将所述难集划分为多数类样本集和少数类样本集;对多数类样本集进行K-means聚类,并用聚类中心代替每个簇中的样本,以得到样本集SK;对多数类样本集进行SMOTE过采样,以得到样本集SZ;合并易集、少数类样本集、样本集SK和样本集SZ,得到训练数据集SN;
分类模块,用于基于训练数据集SN对网络流量分类模型进行训练,并使用训练后的网络流量分类模型进行待检测流量的预测,得到该待检测流量的分类结果。
9.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-7中任一所述方法。
10.一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-7中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310386039.0A CN116582300A (zh) | 2023-04-12 | 2023-04-12 | 基于机器学习的网络流量分类方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310386039.0A CN116582300A (zh) | 2023-04-12 | 2023-04-12 | 基于机器学习的网络流量分类方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116582300A true CN116582300A (zh) | 2023-08-11 |
Family
ID=87543666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310386039.0A Pending CN116582300A (zh) | 2023-04-12 | 2023-04-12 | 基于机器学习的网络流量分类方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116582300A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117633665A (zh) * | 2024-01-26 | 2024-03-01 | 深圳市互盟科技股份有限公司 | 一种网络数据监控方法及系统 |
CN117938524A (zh) * | 2024-01-31 | 2024-04-26 | 北京浩瀚深度信息技术股份有限公司 | 一种基于人工智能算法的流量分类方法及存储介质 |
CN118535988A (zh) * | 2024-07-23 | 2024-08-23 | 北京邮电大学 | 基于插值谱的流量分类方法、装置、存储介质及程序产品 |
-
2023
- 2023-04-12 CN CN202310386039.0A patent/CN116582300A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117633665A (zh) * | 2024-01-26 | 2024-03-01 | 深圳市互盟科技股份有限公司 | 一种网络数据监控方法及系统 |
CN117633665B (zh) * | 2024-01-26 | 2024-05-28 | 深圳市互盟科技股份有限公司 | 一种网络数据监控方法及系统 |
CN117938524A (zh) * | 2024-01-31 | 2024-04-26 | 北京浩瀚深度信息技术股份有限公司 | 一种基于人工智能算法的流量分类方法及存储介质 |
CN118535988A (zh) * | 2024-07-23 | 2024-08-23 | 北京邮电大学 | 基于插值谱的流量分类方法、装置、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Atom: Robustifying out-of-distribution detection using outlier mining | |
Farnaaz et al. | Random forest modeling for network intrusion detection system | |
CN110213222B (zh) | 基于机器学习的网络入侵检测方法 | |
CN116582300A (zh) | 基于机器学习的网络流量分类方法及装置 | |
Yang et al. | Intrusion detection based on bidirectional long short-term memory with attention mechanism | |
CN111556016B (zh) | 一种基于自动编码器的网络流量异常行为识别方法 | |
CN111143838B (zh) | 数据库用户异常行为检测方法 | |
CN114553545A (zh) | 一种入侵流量检测识别方法及系统 | |
Chen et al. | DGA-based botnet detection toward imbalanced multiclass learning | |
Mbow et al. | An intrusion detection system for imbalanced dataset based on deep learning | |
CN113254930B (zh) | 一种pe恶意软件检测模型的后门对抗样本生成方法 | |
Zhang et al. | An ensemble method for detecting shilling attacks based on ordered item sequences | |
CN112365060B (zh) | 电网物联感知数据的预处理方法 | |
Wang et al. | EFS‐DNN: An Ensemble Feature Selection‐Based Deep Learning Approach to Network Intrusion Detection System | |
Čeponis et al. | Evaluation of deep learning methods efficiency for malicious and benign system calls classification on the AWSCTD | |
Thanh et al. | An approach to reduce data dimension in building effective network intrusion detection systems | |
Soheily-Khah et al. | Intrusion detection in network systems through hybrid supervised and unsupervised mining process-a detailed case study on the ISCX benchmark dataset | |
CN117034112A (zh) | 一种基于样本增强与对比学习的恶意网络流量分类方法 | |
CN116975863A (zh) | 基于卷积神经网络的恶意代码检测方法 | |
Manghat et al. | Abnormality prediction in high dimensional dataset among semi supervised learning approaches | |
Shou et al. | An intrusion detection method based on attention mechanism to improve CNN-BILSTM model | |
CN115842645A (zh) | 基于umap-rf的网络攻击流量检测方法、装置及可读存储介质 | |
Meng et al. | A survey on machine learning-based detection and classification technology of malware | |
KR20230086976A (ko) | 하이브리드 특징 선택과 데이터 균형을 통한 효율적인 네트워크 탐지 방법 및 시스템 | |
Alhamad et al. | Prediction Models to Effectively Detect Malware Patterns in the IoT Systems |
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 |