申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计5171字,阅读大概需要3分钟
欢迎关注我的个人公众号:不懂开发的程序猿
1、系统架构
处理⼤数据时,机器学习传统技术在数据的学习和分类⽅⾯需要很长时间。为 IDS 使⽤⼤数据技术和机器学习可以解决许多挑战,例如速度和计算时间,并开发准确的 IDS。
本⽂的⽬的是介绍在 IDS 中处理⼤数据的 Spark ⼤数据技术,以减少计算时间并实现有效的分类。为此,提出了⼀种名为 Spark-Chi-SVM 的 IDS 分类⽅法。
⾸先采⽤预处理⽅法将分类数据转换为数值数据,然后对数据集进行标准化,以提高分类效率。其次,使⽤ ChiSqSelector ⽅法对数据集进行降维,以进⼀步提高分类效率并减少后续步骤的计算时间。 第三,SVM ⽤于数据分类。更具体地说,使⽤ SVMWithSGD 来解决优化问题,此外,我们介绍了基于曲线下⾯积(AUROC)、精确召回曲线下⾯积(AUPR)的 Apache Spark ⼤数据平台上 SVM 分类器和逻辑回归分类器的⽐较) 和时间指标。
系统架构:
2、核心组件
Spark 具有与 MapReduce 相似的编程模型,但使⽤称为弹性分布式数据集或 RDD的数据共享抽象对其进行了扩展。 Spark 旨在快速迭代算法,⽀持内存存储和有效的故障恢复。
Spark Core 由两个 API 组成,它们是⾮结构化和结构化 API 。⾮结构化 API 是 RDD、累加器和⼴播变量。结构化 API 由 DataFrames、Datasets、Spark SQL 组成,是⼤多数⽤⼾应该使⽤的接⼝。在这项⼯作中,使⽤了数据帧结构和 RDD。 Dataframe ⽤于加载和存储数据集,然后将其转换为 RDD 以供其他进程处理。在某些环境中,Spark 的运行速度⽐ Hadoop 快 100 倍。 Spark 可以在其独⽴集群模式、Hadoop YARN、Apache Mesos 或 EC2 上运行。
在我们的模型中,我们使⽤ Spark 独⽴集群模式。 Apache Spark 的主要组件是 Spark 核⼼、SQL、Streaming、MLlib 和 GraphX。图 2展⽰了 Spark on Hadoop ⽣态系统及其主要组件。
Spark 使⽤图 3 所⽰的主/从架构。驱动程序与一个叫做master的协调器进行通信,这个协调器管理着执行器运行的slave/worker。 Spark 集群有⼀个 master 和任意数量的 slave/worker。
3、实验步骤
3.1、数据预处理
⼤规模数据集通常包含嘈杂、冗余和不同类型的数据,通常,⼊侵检测算法处理⼀种或多种原始输⼊数据类型,例如仅处理数值数据的 SVM 算法。因此,我们准备数据并将数据集中的分类数据转换为数值数据。
3.2、标准化
在机器学习中,标准化是获得可靠结果的关键技术。某些特征的值可能会从⼩到⼤不同。因此,分析的过程可能会扩⼤规模。在 Spark-Chi-SVM 模型中,我们使⽤标准化通过缩放到 Spark Mllib 中的单位⽅差来处理特征。单位⽅差法采⽤修正后的样本标准差,由下式得出:
在表 3中,我们说明了数据标准化过程的结果,该过程通过缩放到单位⽅差来标准化特征。
3.3、特征选择
数据中的冗余和不相关特征导致⽹络流量分类出现问题,从⽽减慢分类过程并阻⽌准确分类,特别是在处理具有高维数的⼤数据时。确定产⽣高精度并消除转移的最佳特征⼦集是⼀个重要问题。 Spark-Chi-SVM 模型结合了 ChiSqSelector 和 SVM,模型中的 ChiSqSelector ⽤于特征选择。它使⽤卡⽅独⽴性检验来决定选择哪些特征。在我们的模型中应⽤于数据集特征的特征选择是 numTopFeatures ⽅法。在实验中,我们在 ChiSqSelector ⽅法中实现了不同的 numTopFeatures 参数值,numTopFeatures 的值 = (40, 33, 30, 20, 19, 17, 15, 12, 11, 10)。 numTopFeatures 选择⼀个固定数量的顶部特征根据卡⽅检验。此步骤数据集的结果具有 17 个特征。
表 4显⽰了 numTopFeatures 不同值的⼀些结果。这些值在 Chi-selector 技术中⽤于特征选择。
3.4、 模型分类器
⽀持向量机 (SVM) 是 Vapnik引⼊的⼀种监督学习⽅法。它分析⽤于分类和回归的数据。 SVM 通过 N 维超平⾯将数据分类为不同的类别。在⼆元分类中,SVM 使⽤线性超平⾯将数据分为两类,如果存在向量 w 和标量 b,则称其是线性可分的,例如:
其中,w 是权重向量,b 是偏差值
⽀持向量机的⼯作原理是通过最⼤化边距来获得最⼩化的错误分类和最佳性能,其中两个类的向量之间的最⼤边距被称为最⼤边距分类器,如图 4 所⽰。
使⽤以下等式找到最佳分离线性分类的超平⾯:
受限于:
软边际SVM被用来减少离群值和错误分类误差的影响。该方法在公式4中引入了一个非负的松弛变量。松弛变量是用户定义的常数,用于权衡余量和错误分类误差。
其中ξi是松弛变量,C 是⼀个惩罚参数,控制错误分类误差的成本和分类边际之间的权衡,参数 C 控制边际和松弛变量⼤⼩之间的权衡 。
使⽤ SVMWithSGD ⽅法。 SVMWithSGD使⽤正则化参数 = 1.0的L^2正则化进行训练
SVM 的高泛化和学习能力使其适⽤于处理高维数据,例如⼤数据和⼊侵检测。但是,在实施 IDS 时需要注意许多挑战,例如以高⼊侵检测率和低误报率实时提供响应。此外,⼤量特征和识别它们之间复杂关系的难度使分类成为⼀项艰巨的任务。 SVM 的计算成本很高。因此,使⽤ Apache Spark 可以减少执行时间,Apache Spark 是⼀个分布式平台,可以在短时间内执行许多任务。
4、结论
本节展⽰了⽤于⼊侵检测的 Spark-Chi-SVM 模型的结果。提出的模型是使⽤ Apache Spark 中的 MLlib 机器学习库在 Scala 编程中实现的。为了评估中,研究⼈员使⽤了 KDD 数据集,曲线下⾯积(AUROC),⾯积在精确召回曲线和时间测量下。曲线下⾯积是衡量分类器的表现。它由以下公式计算:
精确召回曲线 (AUPR) 下的 ⾯积“显⽰了不同阈值的精确度和召回率之间的权衡”。它由以下公式计算:
在表 5中,我们展⽰了使⽤基于 AUROC 和 AUPR 度量的 Chi-selector 技术实现 SVM 分类器⽽不使⽤ Chi-selector 技术进行特征选择和 Logistic 回归分类器的结果。实验结果表明,该模型具有较高的性能,降低了误报率。
表 6显⽰了基于训练和预测时间的结果。
图 5显⽰了所提出模型的结果。
根据表 7中 Spark Chi-SVM 模型与其他研究⼈员基于训练和预测时间的⽅法的⽐较,Chi-SVM 是最好的分类器。
好处:
本文所提出的Spark Chi-SVM 模型在IDS检测精度和准确率上是优于SVM和LR的,训练时间和预测时间上也是用时最少的,该模型具有较高的性能,较低的时延。
【参考文献】
[1] Aldubai A F, Humbe V T, Chowhan S S. Analytical study of intruder detection system in big data environment[M]//Soft Computing: Theories and Applications. Springer, Singapore, 2018: 405-416.
[2] Kabanda G. Performance of Machine Learning and Big Data Analytics paradigms in Cybersecurity and Cloud Computing platforms[J]. Global Journal of Computer Science and Technology, 2021.
[3] Thevar M. The Effect of K-Nearest Neighbors Classifier for Intrusion Detection of Streaming Net-Flows in Apache Spark Environment[M]. University of Maryland, Baltimore County, 2017.
[4] Hossain Z, Sourov M M R, Khan M, et al. Network Intrusion Detection using Machine Learning Approaches[C]//2021 Fifth International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud)(I-SMAC). IEEE, 2021: 438-442.
[5] Kiran S, Rekha G. Real Time NIDS towards Architecture of Data Mining[J]. International Journal of Advanced Research in Computer Engineering & Technology (IJARCET), 2018, 7(3).
[6] Othman, Suad Mohammed, et al. “Intrusion detection model using machine learning algorithm on Big Data environment.” Journal of Big Data 5.1 (2018): 34.