大数据环境下使用机器学习算法的入侵检测模型

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云防火墙,500元 1000GB
简介: 大数据环境下使用机器学习算法的入侵检测模型

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址

全文共计5171字,阅读大概需要3分钟

欢迎关注我的个人公众号:不懂开发的程序猿

1、系统架构

处理⼤数据时,机器学习传统技术在数据的学习和分类⽅⾯需要很长时间。为 IDS 使⽤⼤数据技术和机器学习可以解决许多挑战,例如速度和计算时间,并开发准确的 IDS。

本⽂的⽬的是介绍在 IDS 中处理⼤数据的 Spark ⼤数据技术,以减少计算时间并实现有效的分类。为此,提出了⼀种名为 Spark-Chi-SVM 的 IDS 分类⽅法。

⾸先采⽤预处理⽅法将分类数据转换为数值数据,然后对数据集进行标准化,以提高分类效率。其次,使⽤ ChiSqSelector ⽅法对数据集进行降维,以进⼀步提高分类效率并减少后续步骤的计算时间。 第三,SVM ⽤于数据分类。更具体地说,使⽤ SVMWithSGD 来解决优化问题,此外,我们介绍了基于曲线下⾯积(AUROC)、精确召回曲线下⾯积(AUPR)的 Apache Spark ⼤数据平台上 SVM 分类器和逻辑回归分类器的⽐较) 和时间指标。


系统架构:


9397e5495c134bc88c2fcbb7a5bbe155.png


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 ⽣态系统及其主要组件。

a75251f1ab874af8beb44c2936c52892.png


Spark 使⽤图 3 所⽰的主/从架构。驱动程序与一个叫做master的协调器进行通信,这个协调器管理着执行器运行的slave/worker。 Spark 集群有⼀个 master 和任意数量的 slave/worker。

3787395a1389450681a59b5f0b2591ab.png


3、实验步骤

3.1、数据预处理

⼤规模数据集通常包含嘈杂、冗余和不同类型的数据,通常,⼊侵检测算法处理⼀种或多种原始输⼊数据类型,例如仅处理数值数据的 SVM 算法。因此,我们准备数据并将数据集中的分类数据转换为数值数据。


3.2、标准化

在机器学习中,标准化是获得可靠结果的关键技术。某些特征的值可能会从⼩到⼤不同。因此,分析的过程可能会扩⼤规模。在 Spark-Chi-SVM 模型中,我们使⽤标准化通过缩放到 Spark Mllib 中的单位⽅差来处理特征。单位⽅差法采⽤修正后的样本标准差,由下式得出:


9e51af90eb374f42a58b88f98b5c5406.png


在表 3中,我们说明了数据标准化过程的结果,该过程通过缩放到单位⽅差来标准化特征。

c0c35a36a9d0419495e7fc43e34c55cf.png



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 技术中⽤于特征选择。



c3f30d95f0f04a5e8c7008aabf59289a.png

3.4、 模型分类器

⽀持向量机 (SVM) 是 Vapnik引⼊的⼀种监督学习⽅法。它分析⽤于分类和回归的数据。 SVM 通过 N 维超平⾯将数据分类为不同的类别。在⼆元分类中,SVM 使⽤线性超平⾯将数据分为两类,如果存在向量 w 和标量 b,则称其是线性可分的,例如:


30c689bbd33c4f338f93c82d7d030d89.png


其中,w 是权重向量,b 是偏差值

⽀持向量机的⼯作原理是通过最⼤化边距来获得最⼩化的错误分类和最佳性能,其中两个类的向量之间的最⼤边距被称为最⼤边距分类器,如图 4 所⽰。


2a62222296384cc7b39010d00c5fdc7e.png


使⽤以下等式找到最佳分离线性分类的超平⾯:


3fa34d42f5e34ac3895cf387d55f94a7.png


受限于:

669bb6b3e9cb4d3a94f6c773273263f7.png


软边际SVM被用来减少离群值和错误分类误差的影响。该方法在公式4中引入了一个非负的松弛变量。松弛变量是用户定义的常数,用于权衡余量和错误分类误差。


94a5a14b5802483b8afcd91d39b2c8f0.png


其中ξi是松弛变量,C 是⼀个惩罚参数,控制错误分类误差的成本和分类边际之间的权衡,参数 C 控制边际和松弛变量⼤⼩之间的权衡 。

使⽤ SVMWithSGD ⽅法。 SVMWithSGD使⽤正则化参数 = 1.0的L^2正则化进行训练


01f2e73e77814e09b9829f674f434fe4.png


SVM 的高泛化和学习能力使其适⽤于处理高维数据,例如⼤数据和⼊侵检测。但是,在实施 IDS 时需要注意许多挑战,例如以高⼊侵检测率和低误报率实时提供响应。此外,⼤量特征和识别它们之间复杂关系的难度使分类成为⼀项艰巨的任务。 SVM 的计算成本很高。因此,使⽤ Apache Spark 可以减少执行时间,Apache Spark 是⼀个分布式平台,可以在短时间内执行许多任务。


4、结论

本节展⽰了⽤于⼊侵检测的 Spark-Chi-SVM 模型的结果。提出的模型是使⽤ Apache Spark 中的 MLlib 机器学习库在 Scala 编程中实现的。为了评估中,研究⼈员使⽤了 KDD 数据集,曲线下⾯积(AUROC),⾯积在精确召回曲线和时间测量下。曲线下⾯积是衡量分类器的表现。它由以下公式计算:


f3feded226ae45d99390d523afc47742.png


精确召回曲线 (AUPR) 下的 ⾯积“显⽰了不同阈值的精确度和召回率之间的权衡”。它由以下公式计算:


a6fdfc16d4e1422796ab203fcae863a4.png


在表 5中,我们展⽰了使⽤基于 AUROC 和 AUPR 度量的 Chi-selector 技术实现 SVM 分类器⽽不使⽤ Chi-selector 技术进行特征选择和 Logistic 回归分类器的结果。实验结果表明,该模型具有较高的性能,降低了误报率。

f9281a3b8dbd485ca00a290c322dc332.png



表 6显⽰了基于训练和预测时间的结果。


42e4c85b02ef454ab81b1be8d72b75f5.png


图 5显⽰了所提出模型的结果。

a1ce8a7cfb0346888045f6b60088a403.png



根据表 7中 Spark Chi-SVM 模型与其他研究⼈员基于训练和预测时间的⽅法的⽐较,Chi-SVM 是最好的分类器。


ea5bc100d20a484784641e6e907ad009.png


好处:

本文所提出的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.


相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
16天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
12天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
45 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
12天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
54 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
17天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
42 1
|
19天前
|
缓存 算法 大数据
大数据查询优化算法
【10月更文挑战第26天】
38 1
|
24天前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
25天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
11天前
|
机器学习/深度学习 自然语言处理 语音技术
探索机器学习中的深度学习模型:原理与应用
探索机器学习中的深度学习模型:原理与应用
25 0
|
22天前
|
机器学习/深度学习 算法
探索机器学习模型的可解释性
【10月更文挑战第29天】在机器学习领域,一个关键议题是模型的可解释性。本文将通过简单易懂的语言和实例,探讨如何理解和评估机器学习模型的决策过程。我们将从基础概念入手,逐步深入到更复杂的技术手段,旨在为非专业人士提供一扇洞悉机器学习黑箱的窗口。
下一篇
无影云桌面