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

数据预处理

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

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.mzph.cn/news/821304.shtml

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

相关文章

记录Python的numpy库的详解

1.数组 list[1,2] 转变成np的形式,转换成对像后,就可以使用很多的np自带的方法了 list1[1,2] anp.array(list1) #a--->array([1, 2]) a.dtype #-->dtype(int32) 2. list1[1,2] ,list2[3.1,4,2],anp.array([list1,list2]) list1,list2[1,2],[3.1,4.2] anp.a…

Element-Ui的Form表单:Label文本两端对齐,且必填项的*不影响布局

1. HTML 结构 首先&#xff0c;确保你的 HTML 或 Vue 模板中有一个 el-form 组件&#xff0c;类似下面这样&#xff1a; <div id"app"><el-form :model"form" label-width"100px"><el-form-item label"用户名">&l…

接口测试框架搭建D22

整体架构和分层设计 run.py 运行测试用例&#xff0c;生成测试报告 test_cases/ 登录用例 注册用例 其他业务用例... data/ 测试数据 libs 第三方插件&#xff0c;比如HTMLTestRunnerNew config config.yaml 静态配置数据 config.py 动态配置数据 reports 测试报告…

Mac搭建Java环境【环境搭建】

Mac搭建Java环境【环境搭建】 1 安装Java SDK 官网地址&#xff1a;https://www.oracle.com/java/technologies/downloads/archive/ 下载dmg&#xff0c;双击之后无脑安装即可。 # 进入 JDK 安装目录 cd /Library/Java/JavaVirtualMachines# 查看文件 ls# 输入 cd ~# 打开环…

代码随想录训练营第三十五期|第天15|二叉树part02|层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2

102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode…

DG怎样手动切主从-用普通命令方式(不用dg broker)

这里主库是orcl&#xff0c;从库是orclstd 一 将主库降为从库 1.1查看主库SWITCHOVER_STATUS的状态 #确认主库是否可以做switchover #不能切换的情况 SQL>SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS ------------------ SESSIONS ACTIVE 在这种…

别踩白块web小游戏

整体思路 1.设置一个游戏界面main&#xff08;最外面一圈方框&#xff09; 2.main内部放置一个容器container&#xff0c;容器非常长&#xff0c;且容器底部位于main的顶部 3.将容器内的黑块和白块事先处理好&#xff0c;并将黑块存储在黑块数组中 容器黑白块处理&#xf…

【开发问题记录】Nacos修改服务实例权重时报错

问题记录 一、问题描述1.1 产生原因1.2 产生问题 二、问题解决2.1 docker部署的nacos解决方案2.1.1 进入nacos容器2.1.2 查看当前目录2.1.3 进入data文件夹2.1.4 删除protocol文件2.2 本地部署的nacos 一、问题描述 1.1 产生原因 在运行项目时&#xff0c;在本地启动了一个服务…

vue3项目 使用 element-plus 中 el-collapse 折叠面板

最近接触拉了一个项目&#xff0c;使用到 element-plus 中 el-collapse 折叠面板&#xff0c;发现在使用中利用高官网多多少少的会出现问题。 &#xff08;1.直接默认一个展开值&#xff0c;发现时显时不显 2 . 数据渲染问题&#xff0c;接口请求了&#xff0c;页面数据不更新 …

js 截取指定字符后面/前面的所有字符串...

项目场景 在 JavaScript 中&#xff0c;你可以使用 substring() 或 substr() 方法来截取字符串中指定字符前面或后面的所有字符。 再配合**indexOf()**方法来判断字符所在的位置从而实现截取指定字符的前后字符串 解决方案&#xff1a; //js 截取指定字符后面/前面的所有字…

类激活映射详解

类激活映射&#xff08;CAM, Class Activation Mapping&#xff09;是一种常用于卷积神经网络&#xff08;CNN&#xff09;的技术&#xff0c;用来识别和解释模型在进行图像或时间序列分类任务时&#xff0c;哪些区域对最终分类决定起到了关键作用。下面&#xff0c;我将详细解…

大数据平台搭建2024(一)

一&#xff1a;基础配置 创建虚拟机并查出ip地址进行连接 ip a1.配置node01静态ip地址与主机名 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改或添加如下内容&#xff1a; BOOTPROTO"static" ONBOOTyes #根据虚拟机网卡信息配置 IPADDR192.168.200.141 NET…

360度VR全景汽车漫游展示让爱车者能感受真实的驾驶体验

小米汽车的惊艳亮相&#xff0c;让无数爱车族心潮澎湃。然而&#xff0c;对于因时间和地理限制无法亲临现场的人来说&#xff0c;这份激动或许带有些许遗憾。如今&#xff0c;有了3D虚拟看车软件&#xff0c;这一切不再是问题。 web3D开发公司深圳华锐视点通过运用尖端的web3D开…

IntelliJ IDEA2024 安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 IDEA&#xff08;Integrated Development Environment for Apache&#xff09; 是一款专为 Apache 开发者设计的集成开发环境。该软件提供了丰富的功能和工具&#xff0c;帮助开发者更高效地创建、调试和部署 Apache 项目。 主…

hot100 -- 链表(中)

不要觉得力扣核心代码模式麻烦&#xff0c;它确实比不上ACM模式舒服&#xff0c;可以自己处理输入输出 只是你对 链表 和 return 的理解不到位 &#x1f442; ▶ 屿前世 (163.com) &#x1f442; ▶ see you tomorrow (163.com) 目录 &#x1f382;两数相加 &#x1f6a9;删…

python 绘制六种激活函数(sigmoid、tanh、relu、softmax、relu、elu)

1、效果 2、实现代码&#xff08;带注释&#xff09; import numpy as np # 导入 numpy 库, 用于数学运算 import matplotlib.pyplot as plt # 导入 matplotlib.pyplot, 用于绘图 import matplotlib as mpl # 导入 matplotlib 库, 用于图形配置plt.rcParams[font.sans-se…

mysql奇葩问题union

单独执行第一条&#xff0c;有三条结果&#xff1b; union之后&#xff0c;只有一条结果&#xff1b; union自动的把重复数据合并了&#xff1b;

使用Python生成100到算术题

需求描述&#xff1a;生成100道包含加法、减法、乘法、除法题目的数学题。 import random import pandas as pddef generate_math_questions(num_questions, question_types[addition, subtraction, multiplication, division], difficultyeasy, range_start1, range_end10):&…

Vue基础使用之V-Model绑定单选、复选、动态渲染选项的值

这里要说明一下&#xff0c;在v-model 绑定的值是id还是value是和<option>中的v-bind保持一致的&#xff0c;如第四个&#xff0c;如果是 <option :value"op[1]" 那v-model绑定的就是数组第二项的值2&#xff0c;4&#xff0c;6 如果是 <option :va…

《AI编程类工具之一——CodeArts Snap》

一.简介 CodeArts Snap是一款基于华为云研发的智能开发助手&#xff0c;它覆盖软件开发的全生命周期&#xff0c;提供端到端的智能支持。该工具的核心功能包括代码生成、研发知识问答、单元测试用例生成、代码解释、代码注释、代码翻译、代码调试以及代码检查等八大方面&#…