人工智能安全-2-非平衡数据处理

news2024/11/15 11:05:10

0 提纲

  • 现象与原因
  • 非平衡数据处理方法概览
  • 数据预处理层面
  • 特征层
  • 算法层面

1 现象与原因

非平衡数据分类问题:在网络信息安全问题中,诸如恶意软件检测、SQL注入、不良信息检测等许多问题都可以归结为机器学习分类问题。这类机器学习应用问题中,普遍存在非平衡数据的现象。

产生的原因:

  • 攻击者的理性特征使得攻击样本不会大规模出现;
  • 警惕性高的攻击者,会经常变换攻击方式避免被防御方检测出来。

非平衡数据对各种分类器的影响:

  • KNN
  • Bayes
  • 决策树
  • Logistic回归

当用于非平衡数据分类时,为了最大化整个分类系统的分类精度,必然会使得分类模型偏向于多数类,从而造成少数类的分类准确性低。
在这里插入图片描述

2 非平衡数据处理方法概览

在这里插入图片描述

2.1 数据预处理层面

保证样本分布不变的情况下,改变训练集中每个类的样本数量,降低非平衡程度。

  • 欠采样:减少多数类的样本数量;
  • 过采样:提升少数类的样本数量;
  • 混合采样:对多数类和少数类分别执行欠采样和过采样。

2.2 特征层面

虽然样本数量少,但可能在某些特征子空间中,能有效区分少数类样本和多数类样本。利用特征选择或特征提取来确定子空间的构成。
主要特征选择或特征提取有:

  • 信息增益;
  • 卡方统计;
  • 互信息;
  • 主成分分析;
  • 深度神经网络。

2.3 分类算法层面

虽然采样方法在一些数据集上取得了不错的效果,但欠采样容易剔除重要样本,过采样容易导致过学习,因此,采样方法调整非平衡数据的学习能力十分有限。
传统分类方法通常假设不同类别的样本分布均衡,并且错分代价相等,这种假设并不适合于非平衡数据的情况。因此,在分类模型与算法层面,改变假设前提,设计新的代价函数,提升对少数类样本的识别准确率。
改变代价函数就涉及到代价敏感学习,此外,单类学习和集成学习都可用来解决非平衡分类问题。

3 数据预处理层面

3.1 欠采样

欠抽样方法通过减少多数类样本来提高少数类的分类性能。
常见的欠采样方法有随机欠采样、启发式欠采样等。

  • 随机欠采样通过随机地去掉一些多数类样本来减小多数类的规模,缺点是会丢失多数类的一些重要信息,不能够充分利用已有的信息。
  • 启发式欠采样基本出发点是保留重要样本、有代表性的样本,而这些样本的选择是基于若干启发式规则。经典的欠采样方法是邻域清理(NCL,Neighborhood cleaning rule)和Tome links法,其中NCL包含ENN,典型的有以下若干种。

3.1.1 编辑最近邻规则Edited Nearest Neighbor (ENN)

对于多数类的样本,如果其大部分k近邻样本都跟它自己本身的类别不一样,就将他删除。
也可以从少数类的角度来处理:对于少数类样本,如果其大部分k近邻样本都是少数类,则将其多数类近邻删除。

3.1.2 浓缩最近邻规则Condensed Nearest Neighbor(CNN)

对点进行KNN分类,如果分类错误,则将该点作为少数类样本。在实际运用中,选择比较小的K。
在这里插入图片描述

3.1.3 近似缺失方法Near Miss(NM)

  • NearMiss-1:对于每个多数类样本,计算其与最近的三个少数类样本的平均距离,选择最小距离对应的多数类样本。
  • NearMiss-2:与NearMiss-1相反,计算与最远的三个少数类样本的平均距离,并选择最小距离对应的多数类样本。
  • NearMiss-3:对每个少数类样本,选择与之最接近的若干个多数类样本。

在这里插入图片描述
NearMiss-1针对数据分布的局部特征;
NearMiss-2针对数据分布的全局特征;
NearMiss-3倾向于在比较集中的少数类附近找到更多的多数类样本,而在离群的少数类附近找到更少的多数类样本。

