入侵检测数据预处理 特征工程 面临的问题

news2024/11/28 10:38:41

数据预处理

        对于分类任务来说,由于原始数据可能存在异常、缺失值以及不同特征的取值范围差 异大等问题,对机器学习会产生影响,因此,在进行机器学习模型训练之前,需要先对数据 进行预处理。数据预处理的主要过程包括数据清洗、去量纲、离散化等。

1.数据清洗

        对采集到的数据进行清洗,主要工作包括缺失值处理和异常值处理。

        1)缺失值处理 缺失值是指样本中存在某个或某些特征没有值的情况,对此,可以采取的处理策略有 删除数据、数据填充。

        如果整个数据集中的某个特征值缺失得较多,就可以简单将该特征舍弃。如果包含 缺失值的记录不多,则可以采用一些常用的填充策略。典型的方法有固定值填充、均值填充、中位数填充、上下数据填充、插值法填充和随机数填充等。这些方法的基本出发点是 利用该特征在整个数据集中的统计量来填充,例如中位数就是把非缺失的特征值进行排 序后取中间位置上的数作为缺失记录的特征值。

        2)异常值处理 异常值是指样本中的某个特征取值与其他样本有显著差异,例如某个记录的年龄字 段为200岁,某城市的气温为100℃等。 针对这种情况可以采取的策略有按照缺失值处理、采用其他样本的平均值或最大值 等统计量来代替,也是一些启发式的处理方式。

2.去量纲

        数据集中不同属性的取值范围可能存在很大的差异,例如用米为单位度量的身高和 以千米度量的两个城市之间的距离。这种差异会导致机器学习模型的目标函数在某些维 度上取值范围远远大于其他维度,当进行梯度下降时,收敛慢,训练时间过长。

        去量纲的要求是使不同取值范围的特征值转换到同一规格,一般是[0,1]或[-1,1] 等。常见的去量纲方法有归一化标准化

        通过归一化把原始数据转换为单位向量,主要有最大最小缩放、对数变换、反正切变 换,计算公式分别如下。

最大最小缩放用于线性数据,对数变换和反正切变换用于非线性数据。

        当原始数据服从正态分布时,还可以使用标准化去量纲,首先计算原始数据的均值μ 和标准差S,然后使用式(5-4)对数据进行标准化,即转换成标准正态分布。

3.离散化

        当我们使用某些机器学习模型进行训练时,要求相应的训练数据必须为离散型数据, 例如决策树、朴素贝叶斯等算法都基于离散型数据。

        离散化方法有等宽法等频法基于聚类的方法等。

        等宽法,顾名思义就是将特征值从最小值到最大值按次序分成具有相同宽度的n 个区间。例如[0,59]按3等分被划分为[0,19]、[20,39]、[40,59]。等频法根据数据的频率分布进行排序,然后按照相同频率进行区间划分,因此能保证每个区间的样本数量相同。

        基于聚类的方法也可以将连续属性值转换为离散值。通过聚类算法及聚类有效性指 标(validityindex)进行最佳簇的划分,把同一个簇内的样本按同一个值来处理,即簇的标识或聚类中心。

4.哑变量

         哑变量(dummy variables)也称虚设变量,通常取值为0或1。例如,反映性别的哑变量可以取值为0:男性,1:女性。在机器学习中,经常会遇到类别型特征,如入侵检测数据集中的网络协议(protocol_ type),它的取值为{t' cp','udp',i'cmp'},这种字段不能直接输入给分类器。转换方式就 是增加哑变量,并进行one-hot编码。对于具有三种取值的protocol_type字段,可以拓展 为三个字段,并编码。如表5-2所示,表中的三行分别为tcp、udp和icmp的编码(NSL-KDD数据集)。

