进行新类检测以及概念漂移适应的半监督分类框架SACCOS论文阅读笔记

news2024/11/25 3:56:03

介绍

本文主要想解决基于聚类的概念漂移检测方法中常做出的强假设问题,即假设同类比较接近,异类比较远离,并且还假设新类别出现时通常会连续大量出现。

针对这些问题,本文提出了一种基于数据流的半监督自适应分类框架SACCOS,能够在概念漂移和概念进化的情况下进行标签预测。

主要贡献为:

  • 提出了一个半监督框架,它使用基于图的聚类技术来解决概念漂移和概念进化问题
  • 对数据流中的数据实例进行在线归一化,以统一其规模,并使用聚类集合在短时间内检测新类别
  • 进行了实验

背景

这部分主要讲解了概念演化,其实就是新类的出现。但是新类的出现又分为两种情况:

  • 一种是之前从未出现过这个类,也就是在时间 t > 0 t>0 t>0时出现了某一个类别所对应的实例,在 0 < t ′ < t 0<t^{\prime}<t 0<t<t的时间内都没有出现过,模型也没有基于这个类的实例训练及更新过,这称为新类别的出现
  • 一种是类别重新出现,即在 t > 0 t>0 t>0时出现了某一个类别,该类别在 0 < t ′ < t 0<t^{\prime}<t 0<t<t内曾经出现过,而如果分类器的训练数据以及更新数据不包含这个重新出现的类别的实例,那么也可以认为它是新类别出现

因此形式上将这两种统一,即定义 t 0 、 t 1 t_0、t_1 t0t1之间的概念演化为 P t 0 ( y ) ≠ P t 1 ( y ) P_{t_0}(y)\neq P_{t_1}(y) Pt0(y)=Pt1(y)

具体方法

问题描述

给定初始训练数据为 D = { ( x i , y i ) } i = 1 m D=\{(x_i,y_i)\}^m_{i=1} D={(xi,yi)}i=1m,其中 y i ∈ Y = { 1 , 2 , 3 , . . . , c } y_i\in Y=\{1,2,3,...,c\} yiY={1,2,3,...,c}。而非平稳的流数据为 S = { ( x t ′ , y t ′ ) } t = 1 ∞ S=\{(x_t^{\prime}, y_t^{\prime})\}^{\infty}_{t=1} S={(xt,yt)}t=1,其中 y t ′ ∈ Y ′ = { 1 , 2 , . . . , c , c + 1 , . . . , c ′ } y_t^{\prime}\in Y^{\prime}=\{1,2,...,c,c+1,...,c^{\prime}\} ytY={1,2,...,c,c+1,...,c},代表在流数据中可能会出现新的类别。那么问题就是让分类器在时间 t t t t ′ t^{\prime} t之间的流数据进行训练,其中的标签集合为 Y t t ′ ∈ Y ′ Y^{t^{\prime}}_t\in Y^{\prime} YttY,那么当 t ′ ′ t^{\prime \prime} t′′时刻出现实例 x ′ ′ x^{\prime \prime} x′′其标签为 y ′ ′ y^{\prime \prime} y′′,判断其是否属于 Y t t ′ Y^{t^{\prime}}_t Ytt。该问题的主要挑战为概念漂移的发生、短时间内多个新兴类别的出现以及类别标签的有限可用性。

概述

具体算法文字描述为:

  1. 首先,SACCOS从已知类别标签的实例创建聚类的初始集合,并训练分类器来检测现有类别
  2. 其次,对于流数据,沿着每个新实例执行在线归一化以统一其特征的尺度
  3. 然后将标准化后的实例临时存储在动态缓冲器W中,并使用聚类集成来识别该实例是否为离群值(它是否落在集成的边界之外)
  4. 如果不是则用分类器来预测其标签,如果是则临时存储在异常值缓冲器B中
  5. 一旦B中数目超过临界值,那么就使用新兴类检测模块,通过互图聚类对这些离群值进行聚类
  6. 聚类完成后,用现有的分类器对这些离群值的每个集成的每个实例都进行预测,并且计算其置信度,而一个集群的置信度是其中所有实例置信度的最低值。
  7. 当集群的置信度高于阈值,那么该集群内的实例就按照现有分类器之前为它们预测所带来的伪标签,作为其分类结果;如果集群的置信度小于阈值,那么将从该集群中随机采样一个实例并请求其真实标签,再通过标签传播以预测集群中其他实例的标签
  8. 最后,SACCOS使用在线变化点检测(CPD)机制来检测分类器置信度在预测现有类实例的标签时的变化,当发生改变时(意味着发生了概念漂移),则使用最近沿着流观察到的实例训练的另一个分类器来替换该分类器

