基于重要抽样的主动学习不平衡分类方法ALIS

news2024/11/26 15:33:39

        这篇论文讨论了数据分布不平衡对分类器性能造成的影响,并提出了一种新的有效解决方案 - 主动学习框架ALIS。

        1、数据分布不平衡会影响分类器的学习性能。现有的方法主要集中在过采样少数类或欠采样多数类,但往往只采用单一的采样技术,无法有效解决严重的类别不平衡问题。

        2、论文提出了ALIS框架,它通过交替进行重要多数类实例选择有价值少数类实例生成,使得两种采样策略相互影响和改善。

        3、ALIS可以在保持采样平衡的同时,选择出更有价值的多数类实例和生成更有代表性的少数类实例,从而大幅提高分类器的性能。

传统方法缺点:

        基于采样的技术一直是通过增加少数类实例(过采样)或减少多数类实例(欠采样)来缓解不平衡问题的一种直接而简单的方法。

        基于混合采样同时利用欠采样和过采样的联合方法。虽然混合抽样方法同时利用了这两种抽样策略,但它们仍然或多或少地存在着这两种抽样策略分开执行的缺点。

        集成学习和代价敏感学习也被用来提高非平衡数据分类器的性能。但集成方法的问题是如何生成准确的集成分量并设计适当的融合函数来组合弱分类器。同样,即使借助领域知识,手动调整成本敏感型学习方法的成本参数也是昂贵的。

一、ALIS算法主要思想

对于主动学习的每次迭代,都做两件事:①、挑选重要的多数类实例;②、生成信息丰富的少数类实例。

基于此,主动学习能够在每个学习阶段产生均衡的训练集!

1.1、挑选重要的多数类实例(欠采样过程)

这个新的主动选择准则捕捉了选定多数类实例的以下两个统计特征:

(1) 一阶统计信息:选定多数类实例到当前决策边界的平均距离。这反映了这些实例与边界的相关性程度。

(2) 二阶统计信息:选定多数类实例到当前决策边界的距离方差。这反映了这些实例的多样性程度。

        当这些多数类实例与决策边界的距离差异较小时,意味着这些实例分布比较集中,缺乏多样性。距离方差就会较小。
        相反,如果这些多数类实例与决策边界的距离差异较大,意味着它们分布较为分散,体现了较高的多样性。距离方差就会较大。

1.2、生成信息丰富的少数类实例(过采样过程)

        与之前简单的过采样方法相比,ALIS通过选择重要的边界实例、计算它们的重要性权重,并采用核密度估计来生成新样本,可以生成更加贴近决策边界、分布更加多样化的少数类合成实例。

二、ALIS基本框架

Pactive 表示主动学习少数类样本个数,Nactive表示主动学习多数类样本个数,其中数字上标j为主动学习的第j次迭代过程

j = 0时,代表初始值,即初始时的训练集由两部分组成:①所有少数类样本(有P个);②随机挑选P个多数类样本(随机欠采样过程)

之后的第j次迭代,进行ALIS算法的重要过采样(生成Pj active个少数类样本)和重要欠采样(从剩余的多数类实例池 Nj-1 pool 中选择重要的多数类实例 Nj active)

当训练集在连续两轮的预测性能差异小于阈值时,主动学习过程终止。最终分类器由原始少数类实例 P、初始随机选择的多数类实例 N0 active、过采样的少数类实例 Pactive 和欠采样的多数类实例 Nactive 组成。

1、重要欠采样

ALIS尝试选择边界周围的重要多数实例。为了实现这一点,它考虑了这些实例的结构信息,例如它们的第一和第二统计信息。

具体步骤:

将距离当前边界最近的m个实例(实验中m取3)作为初始候选集Nj0_active

在每次迭代中,从池中选择最接近边界的t个额外实例(遵循主动学习策略,在实验中将t设置为2),并将其添加到Njk active中。