特征工程

         样本特征数量的多少显然对机器学习模型性能会产生一定的影响。当特征数量太少 时,样本在较小的特征空间内可能重叠在一起。如图5-1所示,在二维空间线性可分的两 类样本,当缩减到一维时,变得线性不可分,最终导致分类器都失效;反之,当特征数量太 多时,属于同类样本的数据在特征空间中变得稀疏,导致类别边界模糊,分类性能受到影 响。此外,特征数量多,特征之间存在相关性的可能性增加,模型的复杂度也会变大。

        针对网络入侵检测应用,其特征数据通常来自多个不同的软硬件设备、不同的应用系统、不同的日志系统,但是都与攻击行为有一定联系,由此可能导致特征之间存在一定的 相关性。例如,针对某个端口的大量并发连接请求,也必然引起内存使用量的增加。又 如,Web服务器通常使用默认端口80进行监听,不同服务器一般有默认端口,由此服务 器类型和端口就存在一定的相关性。因此,构造合适的特征空间也是很有必要的。 

        特征选择和特征抽取是特征工程的两个重要的方面,目的都是寻找合适的样本表示 空间。它们的最大区别是是否生成新的属性。特征提取通过变换的方法获得了新的特征空间,如 PCA、NMF等。特征选择只是从原始特征集中选择出部分子集,没有生成 新的特征,主要有筛选(filter)式包裹(wrapper)式嵌入(embedded)式。信息增益属 于一种筛选式选择方法。具体的计算方法在很多机器学习方面的书中都有介绍,这里 不再赘述。

入侵检测的棘手问题

        尽管机器学习方法实现了对入侵行为和正常访问的分类识别,但是仍存在一些机器学习难以解决的问题,概述如下。

        (1)误报率高、漏报率高。各种机器学习模型仍存在较高的误报率和漏报率,并且对 于参数敏感。特别是对于未知的入侵行为的感知能力弱,已成为制约入侵检测发展的关 键技术问题。

        (2)自学习能力差。添加IDS检测规则常依赖于手工方式且更新缓慢,限制了IDS 的可用性。

         (3)从检测到决策的困难。入侵检测的最终目标是为安全防御提供支持,而检测技 术中的误报率和漏报率高的问题,使得自动化决策可能影响正常数据的流动,也可能导致 未能及时阻断入侵行为。

         (4)自身易受攻击。IDS本身是存在漏洞的软件程序,它容易成为黑客攻击的目标, 一旦黑客攻击成功,那它所管理的网络安全就不能得到保证。

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

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

相关文章

数据结构之单链表的相关知识点及应用

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构 目录 链表的概念及结构 链表与顺序表的区别与优劣势 链表的分类 单链表的实现 单链表中增加节点 单链表中尾插数据 打印单链…

C语言基础(五)

C语言基础 指针野指针空地址 二级指针子函数实现两数交换总结 指针 指针是一个数据类型,指针是一个保存地址的数据类型 //定义变量 int a; //定义指针 int* p;//定义了一个名叫p的指针 //int与“指针”分别是修饰a和p的数据类型地址:内存单元的标号 指…

智能助手大比拼!5款热门思维导图软件细致评估!

思维导图是一种创造性的方法,集思广益,寻找不同想法之间的联系。如果你做得好,你可以为难题提出新的想法和解决方案,总结一篇文章或演示稿,让你的想法井然有序。在数字时代,纸质思维导图存在不能随意更改、…

我的五星工作神器Apps

大家好呀!👋 今天我要来种草五款让我工作如鱼得水的神奇App,每一款都是我亲自试用,绝对良心推荐哦!赶紧拿出小本本记下来吧!📝 1️⃣【亿可达】——软件连接器 它是一款自动化工具,…

深度学习知识点:卷积神经网络(CNN)

深度学习知识点:卷积神经网络(CNN) 前言卷积神经网络(CNN)卷积神经网络的结构Keras搭建CNN经典网络分类LeNetAlexNetAlexNet 对比LeNet 的优势? VGGVGG使用2个33卷积的优势在哪里?每层卷积是否只…

JS算法题:找到数组中第 k 大的元素

问题描述: 给定一个未排序的整数数组,找到其中第 k 大的元素。注意,你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 举个例子: 如果给定数组是 [3,2,1,5,6,4],k 是 2,那么第 2 大的元素…

MedSAM环境搭建推理测试

引子 之前分享过一篇SAM(感兴趣的,请移步Segment Anything(SAM)环境安装&代码调试_segment anything环境-CSDN博客)环境搭建&推理测试,虽然话说Segment Anything,但是原始模型对于一些…

深入理解神经网络学习率(定义、影响因素、常见调参方法、关键代码实现)

目录 什么是学习率? 有哪些影响因素? 常用调整方法? 博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平…

自动化图像标注是否可靠?人人可尝试的方案

一、背景 随着大模型的崛起,多模态模型如雨后春笋一样快速发展。我们可以借助多模态大模型理解物理世界中的物体,在上篇文章大模型时代,图像描述生成(image caption)怎么走?中提到基于大模型的图像描述生成…