这里补充一下标签传播标签传播是一种基于图的半监督学习方法,用于聚类问题。其基本原理是利用已知标签的样本来传播标签,以此来为未知样本预测标签。具体来说,将已知标签的样本看作是带标签的节点,未知样本看作是未标记的节点,可以将它们组成一个图,其中节点代表样本,边代表样本之间的相似性关系。这个相似性关系可以用一些相似性度量方法来计算,比如欧氏距离、余弦相似度等等。标签传播方法的基本思路是:首先将带标签的节点的标签向它的邻居节点传播,然后更新未标记节点的标签,重复这个过程直到收敛。传播的过程中,节点的标签会受到相邻节点的标签影响,因此节点的标签不断地被修正,最终收敛到一个稳定的状态。用公式表示为:
f i = ∑ j ∈ N i w i j f j ∑ j ∈ N i w i j f_i=\frac{\sum_{j\in N_i}w_{ij}f_j}{\sum_{j\in N_i}w_{ij}} fi=jNiwijjNiwijfj
即节点i的标签为其邻居标签的加权和。

具体框架

初始化

该阶段,首先对实例进行归一化,然后采用其中的带标签实例来训练分类器C。接着使用归一化的初始数据生成聚类集合,并将其添加到聚类集成M中,因此这就形成了初始的分类器以及聚类集成。那么M有大小限制,为 T M T_M TM

在预热期后,对于出现的每个新数据实例,都将其保存在临时数据缓冲器S中,其大小为 T S T_S TS。每当S满了,SACCOS就更新规范化参数并规划范S中的那些实例,再将这些实例发送到其他模块进行下一步处理,然后清理S

在线归一化(标准化)

聚类机制通常需要依赖一个好的特征空间来测量组实例的距离,那么如果特征属于一个无界的范围那么将是失败的算法,因此通常需要进行标准化实例数据集来克服以上问题。但是流数据通常是具有未知分布的因此很难对特征进行归一化,因此采取在线归一化。

假设之前已经观察到了N个实例,那么当前从S发送过来新的 T S T_S TS个实例,那么对于均值和方差的更新为:

在这里插入图片描述
在这里插入图片描述

而因为新来了样本,那么当前聚类的各个簇的质心和半径也应该发生相应的变化,即:

在这里插入图片描述

聚类

采用的算法为多图聚类(MGC),其已经被证明是特别有效识别重要集群的方法。

首先进行如下定义:

  • KNN-set:关于实例 x i x_i xi的最近的k个邻居实例
  • 互图G(k):在图中任意两个相邻节点 x 1 、 x 2 x_1、x_2 x1x2必定都是彼此的KNN-set中的实例
  • 互图的增长:假设 x 1 ∈ G 1 ( k ) , x 2 ∈ G 2 ( k ) x_1\in G_1(k),x_2\in G_2(k) x1G1(k)x2G2(k),如果 x 1 、 x 2 x_1、x_2 x1x2是彼此的KNN-set中的实例,那么可以将其连接,也就可以将 G 1 , G 2 G_1,G_2 G1,G2连接为更大的图

那么每个图对应的聚类可以表示为:

在这里插入图片描述

G ( k , D ) G(k,D) G(k,D)代表数据集D的所有互图的集合,而 V ( G l ( k ) ) V(G_l(k)) V(Gl(k))代表图的顶点集,顶点代表实例,因此由实例组成聚类的簇。