对于每一次迭代都要计算其边缘分布率ratio j k的值,可以由如下公式计算。其值越小,表示距离平均值小,距离方差大。前者有利于不确定实例的选择,因为它们靠近边界。后者有助于选择不同的实例,因为它们是彼此分散的

 因此,如果ratiojk+1 > ratiojk,则选择信息负点的过程结束,其中Nj_active = Njk_active。

2、重要过采样

①识别有价值的边界少数类实例(采样种子):
        那些少数类实例的k个最近邻里包含多数类实例,被认为处于边界区域。这些边界少数类实例被选为有价值的集合,记作Pinfo。
②给采样种子分配重要性权重:
        对于Pinfo中的每个实例xi,根据它的k个最近邻的分布,给它分配一个权重值ξi。权重ξi计算为xi的k个最近邻中多数类实例的比例。
③使用核密度估计生成新的少数类实例:
        使用一个核密度函数Gi(x)来捕捉有价值少数类实例(xi ∈ Pinfo)的分布。核密度函数是一个以xi为中心、带宽为hi的高斯分布。整体概率密度函数p(x)被估计为各个高斯核函数的加权和,权重为ξi。
④通过从估计的概率密度函数p(x)中采样,可以生成新的少数类实例。

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

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

相关文章

【Datawhale AI 夏令营】CV图像竞赛——Deepfake攻防

【Datawhale AI 夏令营】CV图像竞赛——Deepfake攻防 从零入门CV图像竞赛(Deepfake攻防) 是 Datawhale 2024 年 AI 夏令营第二期 的学习活动(“CV图像”方向),基于蚂蚁集团举办的“外滩大会-全球Deepfake攻防挑战赛”开展的实践学习 ​ 这几天…

Mysql深入讲解(索引、事务、锁机制)

一、MySQL索引 1、何为索引? MySQL中的索引是一种数据结构,用于加快对数据库表中数据的查询速度【查询速度提升】。它类似于书本目录,使得用户可以根据特定字段快速定位到所需的数据行,而无需扫描整个表。 2、索引分类 Hash索…

C 语言回调函数

回调函数的概念 您的理解是正确的。pFunCallBack 是一种函数指针类型,它定义了函数的签名(即函数的参数类型和返回类型)。当我们说 pFunCallBack pFun,我们是在声明一个变量 pFun,其类型是 pFunCallBack —— 即一个函…

【D3.js in Action 3 精译_018】2.4 向选择集添加元素

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可视化最佳实践(下)1.4 本章小结 第二章…

RNN循环递归网络讲解与不掉包python实现

1.算法简介 参考论文:Elman J L. Finding structure in time[J]. Cognitive science, 1990, 14(2): 179-211.,谷歌被引次数超16000! 说到循环递归结构就不得不提到其鼻祖RNN网络。首先我们先对RNN有个初步的概念:想象一下,你正在…

[紧急!!!]20240719全球Windows10/11蓝屏问题,CrowdStrike导致的错误解决方案

文章目录 前言一、CrowdStrike是什么?二、PC解决方式(网路上大神的方式,虚拟机测试过)1.Windows PC 上 CrowdStrike BSOD 问题的官方解决方法:2.阻止CrowdStrick启动-命令行法3.阻止CrowdStrick启动-注册表法 三、AWS …

基于Matlab的数据可视化

基于Matlab的数据可视化 一、二维图形的绘制(一)基本图形函数(1)plot函数(2)fplot函数(3)其他坐标系的二维曲线 (二)图形属性设置(1)线…

对某次应急响应中webshell的分析

