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

news2025/2/27 23:24:20

5 算法层面

代价敏感:设置损失函数的权重,使得少数类判别错误的损失大于多数类判别错误的损失;
单类分类器方法:仅对少数类进行训练,例如运用SVM算法;
集成学习方法:即多个分类器,然后利用投票或者组合得到结果。

6 代价敏感算法

6.1 相关问题

经典分类方法一般假设各个类别的错分代价是相同的,并且以全局错分率最低为优化目标。
以入侵检测为例,“将入侵行为判别为正常行为的代价”与“将正常行为判别为入侵行为的代价”是不同的,前者会引起安全问题,后者只是影响了正常行为。

基于代价敏感学习分类方法以分类错误总代价最低为优化目标,能更加关注错误代价较高类别的样本,使得分类性能更加合理。

实现方法:

  • 改变原始的数据分布来得到代价敏感的模型;
  • 对分类的结果进行调整,以达到最小损失的目的;
  • 直接构造一个代价敏感的学习模型。

代价矩阵:
在这里插入图片描述

  • 错误分类造成的代价要大于正确分类所需要的代价,即 C 10 > C 11 C_{10} > C_{11} C10>C11 C 01 > C 00 C_{01} > C_{00} C01>C00,通常情况下,可以设置 C 11 = C 00 = 0 C_{11} = C_{00} = 0 C11=C00=0 C 10 C_{10} C10 C 01 C_{01} C01设置一个大于0的值;
  • 在非平衡分类的代价敏感学习中,为了提高少数类样本的识别准确率,少数类的错分代价应当大于多数类的错分代价,假设这里的正类(1)是少数类,负类(0)是多数类,那么要求 C 10 > C 01 C_{10} > C_{01} C10>C01

6.2 MetaCost算法(bagging)

在这里插入图片描述
具体步骤如下:

  1. 在训练集中多次取样,生成多个模型;
  2. 根据多个模型,得到训练集中每个样本属于每个类别的概率 P ( j ∣ x i ) P(j|x_i) P(jxi)
  3. 计算训练集中每个样本属于每个类的代价 R ( x i ) R(x_i) R(xi),根据最小代价,修改类标签;
  4. 训练修改过的数据集,得到新的模型。

6.3 代价敏感SVM

对SVM进行代价敏感学习改造的关键在于其惩罚因子 C C C,该参数的作用是表征每个样本在分类器构造过程中的重要程度。如果分类器认为某个样本对于其分类性能很重要,那么可以设置较大的值;反之,就设置较小的值。一般情况下, C C C的值不能太大,也不能太小。根据这个原理,对于不平衡分类而言,少数类样本应当具有更大的惩罚值,表示这些样本在决定分类器参数时很重要。因此,应用于非平衡数据分类,对SVM的最简单、最常见的扩展就是根据每个类别的重要性用 C C C值进行加权。权重的值可以根据类之间的不平衡比或单个实例复杂性因素来给出。

对于一个给定的训练数据集 ( ( x 1 , y 1 , ) , … , ( x n , y n ) ) ((x_1,y_1,),…,(x_n,y_n)) ((x1y1)(xnyn)),标准的非代价敏感支持向量机学习出一个决策边界:
f ( x ) = w T ϕ ( x ) + b f(x)=w^{T} \phi(x)+b f(x)=wTϕ(x)+b
普通SVM:
min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i ξ i  s.t.  y i ( w T x i + b ) ≥ 1 − ξ i \begin{array}{cl} \min _{w, b, \xi} & \frac{1}{2}\|w\|^{2}+C \sum_{i} \xi_{i} \\ \text { s.t. } & y_{i}\left(w^{T} x_{i}+b\right) \geq 1-\xi_{i} \end{array} minw,b,ξ s.t. 21w2+Ciξiyi(wTxi+b)1ξi

