首页 > 其他分享 >支持向量机(Support Vector Machine,SVM)

支持向量机(Support Vector Machine,SVM)

时间:2024-07-08 15:01:22浏览次数:10  
标签:SVM mathbf Support Machine xi 超平面 alpha 向量

支持向量机(Support Vector Machine,简称SVM)是一种监督学习模型,主要用于分类和回归分析

SVM的基本思想是寻找一个决策边界或超平面,使得两类样本之间的间隔最大化

这个间隔被定义为支持向量到超平面的最短距离,而支持向量就是那些恰好位于间隔边缘上的训练样本点。

线性可分情况下的SVM

假设我们有一组训练数据 ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) (x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n) (x1​,y1​),(x2​,y2​),…,(xn​,yn​) ,其中 x i x_i xi​ 是输入特征向量, y i y_i yi​ 是对应的输出标签( + 1 +1 +1 或 − 1 -1 −1 )。

SVM试图找到一个最优超平面 w T x + b = 0 \mathbf{w}^T \mathbf{x} + b = 0 wTx+b=0 来区分这两类数据,其中 w \mathbf{w} w 是权重向量, b b b 是偏置项。

最大间隔超平面公式

为了找到最大间隔超平面,我们需要满足以下条件:
y i ( w T x i + b ) ≥ 1 y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 1 yi​(wTxi​+b)≥1

这表示对于所有的训练样本,它们都必须正确分类并且与决策边界保持至少单位距离。

这个距离由 1 ∣ ∣ w ∣ ∣ \frac{1}{||\mathbf{w}||} ∣∣w∣∣1​ 给出,因此我们的目标是最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||\mathbf{w}||^2 21​∣∣w∣∣2 同时满足上述不等式约束。

公式解释
  • w \mathbf{w} w :权重向量,决定了超平面的方向。
  • b b b :偏置项,决定了超平面的位置。
  • x i \mathbf{x}_i xi​ :第 i i i 个训练样本的特征向量。
  • y i y_i yi​ :第 i i i 个训练样本的标签,取值为 + 1 +1 +1 或 − 1 -1 −1 。
  • ∣ ∣ w ∣ ∣ ||\mathbf{w}|| ∣∣w∣∣ :权重向量的范数,用于度量向量的长度。

软间隔SVM

在实际问题中,数据可能不是完全线性可分的,此时可以允许一些样本点跨越决策边界,这就是所谓的软间隔SVM。

为此,我们引入松弛变量 ξ i \xi_i ξi​ 和惩罚参数 C C C ,并最小化以下目标函数:
1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i \frac{1}{2}||\mathbf{w}||^2 + C\sum_{i=1}^{n}\xi_i 21​∣∣w∣∣2+Ci=1∑n​ξi​
同时满足:
y i ( w T x i + b ) ≥ 1 − ξ i y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 1 - \xi_i yi​(wTxi​+b)≥1−ξi​
ξ i ≥ 0 \xi_i \geq 0 ξi​≥0

核技巧

数据不是线性可分时,SVM通过核函数(Kernel Function)将原始低维特征空间映射到高维特征空间,在高维空间中找到一个线性超平面来实现分类。

常用的核函数包括多项式核、高斯核(RBF核)、Sigmoid核等。

核函数公式

K ( x , x ′ ) = ϕ ( x ) T ϕ ( x ′ ) K(\mathbf{x}, \mathbf{x}') = \phi(\mathbf{x})^T\phi(\mathbf{x}') K(x,x′)=ϕ(x)Tϕ(x′)

其中, ϕ \phi ϕ 表示从原始特征空间到高维特征空间的映射函数, K K K 是核函数,它直接计算两个向量在高维空间中的内积。

拉格朗日乘子法

