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

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. 对原始训练集进行 m m m次随机采样得到 m m m个子数据集;
  2. 对每一个子数据集训练一个基分类器,得到 m m m个基分类器;
  3. 所有基分类器对原始数据进行预测,将所有预测概率值进行平均;
  4. 参数 q q q如果设置为True,则所有模型都直接预测所有数据,如果设置为False,只预测自己的训练数据(也就是第 i i i个模型对应的第 i i i个子数据集);
  5. 样本的预测概率乘上代价敏感矩阵,然后取其中损失最小的类别作为这个样本的新标签。

在这里插入图片描述
对于二分类问题,标签为[0 1], 假设样本A的预测概率的均值为[0,8 0.2], 代价敏感矩阵设置为:
[ 0 1 5 0 ] \left[\begin{array}{ll} 0 & 1 \\ 5 & 0 \end{array}\right] [0510]
其中1对应的是大类样本分错的损失,5表示少数类样本分错的损失。
[ 0.8 0.2 ] × [ 0 1 5 0 ] = [ 1 0.8 ] \left[\begin{array}{ll}0.8 & 0.2\end{array}\right] \times\left[\begin{array}{ll} 0 & 1 \\ 5 & 0 \end{array}\right] = \left[\begin{array}{ll}1 & 0.8\end{array}\right] [0.80.2]×[0510]=[10.8]
此时最小值为0.8,我们将这个样本的标签改为0.8所对应的类别 “1”。

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
其中 ϕ \phi ϕ表示一个映射函数,将样本的特征空间映射到一个更高维的空间,甚至是无限维的空间。参数 w w w b b b的优化目标为:
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
最小化目标函数中包括两部分,即正则项和损失函数项。标准的支持向量机最小化一个对称的损失函数,称为合页损失函数。

在标准SVM上实现代价敏感有两种方法,分别是偏置惩罚支持向量机(BP-SVM)和代价敏感合页损失支持向量机。
(1)偏置惩罚支持向量机(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
引入了针对阳性和阴性样本的松弛变量 C + C_{+} C+ C − C_{-} C,用来处理假阳性和假阴性不同的误分类代价。
缺点:BP-SVM在训练稀疏数据时,会加大惩罚参数 C C C C C C非常大时,BP-SVM将退化为标准SVM。

(2)代价敏感合页损失支持向量机(CSHL-SVM),可以避免BP-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 ) ≥ k − ξ i , i ∈ S − \begin{array}{ll} \min _{w, b, \xi} & \frac{1}{2}\|w\|^2+C\left[\beta \sum_{i \in S_{+}} \xi_i+\gamma \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 k-\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)kξi,iS
其中 β = C + , γ = 2 C − − 1 , k = 1 2 C − − 1 \beta = C_{+}, \gamma = 2C_{-} -1, k = \frac{1}{2C_{-} -1} β=C+,γ=2C1,k=2C11。在CSHL-SVM中,代价敏感由参数 β , γ , k \beta, \gamma, k β,γ,k控制, β , γ \beta, \gamma β,γ可以控制边界违反的相对权重,在稀疏的训练数据集上, k k k依然可以控制代价敏感性。

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.rhkb.cn/news/144035.html

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

相关文章

【OpenSSL】单向散列函数

什么是单向散列函数 任意长度数据生成固定长度是散列快速计算消息变化散列变化单向不可逆,抗碰撞 应用场景 文件完整性口令加密消息认证伪随机数配合非对称加密做数字签名比特币工作量证明 单向hash抗碰撞 弱抗碰撞 给定X和hash值的情况下,找到另外…

怎么使用 Go 语言操作 Apache Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此&#xf…

buuctf-[网鼎杯 2020 朱雀组]phpweb

1.打开网站,吓我一跳 2.查看源代码,主要看到timezone,然后这个页面是五秒就会刷新一次 一开始去搜了这个,但是没什么用 3.使用bp抓包 会发现有两个参数,应该是用func来执行p 4.修改func和p file_get_contents&#…

7.网络原理之TCP_IP(上)

文章目录 1.网络基础1.1认识IP地址1.2子网掩码1.3认识MAC地址1.4一跳一跳的网络数据传输1.5总结IP地址和MAC地址1.6网络设备及相关技术1.6.1集线器:转发所有端口1.6.2交换机:MAC地址转换表转发对应端口1.6.3主机:网络分层从上到下封装1.6.4主…

HTTP 与 HTTPS