而为了并行的处理提高效率,其通过KD-Tree将数据实例的特征空间划分为基于特征方差的子空间,这里每个子空间最多包含 N m N_m Nm个实例。在每个子空间中首先计算其中每个数据实例的q邻域噪声系数(q-NNC)来执行噪声降低,即定义 D ~ q , n e a r e s t \tilde{D}_{q,nearest} D~q,nearest D ~ q , f a r t h e s t \tilde{D}_{q,farthest} D~q,farthest为对于实例x的q个最近邻居的平均距离和q个最远邻居的平均距离,然后计算其q-NNC系数为:
q − N N C ( x ) = D ~ q , n e a r e s t ( x ) D ~ q , f a r t h e s t ( x ) q-NNC(x)=\frac{\tilde{D}_{q,nearest}(x)}{\tilde{D}_{q,farthest}(x)} qNNC(x)=D~q,farthest(x)D~q,nearest(x)
越接近于1,认为其更可能是噪声实例。因此将该子空间的实例按照q-NNC系数降序排序,接着就是确定阈值,将系数大于阈值的实例认为是噪声从而将其丢弃。那么阈值的确定方法为最小标准差的差值来确定,即假设阈值为 T n o i s e T_{noise} Tnoise,将实例分为了两部分,那么就是让这两部分的方差的差的绝对值最小,即:
T n o i s e = a r g m i n ∣ σ ( L r ) − σ ( L l ) ∣ T_{noise}=argmin\vert \sigma(L^r)-\sigma(L^l)\vert Tnoise=argminσ(Lr)σ(Ll)
接下来,就是利用MGC建立多个聚类,每个聚类簇形成一个球形超平面,其质心为其中实例的每个特征的平均值,其半径是平均距离,具体算法为:

在这里插入图片描述

具体的算法流程图为:

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

程序员看过都说好的资源网站,看看你都用过哪些?

程序员必备的相关资源网站一.图片专区1.表情包&#xff08;1&#xff09;发表情&#xff08;2&#xff09;逗比拯救世界&#xff08;3&#xff09;搞怪图片生成&#xff08;4&#xff09;哇咔工具2.图标库&#xff08;1&#xff09;Font Awesome&#xff08;2&#xff09;iconf…

基于vscode开发vue项目的详细步骤教程 2 第三方图标库FontAwesome

1、Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 2、Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目_水w的博客-CSDN博客 3、基于vscode开发vue项目的详细步骤教程_水w的博客-CSDN博客 目录 六、第三方图标库FontAwesome 1 安装FontAwesome 解决报…

vulnhub靶场NAPPING: 1.0.1教程

靶场搭建靶机下载地址&#xff1a;Napping: 1.0.1 ~ VulnHub直接解压双击ova文件即可使用软件&#xff1a;靶机VirtualBox&#xff0c;攻击机VMware攻击机&#xff1a;kali信息收集arp-scan -l上帝之眼直接来看看网站可以注册账号&#xff0c;那就先试试。注册完后登入哦。要输…

阿里面试之Hr面,这个套路把我坑惨了......

作为技术类的测试工程师面试&#xff0c;往往要经过多次面试才能拿到心仪的offer&#xff0c;这里面有技术一面、二面…&#xff0c;甚至总监面等&#xff0c;还有一个必不可少的就是HR面&#xff0c;一般HR会出现在你面试的最前面和最后面&#xff0c;前面是了解你的基本情况&…

NCRE计算机等级考试Python真题(六)

第六套试题1、算法的时间复杂度是指A.执行算法程序所需要的时间B.算法程序的长度C.算法程序中的指令条数D.算法执行过程中所需要的基本运算次数正确答案&#xff1a; D2、下列关于栈的叙述中正确的是A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进…

JavaEE简单示例——MyBatis多对多关联映射

简单介绍&#xff1a; 在实际的开发中&#xff0c;多对多的查询也是非常常见的。比如一个订单可以有很多的商品&#xff0c;而一个商品也可以被很多的订单所包含&#xff0c;而这种时候&#xff0c;如果我们有需求查询某一个订单内包含的所有商品&#xff1b;或者查询购买这个…

本地启动nacos注册服务

1.下载启动nacos(我的路径2.D:\nacos-server-2.0.0\nacos\bin) 2.单点模式启动 startup.cmd -m standalone 3.打开本地服务mysql、redis 4.配置nacos Nacos <1>创建命名空间&#xff0c;名称和项目pom一致 <2>ncaos导入配置或新建配置 <3>修改配置&#x…

Java培训:深入解读函数式接口

函数式编程是一种编程规范或一种编程思想&#xff0c;简单可以理解问将运算或实现过程看做是函数的计算。 Java8为了实现函数式编程&#xff0c;提出了3个重要的概念&#xff1a;Lambda表达式、方法引用、函数式接口。现在很多公司都在使用lambda表达式进行代码编写&#xff0c…

花7000报了培训班,3个月后我成功“骗”进了阿里,月薪拿16K....