3.1.4 Tomek Links方法

如果有两个不同类别的样本,它们的最近邻都是对方,也就是A的最近邻是B,B的最近邻是A,那么A,B就是Tomek link。
数学语言:两个不同类别的样本点 x i x_i xi x j x_j xj,它们之间的距离表示为 d ( x i , x j ) d(x_i,x_j) d(xi,xj),如果不存在第三个样本点 x l x_l xl使得 d ( x l , x i ) < d ( x i , x j ) d(x_l,x_i)<d(x_i,x_j) d(xl,xi)<d(xi,xj)或者 d ( x l , x j ) < d ( x i , x j ) d(x_l,x_j)<d(x_i,x_j) d(xl,xj)<d(xi,xj)成立,则称 ( x i , x j ) (x_i,x_j) (x

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

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

相关文章

哈希函数如何工作 ?

动动发财的小手&#xff0c;点个赞吧&#xff01; 作为一名程序员&#xff0c;您每天都会使用哈希函数。它们在数据库中用于优化查询&#xff0c;在数据结构中用于使速度更快&#xff0c;在安全性中用于保证数据安全。几乎每次与技术的交互都会以某种方式涉及哈希函数。 哈希函…

生命在于学习——APP渗透学习笔记

一、app渗透篇 1、Android 简介 自从 Android 被谷歌收购&#xff08;2005 年&#xff09;&#xff0c;谷歌已经完成了整个开发&#xff0c;在过去的 9 年里&#xff0c;尤其是在安全方面&#xff0c;有很多变化。 现在&#xff0c;它是世界上最广泛使用的智能手机平台&#…

代码、低代码、无代码开发触手可及的低代码平台源码

基于moleculer微服务架构开发的低代码平台源码&#xff0c;代码、低代码、无代码开发触手可及。 一、低代码平台系统功能 【公司信息】 管理员可通过页面顶部设置菜单或者应用程序中设置应用进入到后台设置页面。 在公司信息页面可进行基础信息修改&#xff0c;启用用户自助…

我在CSDN创作的第五十天

这篇文章主要是写给自己的&#xff0c;是对自己现在阶段的一个认识&#xff0c;6月10号&#xff0c;我在CSDN发布了第一篇文章&#xff0c;距离现在不多不少&#xff0c;刚刚好是50天&#xff0c;期间创作的都是C语言的一些内容&#xff0c;我创作的文章也都是我现在所学的知识…

Django系列之DRF简单使用

基于ModelViewSets的简单使用 models.py from django.db import modelsclass AuthorDetail(models.Model):gender models.CharField(max_length8)birthday models.DateField()telephone models.BigIntegerField()addr models.CharField(max_length64)class Author(models…

手机的python怎么运行文件,python在手机上怎么运行

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机上的python怎么运行程序&#xff0c;手机的python怎么运行文件&#xff0c;今天让我们一起来看看吧&#xff01; 1、python程序怎么在手机上运行 python语言应用很广泛&#xff0c;自己也很喜欢使用它&#xff0c;其…

自学网络安全(黑客)入门

自学网络安全入门可以按照以下步骤进行&#xff1a; 确定学习目标&#xff1a;网络安全是一个广泛的领域&#xff0c;包括密码学、网络防御、漏洞利用等方面。确定自己想要学习的具体方向&#xff0c;可以更好地规划学习路线。 学习基础知识&#xff1a;网络安全的基础知识包括…

Leetcode周赛 | 2023-7-30--我真是个废物

2023-7-30--我真是个废物 题1体会我的代码 题2体会我的代码 题3体会我的代码 题1 体会 根本没想到用双指针。原因是&#xff0c;没想到还要用一个字典去维护子数组中各个数字的出现频次&#xff0c;以及出现频次不小于1 (也就是大于0) 的数字个数。 这里的双重循环也很巧妙&am…

牛客 排座椅(贪心)

上课的时候总有一些同学和前后左右的人交头接耳&#xff0c;这是令小学班主任十分头疼的一件事情。不过&#xff0c;班主任小雪发现了一些有趣的现象&#xff0c;当同学们的座次确定下来之后&#xff0c;只有有限的D对同学上课时会交头接耳。 同学们在教室中坐成了 M 行 N 列&…

【每日一题Day281】LC142链表 Ⅱ| 快慢指针 哈希表

环形链表 Ⅱ【LC142】 给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使…

用JavaScript和HTML实现聊天页面和功能(超详细)

文章目录 &#x1f680;一、介绍&#x1f680;二、开始编码&#x1f50e;2.1 创建一个HTML文件&#x1f50e;2.2 编写样式&#x1f50e;2.3 完善聊天页面&#x1f50e;2.4 编写按钮逻辑&#x1f50e;2.5 测试聊天效果&#x1f50e;2.6 优化对话显示&#x1f50e;2.7 设置一个自…

Cesium地形裁剪

基于纹理映射实现的裁剪&#xff0c;反裁剪也可以。比判断点是否在多边形内裁剪性能要好的多&#xff0c;缺点是在边缘锯齿感会比较明显。 3DTileset 的裁剪也和这样一样用纹理映射实现了&#xff0c;效果一样

单链表的多语言表达:C++、Java、Python、Go、Rust

单链表 是一种链式数据结构&#xff0c;由一个头节点和一些指向下一个节点的指针组成。每个节点包含一个数据元素和指向下一个节点的指针。头节点没有数据&#xff0c;只用于表示链表的开始位置。 单链表的主要操作包括&#xff1a; 添加元素&#xff1a;在链表的头部添加新…

【指针二:穿越编程边界的超能力】

本章重点 5. 函数指针 6. 函数指针数组 7. 指向函数指针数组的指针 8. 回调函数 9. 指针和数组面试题的解析 五、函数指针 首先看一段代码&#xff1a; 输出的是两个地址相同&#xff0c;这两个相同的地址都是 test 函数的地址。 那我们的函数的地址要想保存起来&#xff0c;怎…

LeetCode63. 不同路径 II

63. 不同路径 II 文章目录 [63. 不同路径 II](https://leetcode.cn/problems/unique-paths-ii/)一、题目二、题解方法一&#xff1a;二维数组动态规划方法二&#xff1a;一维数组动态规划 一、题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “…

【Linux】线程互斥 -- 互斥锁 | 死锁 | 线程安全

引入互斥初识锁互斥量mutex锁原理解析 可重入VS线程安全STL中的容器是否是线程安全的? 死锁 引入 我们写一个多线程同时访问一个全局变量的情况(抢票系统)&#xff0c;看看会出什么bug&#xff1a; // 共享资源&#xff0c; 火车票 int tickets 10000; //新线程执行方法 vo…

rtthread的idle线程不应该长时间堵塞

RT-Thread是一个实时嵌入式操作系统&#xff0c;它的空闲线程&#xff08;Idle Thread&#xff09;是在系统中没有其他任务需要执行时运行的线程。空闲线程通常用于执行一些低优先级的任务或者进行系统的休眠等操作。 RT-Thread的空闲线程不能在线程中堵塞的原因是为了确保系统…

将多张图片拼接成图像矩阵图

用Python实现将12张图片排列成n*m的图像矩阵图 目录 引言环境准备代码实现效果演示总结 引言 在图像处理和图像展示的应用中&#xff0c;将多张图片排列成一个图像矩阵图是一个常见的需求。本博客介绍如何使用Python实现将12张图片排列成n*m的图像矩阵图。 环境准备 为了实…

【动态规划刷题 2】不同路径不同路径 II

不同路径 62 . 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的…

iPhone 安装 iOS 17公测版(Public Beta)

文章目录 步骤1. 备份iPhone资料步骤2. 申请iOS 17 公测Beta 资格步骤3. 下载iOS 16 Beta 公测描述档步骤4. 选择iOS 17 Beta 公测描述档更新项目步骤5. 升级iOS 17 Public Beta 公开测试版 苹果已经开始向大众释出首个iOS 17 公开测试版/ 公测版( iOS 17 Public Beta)&#xf…