文章前言 在之前处理一起应急事件时发现攻击者在WEB应用目录下上传了webshell,但是webshell似乎使用了某种加密混淆手法,无法直观的看到其中的木马连接密码,而客户非要让我们连接webshell来证实此文件为后门文件且可执行和利用(也是很恼火&a…

数据结构与算法04二叉树|二叉排序树|AVL树

目录 一、二叉树(binary tree) 1、二叉树常见术语 2、二叉树常用的操作 2.1、初始化:与链表十分相似,先创建节点,然后构造引用/指针关系. 2.2、插入和删除操作 3、常见二叉树类型 3.1、满二叉树 3.2、完全二叉树(complete b…

跳跃游戏Ⅱ - vector

55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool canJump(vector<int>& nums) {int n nums.size();int reach 0;for(int i 0; i < n; i){if(i > reach){return false;}reach max(inums[i], reach);}return true;} }; …

SpringBoot3 + Vue3 学习 Day 2

登入接口 和 获取用户详细信息的开发 学习视频登入接口的开发1、登入主逻辑2、登入认证jwt 介绍生成 JWT① 导入依赖② 编写代码③ 验证JWT 登入认证接口的实现① 导入 工具类② controller 类实现③ 存在的问题及优化① 编写拦截器② 注册拦截器③ 其他接口直接提供服务 获取用…

JVM(day4)类加载机制

类加载过程 加载 通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 在内存中生成一个代表这个类的java.lang.Class对象&#xff0c;作为方法区这个类的各种数据的访问入口。 验证 文件格式验证 元数…

LeetCode做题记录(第二天)647. 回文子串

题目&#xff1a; 647. 回文子串 标签&#xff1a;双指针 字符串 动态规划 题目信息&#xff1a; 思路一&#xff1a;暴力实现 我们直接for套for分割成一个个子串再判断&#xff0c;如果子串是回文子串&#xff0c;就1&#xff0c;最后得出结果 代码实现&#xff1a; cl…

C语言实例-约瑟夫生者死者小游戏

问题&#xff1a; 30个人在一条船上&#xff0c;超载&#xff0c;需要15人下船。于是人们排成一队&#xff0c;排队的位置即为他们的编号。报数&#xff0c;从1开始&#xff0c;数到9的人下船&#xff0c;如此循环&#xff0c;直到船上仅剩15人为止&#xff0c;问都有哪些编号…

Missing script:‘dev‘

场景&#xff1a; npm run dev 原因&#xff1a;没有安装依赖&#xff0c;可用镜像安装&#xff08;详见下图ReadMe 蓝色字体&#xff09;&#xff0c;没安装依赖可从package-lock.json文件是否存在看出&#xff0c;存在则有依赖 解决&#xff1a;

KMP算法(算法篇)

算法之KMP算法 KMP算法 概念&#xff1a; KMP算法是用于解决字符串匹配的问题的算法&#xff0c;也就是有一个文本串和一个模式串&#xff0c;求解这个模式串是否在文本串中出现或者匹配。相对于暴力求解&#xff0c;KMP算法使用了前缀表来进行匹配&#xff0c;充分利用了之…

【Vue3】从零开始编写项目

【Vue3】从零开始编写项目 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的…

神经网络模型实现(训练、测试)

目录 一、神经网络骨架&#xff1a;二、卷积操作&#xff1a;三、卷积层&#xff1a;四、池化层&#xff1a;五、激活函数&#xff08;以ReLU为例&#xff09;&#xff1a;六、模型搭建&#xff1a;七、损失函数、梯度下降&#xff1a;八、模型保存与加载&#xff1a;九、模型训…

Linux下安装JDK、Tomact、MySQL以及Nginx的超详细步骤

目录 1、为什么安装这些软件 2、安装软件的方式 3、安装JDK 3.1 下载Linux版本的JDK 3.2 将压缩包拖拽到Linux系统下 3.3 解压jdk文件 3.4 修改文件夹名字 3.5 配置环境变量 4、安装Tomcat 4.1 下载Tomcat 4.2 将Tomcat放入Linux系统并解压&#xff0c;步骤如上面的…

MenuToolButton自绘控件,带下拉框的QToolButton,附源码

MenuToolButton自绘控件&#xff0c;带下拉框的QToolButton 效果 下拉样式可自定义 跟随QToolButton的Qt::ToolButtonStyle属性改变图标文字样式 使用示例 正常UI文件创建QToolButton然后提升&#xff0c;或者直接代码创建都可以。 // 创建一个 QList 对象来存储 QPixm…