一种基于Spark深度随机森林的网络入侵检测模型

news2024/11/26 12:21:00

一种基于Spark深度随机森林的网络入侵检测模型

    • 学习目标
    • 学习内容
    • 目前存在的不足
    • 为了解决这个问题
    • 特征分片
    • 深度并行随机森林Deep Parallel Random Forest(DPRF)
    • 投票策略
    • Spark 上的并行化
      • 高复用缓存
        • 计算每个RDD的权重
      • 分层替换
      • 模型评估
    • 局限性
    • 参考论文

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计4560字,阅读大概需要3分钟
更多学习内容, 欢迎关注我的个人公众号:不懂开发的程序猿

学习目标

一种基于Spark深度随机森林的网络入侵检测模型

学习内容

(1)提出了一种随机森林的深度级联结构,将每一层并行化以提高准确性和可扩展性,以适应检测任务中的海量数据。可以对各种类型的攻击进行分类。
(2)引入滑动窗口将高维特征分割成小尺寸特征向量进行训练,可以减少每次计算的计算量,保持原始信息的完整性。
(3)与Spark中经典的并行随机森林相比,该方法通过效率排序和分区完整性检查优化了对内存中加载的RDD的替换,可以提高集群任务的执行效率。

目前存在的不足

模型通常具有良好的性能,但它有太多复杂的超参数需要调整。在大多数情况下,似乎很难以较低的复杂性获得良好的性能。

为了解决这个问题

提出的模型在随机森林中引入了滑动窗口和深度结构,以增强决策树的多样性,从而提高集成学习的泛化能力和网络入侵检测的准确性,同时参数也少得多。同时,我们的方法优化了Spark集群上RDD的数据缓存替换,减少了检测任务的执行时间。

在这里插入图片描述

第一阶段使用滑动窗口将原始特征分割成许多小块,然后训练随机森林生成连接的类向量作为表示。
该向量将用于在第二阶段训练多级级联并行随机森林。
最后通过最后一层级联后的投票策略确定原始数据的分类。同时,将该模型部署在Spark环境中,通过效率排序和分区完整性检查,优化RDD的缓存替换策略。

特征分片

模型的第一阶段通过使用滑动窗口将特征分割成许多相同大小的特征向量。每个特征向量的数据维数小于原始特征,减少了随机森林中每次计算的计算量。假设一个长度为n的线性特征向量,一个特征切片的窗口长度为m,每滑动1个单位长度,就会产生n  -  m  + 1m维的特征向量。假设有一个检测任务,包含c个类别,经过特征处理,得到一个长度为线性的特征向量n将生成一个长度为c ( n  −  m  + 1) 的新特征向量。例如,有一个包含40个特征的入侵样本数据,攻击分为DOS(拒绝服务)、R2L(远程到本地)、U2R(用户到root)、PROBE(监视和探测)四种类型的攻击. 并且切片窗口大小设置为 10。那么,总共将有 31 个特征向量,每个特征向量都是 10 维的。

在这里插入图片描述

原始特征将被这部分降维的滑动窗口分割成许多相同大小的特征向量。

之后,将每个特征向量依次放入单层随机森林,然后生成类概率向量。

在这里插入图片描述

左边的矩形代表输入特征向量的一个实例,黄色叶子是每个独立决策树的概率分布。

特征向量的熵将由节点分裂前的基尼指数计算。基尼指数是用于计算以下等式中定义的熵的模型。
G i n i ( t ) = 1 − ∑ k = 1 K [ p ( C k ∣ t ) ] 2 (1) Gini(t)=1-\sum^K_{k=1}[p(C_k|t)]^2 \tag{1} Gini(t)=1k=1K[p(Ckt)]2(1)

其中t是目标分裂节点,表示节点t属于类C_t的概率。p(C_k|t)

类概率来源于最终落在叶子节点上的一组值,然后对森林中所有决策树的预测进行平均,得到输出类向量。之前的 31 个特征向量将转换为 31 个类向量,每个类向量都是 4 维的。最后,如图2所示,所有类向量将连接起来形成一个重新表示的特征向量,作为与原始数据特征对应的增强表示。并且新特征将作为输入在下一阶段训练级联随机森林。

深度并行随机森林Deep Parallel Random Forest(DPRF)

在这里插入图片描述

DPRF 的架构,即层数,是根据计算出的性能增益自动确定的,如果改进低于阈值,则终止训练过程。

并行随机森林(PRF)通过级联堆叠形成深层森林结构。级联结构中的每个新层将表示的特征向量和前一层的类向量连接起来作为输入。级联PRF的每一层都会统计所有决策树对输入样本的预测结果,生成不同类分布的概率,作为类向量。随后,类概率向量将与特征分割形成的变换特征连接起来训练下一层。

投票策略

