科普:One-Class SVM和SVDD

news2025/4/11 1:30:18

SVM(支持向量机)算法是用于解决二分类问题的,它在样本空间(高维空间)中找一个最优超平面,使得两类数据点中离超平面最近的点(称为支持向量)到超平面的距离最大。
对于极少数“坏样本”的二分类场景,我们可以换个思路:将所有样本视为一类(而不是二类),而将极少数“坏样本”视为这一类的异常。这样,用于二分类的SVM就可以改造为用于一分类的One-Class SVM和SVDD。
One-Class SVM(单类支持向量机)与SVDD(支持向量数据描述)是单类分类领域的两大核心算法,它们的目标均为通过仅使用目标类样本建模,实现异常检测或数据描述。两者在理论基础和实现方式上存在紧密联系,但在决策边界形式、优化目标和应用场景上也有显著差异。以下是具体分析:

1. 核心联系:基于核方法的单类分类框架

1.1 共同的理论基础
  • 核技巧:两者均通过核函数将数据映射到高维特征空间,以处理非线性分布问题。例如,使用RBF核将数据映射到无限维空间后,SVDD在高维空间中寻找最小超球体,而One-Class SVM则寻找最优超平面。
  • 对偶优化:两者的优化问题均可转化为二次规划问题,并通过拉格朗日对偶方法求解。支持向量(Support Vectors)在两种算法中均起关键作用,决定决策边界的形状。
  • 参数敏感性:均依赖惩罚参数(如One-Class SVM的 n u nu nu或SVDD的 C C C)平衡模型复杂度与异常点容忍度,且核函数参数(如RBF核的 γ γ γ)需谨慎调优。
