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

2023-09-21 10:27:01

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作为分类算法。

更多推荐

java 工程管理系统源码+项目说明+功能描述+前后端分离 + 二次开发

Java版工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离功能清单如下:首页工作台:待办工作、消息通知、预警信息,点击可进入相应的列表项目进度图表:选择(总体或单个)项目显示1、项目进度图表2、项目信息施工地图:1、展示当前角色权限下能看到的施工地图(

pom的配置策略

dependencyManagement和dependencies区别和联系参考:https://blog.csdn.net/Sunshineoe/article/details/121083505<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://mav

剔除数据中的异常值(python实现)

目录一、3σ原则二、箱线图发现异常值三、boxcox数据变换一、3σ原则该准则仅局限于对正态或近似正态分布的样本数据处理,此外,当测量次数少的情形用准则剔除粗大误差是不够可靠的。异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称离群点,异常值的分析也称为离群点的分析。在进行机器学习过程中,需要对数据集进行

Python进阶学习----一闭三器

目录​编辑前言一.三器1.迭代器(Iterator)1.1什么是可迭代对象1.2什么是迭代器1.3案例演示:以下是一个简单的迭代器示例,遍历一个列表并打印每个元素:1.4迭代器总结2.生成器(Generator)3.装饰器(Decorator)二.一闭4.闭包(Closure)总结:前言Python是一种功能强大而灵活

C2基础设施威胁情报对抗策略

威胁情报是指在信息安全和安全防御领域,收集、分析和解释与潜在威胁相关的信息,以便预先发现并评估可能对组织资产造成损害的潜在威胁,是一种多维度、综合性的方法,其通过信息的收集、分析和研判,帮助组织了解可能对其安全构成威胁的因素。这种方法不仅仅着重于技术层面,还包括了社会、心理、政治等多个维度,以此更好地应对不断变化和复杂

软件项目管理【UML-类图】

前言UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作。一般说来,在UML图中,只要掌握类图、用例图、时序图的使用,就能完成大部分的工作。也就是说,掌握UML的20%,就能做80%的事情。对于程序员来说,最频繁使用的莫过于类图。目录前言一、什么是类图二、类图中类表示法三、类图中具体类、抽象、接

UML基础与应用之面向对象

UML(UnifiedModelingLanguage)是一种用于软件系统建模的标准化语言,它使用图形符号和文本来描述软件系统的结构、行为和交互。在面向对象编程中,UML被广泛应用于软件系统的设计和分析阶段。本文将总结UML基础与应用之面向对象的重要概念和常用图形符号。一、面向对象编程基础:类与对象:类是对具有相同属性

软件设计师-UML基础教程

场景针对UML1.5各种模型图的构成和功能进行说明。UML概述UML简介UML(UnifiedModelingLanguage)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。UML的定义包括UML语义和UML表示法两个部分。(1)UML语义:UML对

机器学习入门教学——损失函数(极大似然估计法)

1、前言我们在训练神经网络时,最常用到的方法就是梯度下降法。在了解梯度下降法前,我们需要了解什么是损失(代价)函数。所谓求的梯度,就是损失函数的梯度。如果不知道什么是梯度下降的,可以看一下这篇文章:机器学习入门教学——梯度下降、梯度上升_恣睢s的博客-CSDN博客损失函数其实就是神经网络里的标准和期望的标准相差多少的定

ESP32主板-MoonESP32

==产品简介==Moon-ESP32主板,一款以双核芯片ESP32-E为主芯片的主控板,支持WiFi和蓝牙双模通信,低功耗,板载LED指示灯,引出所有IO端口,并提供多个I2C端口、SPI端口、串行端口,方便连接,拓展性强。Moon-ESP32主板深度支持ArduinoIDE编程,并且支持Mind+图形化编程,Mixl

近世代数之集合与映射

近世代数之集合与映射近世代数为密码学基础,因此想要补充一下这方面的相关概念与性质,因此进行记录与分享。主要参考书籍为《近世代数基础》-张禾瑞集合:(有限或者无限个)固定事物的全体叫做一个集合。元素:组成一个集合的事物叫做这个集合的元素空集合:一个没有元素的集合叫做空集合子集:若集合B的每一个元素都属于集合A,则说,B为

热文推荐