“月薪4000元不如报名学IT&#xff0c;挑战年薪百万”这是大多数培训班在互联网上宣传的口号&#xff0c;简单的16个字却戳中了很多人的痛点&#xff0c;同龄人买车买房&#xff0c;自己却拿着微薄的工资连好一点的房子都租不起&#xff0c;这句口号 彻底激起了底层员工的焦虑&…

Spring上下文生命周期

基于入口来分析 import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;Configuration ComponentScan public cl…

飞行机器人专栏(十)-- 异构多视角视觉系统

感知系统架构为满足天空端主控制器的诸如RGB-D图像处理等大容量数据吞吐、高速并行计算、实时运动控制以及通信和可视化任务的计算算力需求&#xff0c;同时优化功耗表现&#xff0c;采用了结构紧凑、功耗表现优异的边缘计算硬件NVIDA IJetson AGXOrin 。该开发者套件包含高性能…

Python学习笔记202302

1、numpy.empty 作用&#xff1a;根据给定的维度和数值类型返回一个新的数组&#xff0c;其元素不进行初始化。 用法&#xff1a;numpy.empty(shape, dtypefloat, order‘C’) 2、logging.debug 作用&#xff1a;Python 的日志记录工具&#xff0c;这个模块为应用与库实现了灵…

可用于标记蛋白质216699-36-4,6-ROX,SE,6-羧基-X-罗丹明琥珀酰亚胺酯

一.6-ROX&#xff0c;SE产品描述&#xff1a;6-羧基-X-罗丹明琥珀酰亚胺酯&#xff08;6-ROX&#xff0c;SE&#xff09;是一种用于寡核苷酸标记和自动DNA测序的荧光染料&#xff0c;可用于标记蛋白质&#xff0c;寡核苷酸和其他含胺分子的伯胺&#xff08;-NH2&#xff09;。西…

Git中遇到的问题

文章目录Clone克隆bytes of body are still expectedunable to access此文章是自己在Git操作时遇到的问题&#xff0c;先开个坑记录下来&#xff0c;如果以后还遇到了Git上的其他问题&#xff0c;会在后面进行添加。Clone克隆 bytes of body are still expected Clone失败信息…

【Redis】Java客户端JedisSpringDataRedis入门(三)

&#x1f697;Redis学习第三站~ &#x1f6a9;起始站&#xff1a;【Redis】概述&环境搭建(一) &#x1f6a9;本文已收录至专栏&#xff1a;数据库学习之旅 &#x1f44d;希望您能有所收获 在上一篇中我们学习了Redis常见命令的使用&#xff0c;显然&#xff0c;我们不可能一…

Day21【元宇宙的实践构想07】—— 元宇宙与人工智能

&#x1f483;&#x1f3fc; 本人简介&#xff1a;男 &#x1f476;&#x1f3fc; 年龄&#xff1a;18 &#x1f91e; 作者&#xff1a;那就叫我亮亮叭 &#x1f4d5; 专栏&#xff1a;元宇宙 0.0 写在前面 “元宇宙”在2021年成为时髦的概念。元宇宙到底是什么&#xff1f;元宇…

[架构之路-123]-《软考-系统架构设计师》-操作系统-2-操作系统原理 - 存储层次结构与存储管理(寄存器、Cache、MMU、内存、外存、页表)

前言&#xff1a;操作系统的本质就是创建一个并发的应用程序执行的环境&#xff0c;使得各种应用程序可以动态、共享相同的计算机物理硬件资源&#xff0c;计算机的三大物理资源包括&#xff1a;CPU内存外设应用程序&#xff08;管理应用程序&#xff09;&#xff1a;以进程和现…

线性代数学习-1

线性代数学习-1行图像和列图像行图像列图像总结本文转载于https://herosunly.blog.csdn.net/article/details/88698381 该文章本人认为十分有用&#xff0c;便自己敲一遍笔记加固印象原文链接 原文这个笔记感觉比我老师讲的更加透彻&#xff0c;清晰。很好的展示了线性代数的原…

【MySQL】数据库中锁和事务的相关知识点

1.事务的四大特点 原子性&#xff1a;事务中的所有操作要么都成功&#xff0c;要么都失败。所有的操作是一个不可分割的单位。一致性&#xff1a;一致性指的是事务执行前后&#xff0c;数据从一个合法性状态转移到另一个合法性状态。这个状态和业务有关&#xff0c;是自己定义…

基于ssm框架大学生社团管理系统(源码+数据库+文档)

一、项目简介 本项目是一套基于ssm框架大学生社团管理系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&#xff0c;确保可…