ADB的基本语法及常用命令

学习网址 ADB命令的基本语法如下&#xff1a; adb [-d|-e|-s <serialNumber>] <command> 如果有多个设备/模拟器连接&#xff0c;则需要为命令指定目标设备。 参数及含义如下&#xff1a; 常用命令如下&#xff1a; 1. 启动ADB服务 adb start-server 2. 停止…

上网方法介绍

注册 https://www.cordcloud.biz/user 注册后先充值&#xff0c;充值后还要购买套餐&#xff0c; 充值之后&#xff0c;就可以看到流量了&#xff0c;然后复制订阅地址&#xff0c;到客户端去自动下载 URL拷贝到这个地方&#xff0c;然后点击下载

Vue.js前端开发零基础教学(六)

学习目标 了解什么是路由&#xff0c;能够说出前端后端路由的原理 掌握多种路由的使用方法&#xff0c;能够实现路由的不同功能 掌握Vue Router的安装及基本使用方法 5.1 初始路由 提到路由&#xff08;Route),一般我们会联想到网络中常见的路由器&#xff08;Router),…

清明三天,用Python赚了4万?

每年4月&#xff0c;是Python圈子里接私活的旺季&#xff0c;特别是在节假日这种数据暴增的时间段&#xff0c;爬虫采集、逆向破解类的私活订单会集中爆发&#xff0c;量大价高。几乎所有的圈内人都在趁着旺季接私活。 正好&#xff0c;我昨天就做了一单爬虫逆向私活&#xff…

Python统计分析库之statsmodels使用详解

概要 Python statsmodels是一个强大的统计分析库,提供了丰富的统计模型和数据处理功能,可用于数据分析、预测建模等多个领域。本文将介绍statsmodels库的安装、特性、基本功能、高级功能、实际应用场景等方面。 安装 安装statsmodels库非常简单,可以使用pip命令进行安装:…

SGI_STL空间配置器源码剖析(六)deallocate函数

deallocate函数是内存释放函数。源码及注释如下&#xff1a; /* __p may not be 0 */static void deallocate(void* __p, size_t __n) // __p指向要回收的内存起始地址&#xff0c;__n表示其大小{if (__n > (size_t) _MAX_BYTES)// 大于128字节&#xff0c;普通方式开辟和回…

男生穿什么裤子最百搭?适合男生穿的裤子品牌测评分享

每个伙伴们想必经常都会选择一些裤子&#xff0c;但现在市面上的裤子品牌也实在太多了&#xff0c;好不容易选到了几件好看的裤子&#xff0c;结果质量却很不好。主要就是因为现在有太多商家为了利润而使用一些舒适性、质量差的面料&#xff0c;那么今天就给大家分享一些质量上…

RAG 如何消除大模型幻觉

什么是大模型幻觉 假设我们有一个基于大型生成模型&#xff08;如GPT-3&#xff09;的问答系统&#xff0c;该系统用于回答药企内部知识库中的问题。我们向其提出一个问题&#xff1a;“阿司匹林的主要药理作用是什么&#xff1f;” 正确的答案应该是&#xff1a;“阿司匹林主…

无人棋牌室软硬件方案

先决思考 软件这一套确实是做一套下来&#xff0c;可以无限复制卖出&#xff0c;这个雀氏是一本万利的买卖。 现在肯定是有成套的方案&#xff0c;值不值得重做&#xff1f;为什么要重做&#xff1f; 你想达到什么效果&#xff1f;还是需要细聊的。 做这个东西难度不高&…

✌粤嵌—2024/3/18—搜索插入位置

代码实现&#xff1a; 二分法&#xff1a; 方法一&#xff1a;非递归&#xff0c;左闭右闭 int searchInsert(int *nums, int numsSize, int target) {int l 0, r numsSize - 1; // 左闭右闭int mid;while (l < r) {mid (l r) / 2;if (nums[mid] target) {return mid;}…

plc数据采集网关

在信息化与工业化深度融合的今天&#xff0c;数据采集成为了推动制造业智能化转型的重要基石。其中&#xff0c;PLC数据采集网关作为连接PLC设备与上层管理系统的桥梁&#xff0c;扮演着至关重要的角色。 一、PLC数据采集网关&#xff1a;定义与重要性 PLC数据采集网关是一种…