偏置惩罚支持向量机(BP-SVM):
min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C [ C + ∑ i ∈ S + ξ i + C − ∑ i ∈ S − ξ i ]  s.t.  y i ( w T x i + b ) ≥ 1 − ξ i \begin{array}{ll} \min _{w, b, \xi} & \frac{1}{2}\|w\|^2+C\left[C_{+} \sum_{i \in S_{+}} \xi_i+C_{-} \sum_{i \in S_{-}} \xi_i\right] \\ \text { s.t. } & y_i\left(w^T x_i+b\right) \geq 1-\xi_i \end{array} minw,b,ξ s.t. 21w2+C[C+iS+ξi+CiSξi]yi(wTxi+b)1ξi
代价敏感教练损失支持向量机(CSHL-SVM):
min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C [ β ∑ i ∈ S + ξ i + λ ∑ i ∈ S − ξ i ]  s.t.  y i ( w T x i + b ) ≥ 1 − ξ i , i ∈ S + y i ( w T x i + b ) ≥ κ − ξ i , i ∈ S − \begin{array}{ll} \min _{w, b, \xi} & \frac{1}{2}\|w\|^2+C\left[\beta \sum_{i \in S_{+}} \xi_i+\lambda \sum_{i \in S_{-}} \xi_i\right] \\ \text { s.t. } & y_i\left(w^T x_i+b\right) \geq 1-\xi_i, \quad i \in S_{+} \\ & y_i\left(w^T x_i+b\right) \geq \kappa-\xi_i, \quad i \in S_{-} \end{array} minw,b,ξ s.t. 21w2+C[βiS+ξi+λiSξi]yi(wTxi+b)1ξi,iS+yi(wTxi+b)κξi,iS

7 单分类器方法

密度估计法
基于聚类的方法
基于支持域的方法

7.1 SVM

单类支持向量机(OneclassSVM)
支持向量数据描述(Support Vector Data Description,SVDD)
在这里插入图片描述
当多数类中存在明显簇结构时,使用聚类方法获得聚类结构有利于提高多数类轮廓描述的精度。
在这里插入图片描述

8 集成学习的方法

典型的集成学习方法有

  • Bagging
  • Boosting
  • Stacking
  • SMOTEBagging
  • SMOTEBoost

8.1 Bagging

Over Bagging:每次迭代时应用随机过采样在小类数据
Under Bagging:每次迭代时应用随机下采样在大类数据
SMOTEBagging:结合了SMOTE与bagging,先使用SMOTE生成更加全面的小类数据,然后应用bagging
Asymmetric bagging:每次迭代时,全部小类数据保留,从大类数据中分离一个与小类数据一样大的子集

8.2 Boosting

SMOTEBoost : 结合了SMOTE方法代替简单的增加小类观察点的权重
BalanceCascade : 是典型的双重集成算法,采用Bagging作为基本的集成学习方法,并在训练每个Boostrap数据时,使用AdaBoost作为分类算法。

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

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

相关文章

【Java 基础篇】Java网络编程实时数据流处理

在现代计算机应用程序中,处理实时数据流是一项关键任务。这种数据流可以是来自传感器、网络、文件或其他源头的数据,需要即时处理并做出相应的决策。Java提供了强大的网络编程工具和库,可以用于处理实时数据流。本文将详细介绍如何使用Java进…