SVM的优化问题通常通过拉格朗日乘子法转化为对偶问题来解决,对偶问题的形式为:
max ⁡ α W ( α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n y i y j α i α j K ( x i , x j ) \max_{\alpha} W(\alpha) = \sum_{i=1}^{n}\alpha_i - \frac{1}{2}\sum_{i,j=1}^{n}y_iy_j\alpha_i\alpha_jK(\mathbf{x}_i,\mathbf{x}_j) αmax​W(α)=i=1∑n​αi​−21​i,j=1∑n​yi​yj​αi​αj​K(xi​,xj​)

其中, α i \alpha_i αi​ 是Lagrange乘子,且需满足KKT条件。

这些公式和概念构成了SVM的基础,通过调整参数和选择合适的核函数,SVM可以非常有效地处理复杂的数据分类问题。

标签:SVM,mathbf,Support,Machine,xi,超平面,alpha,向量
From: https://blog.csdn.net/weixin_50569789/article/details/140253941

相关文章

  • spring statemachine
    进行状态转化的逻辑:org.springframework.statemachine.support.ReactiveStateMachineExecutor#queueEventFlux<Message<E>>messages=Flux.merge(message,Flux.fromIterable(deferList)); MonoSinkStateMachineExecutorCallbacktriggerCallback=newMonoSinkSt......
  • Fundamentals of Machine Learning for Predictive Data Analytics Algorithms, Worke
    主要内容:本书介绍了机器学习在预测数据分析中的基本原理、算法、实例和案例研究,涵盖了从数据到决策的整个过程。书中涉及机器学习项目生命周期的各个方面,包括数据准备、特征设计和模型部署。结构:本书分为五个部分,共计14章和若干附录:引言(IntroductiontoMachineLearn......
  • 6CCS3ML1 Machine Learning
    6CCS3ML1 (Machine Learning)Coursework 1(Version 1.5)1 OverviewFor this coursework, you will have to implement a classifier. You will use this classifier in some code that has to make a decision.  The code will be controll......
  • 在 Windows 操作系统中,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tc
    在Windows操作系统中,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下的两个重要参数控制着TCP/IP协议栈的行为。这些参数可以通过注册表来配置,影响网络连接和端口资源的管理。1.MaxUserPort路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe......
  • 在注册表路径 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager
    在注册表路径HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SessionManager\MemoryManagement下的LargeSystemCache键控制着操作系统如何管理系统缓存和内存分配,不同的数值对应不同的行为和设置。LargeSystemCache参数详解0(默认值):效果:系统将系统缓存减少到最......
  • 在注册表路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Man
    在注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement下的DisablePagingExecutive键控制着操作系统内核数据是否允许分页到页面文件中。这个设置对系统性能和稳定性有重要影响,特别是在高负载和内存紧张的情况下。DisablePagi......
  • 使用Python和scikit-learn实现支持向量机(SVM)
            支持向量机(SupportVectorMachine,SVM)是一种强大的监督学习算法,广泛用于分类和回归问题。它能够有效处理线性和非线性数据,并在复杂数据集中表现出色。本文将介绍如何使用Python和scikit-learn库实现SVM,以及如何通过可视化不同参数设置来理解其工作原理。一、......
  • 极限学习机(Extreme Learning Machine,ELM)及其Python和MATLAB实现
    极限学习机(ExtremeLearningMachine,ELM)是一种快速而有效的机器学习算法,最初由马洪亮等人于2006年提出。ELM是一种单隐层前馈神经网络,其背景源于对传统神经网络训练过程中反向传播算法的改进与优化。相比传统神经网络,ELM在网络训练速度上具有明显优势,同时在一些实际应用中取得......
  • 通过SVM算法使失衡数据达到最佳性能
      目录1.读取数据并预处理2.下采样3.数据切分4.使用SVM算法5.测试6.绘制AUC-ROC曲线 本代码所使用的数据集中,标签为1的数据仅有五千多条,而标签为0的数据有二十八万条。为了使数据集中我们最关注的标签1的预测成功的概率,即1的召回率尽量更高,本代码将采用SVM算法提......
  • Derect local .aar file dependencies are not supported when building an AAR
    背景项目中需要将部分功能业务打包成aar包供其它项目调用,我引入了fataar(具体使用方式见github)。实际打包过程中抛出错误Derectlocal.aarfiledependenciesarenotsupportedwhenbuildinganAAR原因分析我们项目中lib文件夹下导入了很多jar包、aar包,在之前没有引入aar包......