文章目录 HTTP协议一、什么是HTTP协议二、HTTP 协议通信过程三、URL什么是URI 四、HTTP报文1、请求报文(1)请求报文结构 2、响应报文(1)响应报文结构 五、HTTP请求方式1、GET:获取资源2、POST:提交数据增加…

巨人互动|Facebook海外户Facebook内容的类型

随着人们日益依赖的社交媒体来进行信息获取与交流,Facebook作为全球最大的社交媒体平台之一,那么Facebook的内容都有哪些类型呢?下面小编来讲讲吧! 1、实时发生的事 我们需要实时了解时事动态,这样可以使用户对品牌发…

三个要点,掌握Spring Boot单元测试

单元测试是软件开发中不可或缺的重要环节,它用于验证软件中最小可测试单元的准确性。结合运用Spring Boot、JUnit、Mockito和分层架构,开发人员可以更便捷地编写可靠、可测试且高质量的单元测试代码,确保软件的正确性和质量。 一、介绍 本文…

AWS SAA知识点整理(作成中)

共通 一些信息已经更新了,但参考题的答案还是旧的。 比如: S3的最大读写性能已经提高到 3,500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD requests per second 并且不再要求使用random prefix 题目中有时候会让选择Not violation 不合适的一项&#xff…

mybatisPlus代码生成器

一、添加和mybatisPlus相关的依赖 二、创建代码生成器类 package com.example.mybatisplus_generator.generator;import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;public class Co…

智算创新,美格智能助力智慧支付加速发展

9月21日,以“智算引领创新未来”为主题的紫光展锐2023泛物联网终端生态论坛在深圳举行。作为紫光展锐重要战略合作伙伴,美格智能标准模组产品线总经理郭强华、高级产品总监刘伟鹏受邀出席论坛。美格智能基于紫光展锐5G、4G、智能SoC、Cat.1 bis等芯片平台…

SpringCloud 简单的了解

什么是SpringCloud ? 基于 Spring Boot 的 Spring 集成应用程序,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,提供与外部系统的集成。 如服务注册与发现、配置中心、负载均衡、断路器、消息总线、数据监控等;换句话说&#xff…

Zilliz@阿里云:大模型时代下Milvus Cloud向量数据库处理非结构化数据的最佳实践

大模型时代下的数据存储与分析该如何处理?有没有已经落地的应用实践? 为探讨这些问题,近日,阿里云联合 Zilliz 和 Doris 举办了一场以《大模型时代下的数据存储与分析》为主题的技术沙龙,其中,阿里云对象存储 OSS 上拥有海量的非结构化数据,Milvus(Zilliz)作为全球最有…

飞致云开源社区月度动态报告(2023年9月)

自2023年6月起,中国领先的开源软件公司FIT2CLOUD飞致云以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源大屏…

django_auth_ldap登录权限

用户登录权限分为三种,通过is_active,is_staff,is_superuser标识。可以对组赋予对应的权限。 设定active组、staff组和superuser组分别对应三种权限。在不同组权限下的登录情况如下: 当用户不属于任何一组: 登录失败,提示如图&a…

MonkeyRunner测试步骤

首先把安卓SDK的 环境变量给配置好,这里就不再多解释,自己google 然后将自己的安卓设备打开调试模式,USB连接至电脑,运行CMD,输入命令adb devices 查看你的安卓设备的ID(ID后面写程序会调用),…

容器启动报错

容器启动报错 docker: Error response from daemon: driver failed programming external connectivity on endpoint XXX 如下: 据百度: 在docker启动后在,再对防火墙firewalld进行操作,就会发生上述报错 详细原因&#xff1a…

在EXCEL中构建加载项之创建加载项的目的及规范要求

【分享成果,随喜正能量】一句南无阿弥陀佛,本是释迦牟尼佛所证的无上正等正觉法,洒在娑婆世界的众生海中,只为末世众生能够以信愿之心抓住此救命稻草,要知道今世人此生的处境,可能只剩这道要么极乐要么三涂…

【DTEmpower案例操作教程】向导式建模

DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件,致力于帮助工程师及工科专业学生,利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析,建立高质量的数据模型,实现快速设计评估、实时仿真预测、系统参数预警、设…

Android 导入ncnn-android-yolov8-seg : 实现人体识别和人像分割

1. 前言 上篇文章我们在Android中使用OpenCV实现了人脸识别,这篇文章我们使用OpenCVYOLOv8NCNN 来实现人像分割的功能。 首先来看下效果,这里会识别出人体,并会用蓝色的框框出来,并会有标签标注识别出的物体是什么,概…

038:mapboxGL 旋转地图(rotateTo)

第038个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中旋转地图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共68行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https://xiaozhuan…