Android之AMessage机制存/取原理(四十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

从零学习开发一个RISC-V操作系统(三)丨嵌入式操作系统开发的常用概念和工具

本篇文章的内容 一、嵌入式操作习系统开发的常用概念和工具1.1 本地编译和交叉编译1.2 调试器GDB(The GNU Project Debugger)1.3 QEMU模拟器1.4 项目构造工具Make 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记,计划从RISC…

Gnuplot:安装与使用备忘

异常信息 问题起源于 signalp-4.1 调用 gnuplot 进行画图,在画图的时候提示不支持 png 格式结果: $ gnuplotG N U P L O TVersion 5.0 patchlevel 0 last modified 2015-01-01Copyright (C) 1986-1993, 1998, 2004, 2007-2015Thomas Williams, Coli…

服务网格的工作原理:解析服务网格的核心组件和通信模式

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

实用!Python大型Excel文件处理:快速导入、导出与批量处理

Python 是一种功能强大的编程语言,它提供了丰富的库和工具,使得处理大型 Excel 文件变得容易和高效。下面将介绍如何使用 Python 快速导入、导出和批量处理大型 Excel 文件。下面是一些建议和实践经验,希望能对你有所帮助。 一、Excel 文件处…

【C语言】求一个整数的二进制序列中1的个数的三种方法

方法一:逐位%2法 该方法的初步测试代码如下: int NumberOf1(int n) {int count 0;while (n){if (n % 2 1){count;}n n / 2;}return count; } 众所周知,数据在内存里以补码的形式存储,这是为了简化计算机的结构设计,同时也提…

SpringBoot集成Prometheus实现监控

SpringBoot配置Prometheus pom.xml 引入监控以及prometheus依赖 <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency><dependency><groupId>org.springfram…

Excel——时间戳与标准北京时间的互相转换

一、背景 在excel中将13位毫秒级别的时间戳转换为标准的日期格式(yyyy-mm-dd hh:mm:ss.000)&#xff0c;使用如下模板 TEXT(<source_cell>/1000/8640070*36519,"yyyy-mm-dd hh:mm:ss.000") 在excel中将10位秒级别的时间戳转换为标准的日期格式(yyyy-mm-dd h…

【华为云云耀云服务器L实例评测】- 云原生实践,快捷部署人才招聘平台容器化技术方案!

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

WebGL 选中一个表面

目录 选中一个表面 示例程序&#xff08;PickFace.js&#xff09; 代码详解 示例效果 选中一个表面 ​​​​​​​WebGL 选中物体_山楂树の的博客-CSDN博客可以使用同样的方法来选中物体的某一个表面。这一节在PickObject程序的基础上编写了PickFace程序&#xff0c;后…

计算机毕业设计 基于SSM+Vue的物资存储系统(以消防物资为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

docker安装使用xdebug

docker安装使用xdebug 1、需要先安装PHP xdebug扩展 1.1 到https://pecl.php.net/package/xdebug下载tgz文件&#xff0c;下载当前最新稳定版本的文件。然后把这个tgz文件放到php/extensions目录下&#xff0c;记得install.sh中要替换解压的文件名&#xff1a; installExtensio…

uniapp 离线打包 plus.runtime.install 安装页面不弹起

uniapp 离线打包 plus.runtime.install 安装页面不弹起 updateVersion(webview : any, eventTitle : string, eventContent : string) {const loading plus.nativeUI.showWaiting(准备下载);var dtask plus.downloader.createDownload(eventContent,{method: GET,timeout: 5…

银行存款问题:整存零取

整存零取月息为0.63%&#xff0c;每年底取出1000&#xff0c;五年刚好取完&#xff0c;计算最初存入金额。 (本笔记适合基本熟悉一门编程语言的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程…

Ae 效果:CC Wide Time

时间/CC Wide Time Time/CC Wide Time CC Wide Time &#xff08;CC 宽泛时间&#xff09;能够将前后不同时间的帧叠加在一起&#xff0c;从而创建移动物体的运动轨迹&#xff0c;实现重影、运动模糊、光影跟随等效果。 可以配合其它的效果使得本效果有更多的可控性。 比如&…

py实验一

2、九九乘法表。 编写程序&#xff0c;输出九九乘法表。 源代码&#xff1a; for a in range(1, 10): for b in range(1, a1): print(f"{a}*{b}{a * b}", end" ") print() 列出测试数据和实验结果截图&#xff1a; 3、编写程序&#xff0…

progeny PROGENy

单细胞之富集分析-6&#xff1a;PROGENy - 简书 (jianshu.com) #request 2 .libPaths(c( "/home/data/t040413/R/x86_64-pc-linux-gnu-library/4.2","/home/data/t040413/R/yll/usr/local/lib/R/site-library", "/home/data/refdir/Rlib/", &qu…

tdesign的文件上传(微信小程序+idea的springboot)

目录 1. springboot后端 1.1 FileController.java 1.2 listener文件的ErpApplicationListener.java 1.3 【重点&#xff01;】FileServiceImpl层 1.4 IFileService 1.5 StringUtil通用类 1.6 主程序加一个监听器 1.7 application.yml文件 2. 微信小程序端 2.1 TDesign的…

数据结构与算法——13.队列的拓展

这篇文章主要讲一下双端队列&#xff0c;优先队列&#xff0c;阻塞队列等队列的拓展内容。 目录 1.队列拓展概述 2.双端队列的链表实现 3.双端队列的数组实现 4.优先队列无序数组实现 5.阻塞队列 6.总结 1.队列拓展概述 首先来看一张图&#xff0c;来大致了解一下他们的…