1.2 数学等价性
  • 特定条件下的等价性:当使用满足 k ( x , x ) = 1 k(x, x) = 1 k(x,x)=1的核函数(如归一化RBF核)时,One-Class SVM与SVDD的决策函数等价。例如,对于高斯核 k ( x , x ′ ) = e x p ( − γ ∣ ∣ x − x ′ ∣ ∣ 2 ) k(x, x') = exp(-γ||x-x'||²) k(x,x)=exp(γ∣∣xx2),若归一化为 k ( x , x ′ ) = e x p ( − γ ∣ ∣ x − x ′ ∣ ∣ 2 ) / e x p ( − γ ∣ ∣ x ∣ ∣ 2 ) e x p ( − γ ∣ ∣ x ′ ∣ ∣ 2 ) k(x, x') = exp(-γ||x-x'||²)/exp(-γ||x||²)exp(-γ||x'||²) k(x,x)=exp(γ∣∣xx2)/exp(γ∣∣x2)exp(γ∣∣x2),则两者的超平面与超球体决策边界在数学上等价。
  • 渐近一致性:在数据分布接近球状时,两者的分类结果趋近于一致。例如,当目标类数据在高维空间中近似正态分布时,SVDD的超球体与One-Class SVM的超平面可能重合。

2. 关键区别:决策边界与优化目标

2.1 决策边界形状
  • One-Class SVM
    通过超平面(Hyperplane)将目标类数据与原点(或其他参考点)分离。其优化目标是最大化超平面与原点的距离,同时允许少量样本跨越超平面(通过松弛变量)。例如,在二维空间中,超平面表现为一条直线,将目标类数据与原点分隔开。
  • SVDD
    通过超球体(Hypersphere)将目标类数据紧密包围。其优化目标是最小化超球体的体积,同时允许部分样本位于球体外(通过松弛变量)。例如,在二维空间中,超球体表现为一个圆,尽可能紧凑地包含目标类数据。
2.2 优化目标差异
  • One-Class SVM
    目标函数为:
    min ⁡ w , ρ , ξ 1 2 ∥ w ∥ 2 − ρ + 1 ν n ∑ i = 1 n ξ i \min_{\mathbf{w}, \rho, \xi} \quad \frac{1}{2}\|\mathbf{w}\|^2 - \rho + \frac{1}{\nu n} \sum_{i=1}^n \xi_i w,ρ,ξmin21w2ρ+νn1i=1nξi
    约束条件:
    w T ϕ ( x i ) ≥ ρ − ξ i , ξ i ≥ 0 \mathbf{w}^T \phi(\mathbf{x}_i) \geq \rho - \xi_i, \quad \xi_i \geq 0 wTϕ(xi)ρξi,ξi0
    其中, w \mathbf{w} w 是超平面的法向量, ρ \rho ρ 是超平面到原点的距离, ν \nu ν 控制异常点比例。
    ϕ \phi ϕ把从原始空间中的特征向量 x \mathbf{x} x映射成特征空间中的特征向量 ϕ ( x ) \phi(\mathbf{x}) ϕ(x),下同。
  • SVDD
    目标函数为:
    min ⁡ R , a , ξ R 2 + C ∑ i = 1 n ξ i \min_{R, \mathbf{a}, \xi} \quad R^2 + C \sum_{i=1}^n \xi_i R,a,ξminR2+Ci=1nξi
    约束条件:
    ∥ ϕ ( x i ) − a ∥ 2 ≤ R 2 + ξ i , ξ i ≥ 0 \|\phi(\mathbf{x}_i) - \mathbf{a}\|^2 \leq R^2 + \xi_i, \quad \xi_i \geq 0 ϕ(xi)a2R2+ξi,ξi0
    其中, a \mathbf{a} a 是超球体的中心, R R R 是半径, C C C 平衡球体体积与异常点数量。
2.3 几何直观
  • One-Class SVM
    超平面的位置由目标类数据与原点的距离决定。若数据分布集中,超平面可能远离原点;若数据分散,超平面可能靠近原点以减少误判。
  • SVDD
    超球体的大小和位置由数据的紧凑程度决定。若数据集中,超球体体积较小;若数据分散,超球体体积较大以包含更多样本。

3. 应用场景对比

场景One-Class SVMSVDD
数据分布适用于数据分布接近线性可分或具有明确方向的场景。例如,文本数据的主题分布。适用于数据分布呈团状或球状的场景。例如,图像中的物体轮廓。
异常点敏感性对异常点较敏感,因为超平面可能被离群点显著影响。对异常点较鲁棒,因为超球体可通过松弛变量排除极端值。
计算复杂度训练复杂度与样本数呈二次方关系( O ( n 3 ) O(n^3) O(n3)),适用于小样本。训练复杂度与样本数呈二次方关系( O ( n 3 ) O(n^3) O(n3)),但可通过分解算法优化。
参数调优参数 n u nu nu直接控制异常点比例,更易解释。参数 C C C和核函数参数需联合调优,对用户经验要求较高。
典型应用网络入侵检测、信用卡欺诈识别(需快速决策)。工业缺陷检测、医学影像分析(需紧凑数据描述)。

4. 如何选择?

  • 优先选择One-Class SVM
    当数据分布具有明确方向性(如文本、时序数据),或需要直接控制异常点比例时。例如,在信用卡欺诈检测中, n u nu nu参数可直接设定允许的欺诈交易比例。
  • 优先选择SVDD
    当数据分布呈团状或球状(如图像、传感器数据),或需要更紧凑的数据描述时。例如,在工业质检中,SVDD的超球体可精确圈定合格产品的特征范围。
  • 等价性场景
    若使用归一化RBF核且数据分布近似球状,两者效果接近,可根据计算效率或参数调优便利性选择。

5. 决策边界、原点与异常点

One-Class SVMSVDD 中,在特征空间中,算法所找到的超平面和超球面对应到原始空间中就是这类型状,通常是一个超曲面,称为决策边界。
现在我们考察在原始空间中三者(决策边界、原点与异常点)的位置关系。

  • One-Class SVM:原点与异常点同侧,因为超平面的设计目标是将正常数据与原点分离,异常点被视为与原点更接近的样本。
  • SVDD:原点与异常点的位置关系不确定,取决于数据分布。若原点在超球体内,异常点与原点异侧;若原点在球体外,异常点与原点同侧。
  • 选择建议
    • 若需要明确控制异常点与原点的位置关系(如同侧),优先选择 One-Class SVM。
    • 若数据分布复杂且原点位置不明确,SVDD 更灵活,但需通过数据预处理或参数调优控制原点与异常点的关系。
5.1 One-Class SVM:原点与异常点
1. 决策边界与原点的关系
  • 超平面分离
    One-Class SVM 的核心是在特征空间中寻找一个超平面,将目标类数据与原点(或其他参考点)最大化分离。其优化目标是:
    min ⁡ w , ρ , ξ 1 2 ∥ w ∥ 2 − ρ + 1 ν n ∑ i = 1 n ξ i \min_{\mathbf{w}, \rho, \xi} \quad \frac{1}{2}\|\mathbf{w}\|^2 - \rho + \frac{1}{\nu n} \sum_{i=1}^n \xi_i w,ρ,ξmin21w2ρ+νn1i=1nξi
    约束条件为:
    w T ϕ ( x i ) ≥ ρ − ξ i ( ξ i ≥ 0 ) \mathbf{w}^T \phi(\mathbf{x}_i) \geq \rho - \xi_i \quad (\xi_i \geq 0) wTϕ(xi)ρξi(ξi0)
    其中, w \mathbf{w} w是超平面的法向量, ρ \rho ρ是超平面到原点的距离。
    • 正常样本:位于超平面的一侧( w T ϕ ( x i ) ≥ ρ \mathbf{w}^T \phi(\mathbf{x}_i) \geq \rho wTϕ(xi)ρ)。
    • 原点:位于超平面的另一侧( w T ϕ ( 0 ) < ρ \mathbf{w}^T \phi(0) < \rho wTϕ(0)<ρ),因为超平面的设计目标是将正常数据与原点分隔开。
2. 异常点的位置
  • 异常点的定义
    若测试样本 x \mathbf{x} x满足 w T ϕ ( x ) < ρ \mathbf{w}^T \phi(\mathbf{x}) < \rho wTϕ(x)<ρ,则被判定为异常点。
  • 与原点的关系
    异常点位于超平面的另一侧,即与原点同侧。这是因为超平面的设计目标是将正常数据与原点分离,而异常点被视为与原点“更接近”的样本。
    • 几何直观:在二维空间中,超平面将正常数据与原点分隔,异常点位于原点所在的一侧。例如,若正常数据分布在右侧,超平面可能是一条垂直直线,原点和异常点位于左侧。
3. 核函数的影响
  • 特征空间变换
    核函数(如 RBF 核)将数据映射到高维特征空间,原点在特征空间中的位置可能与输入空间不同。例如,使用 RBF 核时,原点的特征向量可能与输入空间的原点无关。
  • 决策逻辑不变
    无论核函数如何,超平面始终将正常数据与特征空间的原点分离,异常点仍位于原点所在的一侧。
5.2 SVDD:原点与异常点
1. 决策边界与原点的关系
  • 超球体包围
    SVDD 的目标是在特征空间中找到一个最小体积的超球体,尽可能紧密地包围目标类数据。其优化目标为:
    min ⁡ R , a , ξ R 2 + C ∑ i = 1 n ξ i \min_{R, \mathbf{a}, \xi} \quad R^2 + C \sum_{i=1}^n \xi_i R,a,ξminR2+Ci=1nξi
    约束条件为:
    ∥ ϕ ( x i ) − a ∥ 2 ≤ R 2 + ξ i ( ξ i ≥ 0 ) \|\phi(\mathbf{x}_i) - \mathbf{a}\|^2 \leq R^2 + \xi_i \quad (\xi_i \geq 0) ϕ(xi)a2R2+ξi(ξi0)
    其中, a \mathbf{a} a是超球体的中心, R R R是半径。
    • 正常样本:位于超球体内( ∥ ϕ ( x i ) − a ∥ 2 ≤ R 2 \|\phi(\mathbf{x}_i) - \mathbf{a}\|^2 \leq R^2 ϕ(xi)a2R2)。
    • 原点:其位置由数据分布决定,可能在超球体内或外。
2. 异常点的位置
  • 异常点的定义
    若测试样本 x \mathbf{x} x满足 ∥ ϕ ( x ) − a ∥ 2 > R 2 \|\phi(\mathbf{x}) - \mathbf{a}\|^2 > R^2 ϕ(x)a2>R2,则被判定为异常点。
  • 与原点的关系
    • 若原点在超球体内:异常点位于球体外,与原点异侧
    • 若原点在超球体外:异常点也位于球体外,与原点同侧
    • 示例
      • 若目标类数据分布在远离原点的区域,超球体可能不包含原点,此时原点和异常点均位于球体外(同侧)。
      • 若目标类数据分布在原点附近,超球体可能包含原点,此时异常点位于球体外(异侧)。
3. 数据分布的影响
  • 原点的位置
    超球体的中心 a \mathbf{a} a和半径 R R R由数据分布决定。例如:
    • 若数据集中在原点附近, a \mathbf{a} a可能接近原点,超球体包含原点。
    • 若数据分布在远离原点的区域, a \mathbf{a} a也会远离原点,超球体可能不包含原点。
  • 异常点的位置
    无论原点是否在超球体内,异常点始终位于球体外,但与原点的相对位置取决于数据分布。
5.3 数学推导与验证
1. One-Class SVM 的决策函数
  • 函数形式
    f ( x ) = w T ϕ ( x ) − ρ f(\mathbf{x}) = \mathbf{w}^T \phi(\mathbf{x}) - \rho f(x)=wTϕ(x)ρ
    • 正常样本 f ( x ) ≥ 0 f(\mathbf{x}) \geq 0 f(x)0(位于超平面一侧)。
    • 原点 f ( 0 ) = w T ϕ ( 0 ) − ρ < 0 f(0) = \mathbf{w}^T \phi(0) - \rho < 0 f(0)=wTϕ(0)ρ<0(位于另一侧)。
    • 异常点 f ( x ) < 0 f(\mathbf{x}) < 0 f(x)<0(与原点同侧)。
2. SVDD 的决策函数
  • 函数形式
    f ( x ) = ∥ ϕ ( x ) − a ∥ 2 − R 2 f(\mathbf{x}) = \|\phi(\mathbf{x}) - \mathbf{a}\|^2 - R^2 f(x)=ϕ(x)a2R2
    • 正常样本 f ( x ) ≤ 0 f(\mathbf{x}) \leq 0 f(x)0(位于球体内)。
    • 原点 f ( 0 ) = ∥ ϕ ( 0 ) − a ∥ 2 − R 2 f(0) = \|\phi(0) - \mathbf{a}\|^2 - R^2 f(0)=ϕ(0)a2R2,其符号取决于 a \mathbf{a} a R R R
    • 异常点 f ( x ) > 0 f(\mathbf{x}) > 0 f(x)>0(位于球体外)。

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

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

相关文章

C语言基础要素(019):输出ASCII码表

计算机以二进制处理信息&#xff0c;但二进制对人类并不友好。比如说我们规定用二进制值 01000001 表示字母’A’&#xff0c;显然通过键盘输入或屏幕阅读此数据而理解它为字母A&#xff0c;是比较困难的。为了有效的使用信息&#xff0c;先驱者们创建了一种称为ASCII码的交换代…

CI/CD(九) Jenkins共享库与多分支流水线准备

后端构建 零&#xff1a;安装插件 Pipeline: Stage View&#xff08;阶段视图&#xff09;、SSH Pipeline Steps&#xff08;共享库代码中要调用sshCommond命令&#xff09; 一、上传共享库 二、Jenkins配置共享库 3、新增静态资源与修改配置 如果是docker和k8s启动&#xf…

pip安装timm依赖失败

在pycharm终端给虚拟环境安装timm库失败&#xff08; pip install timm&#xff09;&#xff0c;提示你要访问 https://rustup.rs/ 来下载并安装 Rust 和 Cargo 直接不用管&#xff0c;换一条命令 pip install timm0.6.13 成功安装 简单粗暴

详解隔离级别(4种),分别用表格展示问题出现的过程及解决办法

选择隔离级别的时候&#xff0c;既需要考虑数据的一致性&#xff0c;避免脏数据&#xff0c;又要考虑系统性能的问题。下面我们通过商品抢购的场景来讲述这4种隔离级别的区别 未提交读&#xff08;read uncommitted&#xff09; 未提交读是最低的隔离级别&#xff0c;其含义是…

NO.63十六届蓝桥杯备战|基础算法-⼆分答案|木材加工|砍树|跳石头(C++)

⼆分答案可以处理⼤部分「最⼤值最⼩」以及「最⼩值最⼤」的问题。如果「解空间」在从⼩到⼤的「变化」过程中&#xff0c;「判断」答案的结果出现「⼆段性」&#xff0c;此时我们就可以「⼆分」这个「解空间」&#xff0c;通过「判断」&#xff0c;找出最优解。 这个「⼆分答案…

深层储层弹塑性水力裂缝扩展机理

弹性与弹塑性储层条件下裂缝形态对比 参考&#xff1a; The propagation mechanism of elastoplastic hydraulic fracture in deep reservoir | International Journal of Coal Science & Technology

循环神经网络 - 机器学习任务之异步的序列到序列模式

前面我们学习了机器学习任务之同步的序列到序列模式&#xff1a;循环神经网络 - 机器学习任务之同步的序列到序列模式-CSDN博客 本文我们来学习循环神经网络应用中的第三种模式&#xff1a;异步的序列到序列模式&#xff01; 一、基本概述&#xff1a; 异步的序列到序列模式…

什么是检索增强生成(RAG)

1、什么是检索增强生成&#xff08;RAG&#xff09; 1.1 检索增强生成的概念 检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;是一种结合了信息检索和文本生成技术的新型自然语言处理方法。这种方法增强了模型的理解和生成能力。 相较于经典生成…

MATLAB 控制系统设计与仿真 - 33

状态反馈控制系统 -全维状态观测器的实现 状态观测器的建立解决了受控系统不能测量的状态重构问题&#xff0c;使得状态反馈的工程实现成为可能。 考虑到系统的状态方程表达式&#xff0c;如果{A,B}可控&#xff0c;{A,C}可观&#xff0c;且安装系统的性能指标&#xff0c;可…

企业管理系统的功能架构设计与实现

一、企业管理系统的核心功能模块 企业管理系统作为现代企业的中枢神经系统&#xff0c;涵盖了多个核心功能模块&#xff0c;以确保企业运营的顺畅与高效。这些功能模块通常包括&#xff1a; 人力资源管理模块&#xff1a;负责员工信息的录入、维护、查询及统计分析&#xff0c…

覆盖学术、职场、生活的专业计算工具

软件介绍 今天要给大家介绍一款超给力的工具软件——CalcKit 计算器。它就像是你口袋里的智能计算专家&#xff0c;轻松化解日常生活中的各类计算难题。无论是简单的数字加减乘除&#xff0c;还是复杂的专业运算&#xff0c;它都不在话下。 这款软件内置了极为强大的计算功能…

【大模型系列篇】大模型基建工程:基于 FastAPI 自动构建 SSE MCP 服务器 —— 进阶篇

&#x1f525;&#x1f525;&#x1f525; 上期 《大模型基建工程&#xff1a;基于 FastAPI 自动构建 SSE MCP 服务器》中我们使用fastapi-mcp自动挂载fastapi到mcp工具&#xff0c;通过源码分析和实践&#xff0c;我们发现每次sse请求又转到了内部fastapi RESTful api接口&…

【python】Plot a Square

文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数 更多有趣的代码示例&#xff0c;可参考【Programming】 1、功能描述 用 python 实现&#xff0c;以 A和B两个点为边长&#xff0c;方向朝 C 绘制正方形 思路&#xff1a; 计算向量 AB 和 AC。使用向…

实战打靶集锦-37-Wpwnvm

文章目录 1. 主机发现2. 端口扫描&服务枚举3. 服务探查4. 系统提权 靶机地址&#xff1a;https://download.vulnhub.com/wpwn/wpwnvm.zip 1. 主机发现 目前只知道目标靶机在192.168.37.xx网段&#xff0c;通过如下的命令&#xff0c;看看这个网段上在线的主机。 $ nmap -…

三、GPIO

一、GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口GPIO引脚电平&#xff1a;0V&#xff08;低电平&#xff09;~3.3V&#xff08;高电平&#xff09;&#xff0c;部分引脚可容忍5V 容忍5V&#xff0c;即部分引脚输入5V的电压&#xff0c;…

混杂模式(Promiscuous Mode)与 Trunk 端口的区别详解

一、混杂模式&#xff08;Promiscuous Mode&#xff09; 1. 定义与工作原理 定义&#xff1a;混杂模式是网络接口的一种工作模式&#xff0c;允许接口接收通过其物理链路的所有数据包&#xff0c;而不仅是目标地址为本机的数据包。工作层级&#xff1a;OSI 数据链路层&#x…

[dp5_多状态dp] 按摩师 | 打家劫舍 II | 删除并获得点数 | 粉刷房子

目录 1.面试题 17.16. 按摩师 题解 2.打家劫舍 II 题解 3.删除并获得点数 题解 4.粉刷房子 题解 一定要有这样的能力&#xff0c;碰到一个新题的时候&#xff0c;可以往之前做过的题方向靠&#xff01; 打家劫舍问题模型: 不能选择相邻的两个数&#xff0c;并且要最终…

DM数据库配置归档模式的两种方式

归档模式&#xff0c;联机日志文件中的内容保存到硬盘中&#xff0c;形成归档日志文件(REDO日志)。 采用归档模式会对系统的性能产生些许影响&#xff0c;然而系统在归档模式下运行会更安全&#xff0c;当 出现故障时其丢失数据的可能性更小&#xff0c;这是因为一旦出现介质故…

Agent TARS与Manus的正面竞争

Agent TARS 是 Manus 的直接竞争对手&#xff0c;两者在 AI Agent 领域形成了显著的技术与生态对抗。 一、技术架构与功能定位的竞争 集成化架构 vs 模块化设计 Agent TARS 基于字节跳动的 UI-TARS 视觉语言模型&#xff0c;将视觉感知、推理、接地&#xff08;grounding&#…

【Tauri2】013——前端Window Event与创建Window

前言 【Tauri2】012——on_window_event函数-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146909801?spm1001.2014.3001.5501 前面介绍了on_window_event&#xff0c;这个在Builder中的方法&#xff0c;里面有许多事件&#xff0c;比如Moved&#xff0c;Res…