对于实际的异常值检测任务,可以简化为异常分类任务,通过投票策略识别异常值。级联PRF中最后一层的预测是统计最后一层所有决策树的输出类,然后根据概率分布采用投票策略进行决策的最终结果。多数投票用于可靠性要求高的异常检测任务。如果一个样本获得超过一半的选票,则将其预测为异常值,否则将其拒绝。
H ( x ) = { c j ,   i f   ∑ i = 1 T h i j ( x ) > 0.5 ∑ k = 1 N ∑ i = 1 T h i k ( x ) , r e j e c t ,   o t h e r w i s e (2) H(x)=\begin{cases}c_j,\ if\ \sum^T_{i=1}h^j_i(x)>0.5\sum^N_{k=1}\sum^T_{i=1}h^k_i(x),\tag{2} \\reject,\ otherwise\end{cases} H(x)={cj, if i=1Thij(x)>0.5k=1Ni=1Thik(x),reject, otherwise(2)

H ( x ) = c a r g m a x j Σ i = 1 T h i j ( x ) (3) H(x)=c_{argmax_j\Sigma^T_{i=1}h^j_i(x)} \tag{3} H(x)=cargmaxjΣi=1Thij(x)(3)

其中hi代表决策树i,T代表森林中决策树的数量。N是概率向量的维数。c j是集合 { c 1 , c 2 , c 3 …c N } 中的类标签之一。基本学习器h i将做出属于类别标签集合 { c 1 , c 2 , c 3 …c N } 的预测,以及h i在样本x上的概率分布是一个N维向量,其中是h i在类标签c j上的概率输出。

Spark 上的并行化

高复用缓存

首先,Spark 的缓存机制为每个 worker 分配一个缓存管理器来管理 RDD 并计算缓存大小。RDD 数据大小需要不大于剩余内存的存储空间。否则,将实施更换。

S i = { S i 1 , S i 2 , S i 3 , . . . , S i j } S_i=\{ S_{i1},S_{i2},S_{i3},...,S_{ij}\} Si={Si1,Si2,Si3,...,Sij}

∑ j = 1 n 1 S 1 j + ∑ j = 1 n 2 S 2 j + . . . + ∑ j = 1 n m S m j < S c a c h e (4) \sum^{n_1}_{j=1}S_{1j}+\sum^{n_2}_{j=1}S_{2j}+...+\sum^{n_m}_{j=1}S_{mj}<S_{cache} \tag{4} j=1n1S1j+j=1n2S2j+...+j=1nmSmj<Scache(4)

RDD 分区之间的计算成本是另一个非常重要的因素

计算每个RDD的权重

RDD的执行时间可以用RDD大小占Spark集群环境内存大小的百分比来表示。
RDD的执行效率可以量化为RDD的权重值与执行时间的比值,用ε ( R i )来表示每个RDD的执行效率,定义如下:
ϵ ( R i ) = W ( R i ) T ( R i ) (5) \epsilon(R_i)=\frac{W(R_i)}{T(R_i)} \tag{5} ϵ(Ri)=T(Ri)W(Ri)(5)

分层替换

分层替换是并行优化的第二步。它在替换之前对 RDD 目标进行分类,优先考虑不完整的 RDD。如图5所示,我们设计了 IntegrityCheck 函数来验证 RDD,该函数将检查分区并在标志记录分区状态的集合中标记完整性。如果 RDD 的分区不完整,将被标记为 FALSE 并被替换;否则,它将被标记为 TRUE。然后根据 Map cacheList (rdd i , ε )替换效率较低的 RDD

在这里插入图片描述

模型评估

将 FS-DPRF 与并行随机森林 (PRF)、DSSVM 和 A-DNN 进行比较。

在这里插入图片描述

在这里插入图片描述

FS-DPRF在不同节点规模下的平均执行时间。

当节点数从 1 增加到 25 时,每个数据集的加速比都呈规律性增长,并且随着节点数从 25 增加到 50 时趋于减慢。结果表明该模型具有良好的加速性能在不同体积和维度的数据集中。但是,它并没有像上面的定义那样呈现完美的线性增长,可以理解为随着集群规模的增加,通信开销和任务调度成本会变大

在这里插入图片描述

在这里插入图片描述

局限性

该研究的局限性在于模型会消耗大量内存,因此要获得训练有素的入侵检测模型需要强大的计算设备。虽然本文提出的模型在 Spark 分布式环境下通过 CPU 训练取得了不错的效果,但遗憾的是,目前的结构自然不适用于 GPU。这使得模型暂时无法像深度神经网络一样在 GPU 上得到更好的加速。

参考论文

Zhenpeng Liu, Nan Su, Yiwen Qin, Jiahuan Lu, Xiaofei Li, “A Deep Random Forest Model on Spark for Network Intrusion Detection”, Mobile Information systems, vol. 2020, Article ID 6633252, 16 pages, 2020. https://doi.org/10.1155/2020/6633252
S. V. Siva reddy and S. Saravanan, “Performance Evaluation of Classification Algorithms in the Design of Apache Spark based Intrusion Detection System,” 2020 5th International Conference on Communication and Electronics Systems (ICCES), 2020, pp. 443-447, doi: 10.1109/ICCES48766.2020.9138066.
M. Haggag, M. M. Tantawy and M. M. S. El-Soudani, “Implementing a Deep Learning Model for Intrusion Detection on Apache Spark Platform,” in IEEE Access, vol. 8, pp. 163660-163672, 2020, doi: 10.1109/ACCESS.2020.3019931.

–end–

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ASP.NET Core Web API 学习笔记

目录 一、Demo 1. 创建项目 2. 启动项目 3. 编写 api demo 二、C# .NET WEB 程序结构 一、Demo 1. 创建项目 创建的项目结构如下: Properties 配置文件&#xff0c;存放了一些 .json 文件用于配置 ASP.NET Core 项目 Propertics/launchSettings.json 启动配置文件&…

以岭药业:连花清瘟火爆背后,数字化重塑人力资源管理

近日&#xff0c;随着疫情防控政策“国十条”发布&#xff0c;新冠防疫政策逐步进入后防疫时代&#xff0c;每个人要做自己健康的“第一责任人”。而连花清瘟作为中医药治疗新冠肺炎筛选出的“三药三方”之一&#xff0c;也成为新疫情防控模式下的家庭常备药。连花清瘟自上市以…

怎么将图片内容转换成文字?这两种方法可以轻松实现

如何将图片的内容转换成文字呢&#xff1f;大家在使用图片文件的时候&#xff0c;遇到那种图片中包含一些有用的文字信息时&#xff0c;没有办法直接复制下来使用&#xff0c;只能对照着图片将文字信息给记录下来&#xff0c;这样会很耗费我们的时间。其实是有方法能够直接将图…

Python学习中常见的几个报错,看你踩雷没

前言 嗨嗨 今天给大家统计一下, 在学习Python中遇到的常见报错, 不一定会很全面, 但是应该会持续更新, 有用的话, 记得收藏哦~ 下面我会总结遇到的报错截图, 给出解决办法, 如果有需要补充的报错, 或者你解决不了的报错, 欢迎来文章最下方QQ群里面找我~ 1. 模块未安装 (Mod…

面试中这样介绍自己的项目经验,轻松拿Offer

面试时7分靠能力&#xff0c;3分靠技能&#xff0c;而刚开始时的介绍项目又是技能中的重中之重&#xff0c;所以本文将从“介绍”和“引导”两大层面告诉大家如何准备面试时的项目介绍。 在面试时&#xff0c;经过寒暄后&#xff0c;一般面试官会让介绍项目经验 。常见的问法是…

Go C 编程 第4课 变色魔法(魔法学院的奇幻之旅 有Go C编程绘图)

慧通教育 慧通教育 34.画彩色旗帜 (魔法学院第4课)--2022.12.15 登录 35.画转动的方形 (魔法学院第4课) 登录 36.画wifi信号 (魔法学院第4课) 登录 888.哪个大&#xff1f; (课程6&#xff09; 难度&#xff1a;1 登录 889.余数大小 (课程6) 难度&#xff1a;1 登录 适合…

Java学习—网络编程

网络编程 目的&#xff1a;数据交换、通信 1. 网络通信的要素 通信双方地址&#xff08;IP端口号&#xff09;网络通信协议 Java万物皆对象 2. IP地址 IP地址的类&#xff1a;InetAddress 唯一定位一台网络上的计算机127.0.0.1 本机地址 package com.xiaozhang.lesson01;…

第二证券|钠电池三种技术路线谁更将率先取代锂电池?

锂电网讯&#xff1a;近段时刻&#xff0c;钠离子电池遭到资本商场重视&#xff0c;不少公司公布了在钠电池范畴的最新进展。11月29日&#xff0c;中科海钠(阜阳)全球首条GWh级钠离子电池出产线产品下线。中科海钠总经理李树军透露&#xff0c;阜阳产线计划在下一年扩产至3GWh-…

大数据学习:shell基础(2)

文章目录tail命令选项参数任务一&#xff1a;显示文件最后4行内容任务二&#xff1a;显示文件最后4个字符内容任务三&#xff1a;显示文件修改行sort命令选项参数任务一&#xff1a;对文件按行排序任务二&#xff1a;对文件按第4节排序cut命令参数说明任务一&#xff1a;提取ip…

想要查询数据表中的前几名该怎么实现?看这篇文章吧

一. 需求分析 我们在学习数据库查询时&#xff0c;经常会遇到关于分组和聚合函数的查询&#xff0c;比如查询每门课程的最高分&#xff0c;每位同学的平均分&#xff0c;其实这些都是比较一般的问题。但如果遇到查询每门课程成绩的前几名问题&#xff0c;就会变的很棘手&#…

【深度学习】Tensorflow、MindSpore框架介绍及张量算子操作实战(超详细 附源码)

一、Tensorflow、MindSpore Google公司于2015年开源了深度学习框架TensorFlow&#xff0c;推动了深度学习的发展&#xff0c;得到了广泛应用&#xff0c;用户数量庞大。 华为公司于2020年开源了自己的深度学习框架MindSpore&#xff0c;现处于快速发展中。 TensorFlow2深度学…

直播 | 新一代极速云原生湖仓的技术内核,StarRocks PMC 今天下午为你揭秘!

12 月 14-16 日&#xff0c;第 13 届中国数据库技术大会&#xff08;DTCC 2022&#xff09;将在线上隆重召开。本届大会重点围绕云原生数据库、分布式数据库、时序数据库、图数据技术、实时数仓技术与应用实践、金融业数据库应用实践等内容展开分享和探讨。 12 月 14 日 14:20…

ESP32 与 ESP32-CAM 的关系

ESP32 与 ESP32-CAM 的关系 以下分别介绍 ESP32 与 ESP32-CAM&#xff0c;两者之间的关系可以简单用下表来说明&#xff1a; ESP32ESP32-CAM开发公司乐鑫信息科技安信可科技模块关系ESP32 系列 ( 共有ESP32-S 系列、ESP32-C 系列与ESP32 系列)ESP32 系列中的ESP32-WROVER 模组…

(九)Java网络编程无冕之王-这回把大名鼎鼎的Netty框架一网打尽!

引言 现如今的开发环境中&#xff0c;分布式/微服务架构大行其道&#xff0c;而分布式/微服务的根基在于网络编程&#xff0c;而Netty恰恰是Java网络编程领域的无冕之王。Netty这个框架相信大家定然听说过&#xff0c;其在Java网络编程中的地位&#xff0c;好比JavaEE中的Sprin…

Java中的二维数组

一、介绍 应用场景&#xff1a;比如我们要开发一个五子棋游戏&#xff0c;期盼就是需要用二维数组来表示。即一维数组的每一个元素也是数组。 例子&#xff1a;请用二维数组输出如下图形&#xff1a; 000000 001000 020300 000000 package com.hspedu.array;public class Tw…

Java做UI自动化和app自动化中动态代理@FindBy的工作原理【杭州多测师_王sir】【杭州多测师】...

Java做UI自动化和app自动化中动态代理FindBy的工作原理一、背景简介由于Selenium框架采用PageObject设计模式让测试代码与被测页面对象代码分离&#xff0c;因而提供了不少很方便的注解来达到目的&#xff0c;其中有一个注解就是FindBy。在使用中&#xff0c;只要通过在field中…

ruoyi 在页面上增加一个显示字段(数据库增加字段,页面后端处理)

例如&#xff0c;上图所示&#xff0c; 【用户工资表】现有字段为用户id&#xff0c;用户工资&#xff0c;生效时间&#xff0c;备注信息 这些字段也就是你设计数据库时&#xff0c;数据库工资表字段 &#xff0c;现在&#xff0c;要让显示这个页面&#xff0c;增加一个用户姓…

Flutter for Web 首次首屏优化——JS 分片优化

作者&#xff1a;马坤乐(坤吾) Flutter for Web&#xff08;FFW&#xff09;从 2021 年发布至今&#xff0c;在国内外互联网公司已经得到较多的应用。作为 Flutter 技术在 Web 领域的有力扩充&#xff0c;FFW 可以让熟悉 Flutter 的客户端同学直接上手写 H5&#xff0c;复用 A…

2023年有哪些半入耳蓝牙耳机?半入耳式蓝牙耳机排行榜

工作生活中最常用的真无线蓝牙耳机来说&#xff0c;各式各样、价格悬殊的产品&#xff0c;很多人不知道该如何选择&#xff0c;半入耳式的佩戴舒适度一直都是公认的好&#xff0c;下面小编分享几个性能表现、续航时间都非常优秀的半入耳式蓝牙耳机 TOP1:南卡小音舱蓝牙耳机 音…

Java IO流补充(字符流)

字符 那么在Java中的字符用char来表示&#xff0c;char存储字符。Java使用Unicode来表示字符。Unicode可以表示在所有人类语言中找到的所有字符。Java char是16位类型 字符的范围是 0 ~ 65536 ,没有负字符。字符可以是文字、字母数字、符号等等。 字符流 尽管Java中字节流的…