机器学习之支持向量机(SVM)

SVM 支持向量机算法(Support Vector Machine )【Python机器学习系列(十四)(1) 在深度学习出现之前,支持向量机 被称为表现最好的算法。支持向量机算法适用于一些复杂数据的分类。现在更多用的是深度学习,深度学习的效果大于SVM。但是SVM作为经典算法,还是十分重要,是学习机器学习过程的必修内容。SVM具有两个特点:1.适合小样本。2.数学逻辑优美。支持向量机算法分为线性可分的支持向量机和非线性可分的支持向量机。线性可分样本集:只要我们可以用一条直线可以把样本集的两类完全分开,就可以将其称为线性可分样本集。反之,称为非线性可分样本集。 阅读详情

支持向量机(SVM)

假设函数:

形式

在这里插入图片描述

与神经网络的两点区别:

1.代价函数
在这里插入图片描述

可以从这个对比上看出原来的神经网络是对数形式的sigmoid函数我们将其替换为cost1和cost0,分别意味着预测结果距离1的代价和距离0的代价。

在这里插入图片描述

新代价函数图形,当距离足够远时直接令Z=0;

2.C的引入

正则化项前不再拥有参数λλλ,反而是预测项拥有了系数C,我们这里可以把C理解为1/λ1/λ1/λ。

大间距分类器

在这里插入图片描述

如图的一组正负样本,SVM所做的正式那条黑色的直线,尽力以最大的间距将两组数据分割开来(可以理解为到蓝色的直线的距离)

数学理解

在这里插入图片描述

为何能进行大间距分类?

我们将θT∗Xθ^T*XθT∗X看成向量内积的形式,那么其也可以写成P×∣∣θ∣∣P×||θ||P×∣∣θ∣∣的形式,其中P为X在θ方向上的投影,因为我们想要我们的代价函数取最小值,所以我们会令P×∣∣θ∣∣P×||θ||P×∣∣θ∣∣的绝对值尽量大,在θ不变的情况下,即令P的值尽量大

在这个示例里我们会让θ尽量贴近于坐标轴,而分割线则会垂直于坐标轴。

核函数(kernel)

引入

为了解决复杂的非线性分类问题

在这里插入图片描述

如图所示,如果想要解决这种问题,用神经网络的方法是将原来的特征进行排列组合,引入大量的多项式比如x12,x2x3x_1^2,x_2x_3x12​,x2​x3​作为新的特征,但是这样会拖慢计算机的运行速度。

在SVM中我们引入了新的构造特征值的方法,即利用核函数。

也可理解为相似函数

给定一个训练样本x,我们利用x的各个特征与我们预先选定的地标(landmarks)l1,l2,l3l_1,l_2,l_3l1​,l2​,l3​的近似程度来选取新的特征。

高斯核函数:

在这里插入图片描述

当x与l1l_1l1​靠近时,f1f_1f1​的值趋近于1

当x与l1l_1l1​远离时,f1f_1f1​的值趋近于0

实例

在这里插入图片描述

对于如图的模型,假设我们训练出的参数如上,那最终我们会形成这样的分类效果。

特征点的选取

若训练集有m个样本,则选取m个特征点

对每一个样本都对其他所有点取高斯核函数,那么每一个点都可以形成一个这样的m维特征向量

在这里插入图片描述

方程进化

我们的代价函数也会相应地变成这样:

在这里插入图片描述

这时我们的判断就是当θTf(i)>0θ^Tf^{(i)}>0θTf(i)>0时,predict y=1

当θTf(i)<0θ^Tf^{(i)}<0θTf(i)<0时,predict y=0

有时我们也会用θT∗M∗θθ^T*M*θθT∗M∗θ来代替θ2θ^2θ2,其中M的值取决于核函数

这样做的目的是简化计算,提高运行时的速度

参数选择

因为C=1/λC=1/λC=1/λ

所以C过大,意味着λ偏小,可能导致高方差,过拟合

所以C过大,意味着λ偏大,可能导致高偏差,欠拟合

在这里插入图片描述

σ的大小和核函数的平滑程度有关

而σ过大,意味着高偏差,欠拟合

而σ过小,意味着高方差,过拟合

参考正态分布图像

线性核函数

即不适用核函数的情况‘

因为它的作用是仅仅提供一个线性分类器,因此得名

适用于有大量特征值和很少数据集的情况

应用

多类分类问题

可以应用one vs all的方法,也可以直接调用SVM软件库里的多分类器(一般会有)

需要做的事

  1. 确定参数C
  2. 选择恰当的核函数(一般是高斯或线性)

算法选择

n为特征数,m为训练样本数。

SVM的速度主要取决于m的大小,逻辑回归速度取决于n的大小

  1. n>>m,即训练集数据量不够支持我们训练一个复杂的非线性模型

    我们选用逻辑回归模型或者不带核函数的支持向量机。

  2. 如果n较小,而且m大小中等

    例如n在 1-1000 之间,而m在10-10000之间

    使用高斯核函数的支持向量机。

  3. 如果n较小,而m较大,例如n在1-1000之间,而m大于50000

    则使用支持向量机会非常慢,解决方案是创造、增加更多的特征

    然后使用逻辑回归或不带核函数的支持向量机。

另这些情况使用训练得当的神经网络都会得到恰当的结果

但是比如上面第二种种情况SVM的速度会远快于神经网络

机器学习:支持向量机(SVM)详解与实战 支持向量机(Support Vector Machine,简称 SVM)是一种常用于分类和回归任务的监督学习算法。它的核心思想是通过在特征空间中找到一个能够最大化分类间隔的超平面,将不同类别的数据分离开来。SVM的目标是找到一个最优的决策边界(即超平面),使得分类间隔(即边界到各类别数据点的最小距离)最大化。SVM可以处理线性可分和线性不可分的数据集。 阅读详情

相关推荐

机器学习:Python中如何使用支持向量机(SVM)算法

(简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资)在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类(异常值检测)以及回归分析。其具有以下特征:(1)SVM可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。(2) SVM通过最大化决策边界的边缘来实现控制模型的能力。

AI333888的博客 4015

【应用篇】支持向量机SVM识别数字集(数据采集+模型训练+预测输出)

使用SVM和OPNECV做了简单的数字识别和采集,电赛可用版

拨雪寻春,烧灯续昼 7704

机器学习之SVM支持向量机

机器学习之SVM支持向量机 SVM是由模式识别中广义肖像算法发展而来的分类器。支持向量的概念在二十世纪六十年代就已经出现,但支持向量机在1995年才正式发表,并由于在文本分类任务中性能卓越,随后就开始大火大火啦——直到2012年深度学习神经网络的发展才将这团火给慢慢扑灭,当然目前应用它的地方还是挺多的。所有呢,支持向量机是机器学习中比较重要的算法,也是面试中会常被问到的问题。 支持向量机包括: 线...

蜗牛遥遥 1554

支持向量机练习

支持向量机 1.支持向量机最简单的情况是线性可分支持向量机,或硬间隔支持向量机。构建它的条件是训练数据线性可分。其学习策略是最大间隔法。可以表示为凸二次规划问题,其原始最优化问题为 min⁡w,b12∥w∥2\min _{w, b} \frac{1}{2}\|w\|^{2}w,bmin​21​∥w∥2 s.t.yi(w⋅xi+b)−1⩾0,i=1,2,⋯ ,Ns.t. \quad y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \c

helldoger的博客 1400

机器学习笔记 - 支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)是一个功能强大并且全面的机器学习模型,它能够执行线性或非线性分类、回归,甚至是异常值检测任务。它是机器学习领域最受欢迎的模型之一,任何对机器学习感兴趣的人都应该在工具箱中配备一个。SVM特别适用于中小型复杂数据集的分类。 通常SVM用于二元分类问题,对于多元分类可将其分解为多个二元分类问题,再进行分类,主要的应用场景有图像分类、文本分类、面部识别、垃圾邮件检测等领域。

学以致用 知行合一 6020

机器学习算法之——支持向量机(Support Vector Machine, SVM)

支持向量机(Support Vector Machine, SVM)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。 关键字:软间隔、KKT条件、对偶问题、拉格朗日乘子

迈微AI研习社 · 号主 3808

机器学习——支持向量机的训练

(2)改进的模型可处理非线性问题,包括多分类SVM、概率SVM、最小二乘SVM、结构化SVM、多核SVM等。(2)对于给定的经验风险,得到的判别函数使得置信范围最小,即能达到这个经验风险最简单的函数。gamma值越小,RBF内核的直径越大,有更多的点被模型圈进决定边界中,因此边界越圆滑;C越小模型越受限(即单个数据对模型的影响越小),模型越简单;(1)对于确定VC维的函数子集,可以找到经验风险最小的函数;C越大每个数据点对模型的影响越大,模型越复杂。(1)标准的SVM仅可处理线性二分类问题;

qq_53142796的博客 889

鸿蒙平板PC应用开发:在termux中安装ubuntu

打开AVNC点击右上角的设置图标,然后点击 输入 , 点击手势栏目中的 单指轻扫 ,选择滚动远程内容

DMZDAMS的博客 5202

SVM 支持向量机算法(Support Vector Machine )【Python机器学习系列(十四)】

SVM 支持向量机算法(Support Vector Machine )【Python机器学习系列(十四)】 1.SVM简介2. SVM 逻辑推导2.1 Part1 化简限制条件2.2 Part2 SVM拉格朗日乘子法求解2.3 Part3 求解超平面3.核函数4. 软间隔支持向量机5. 支持向量回归 SVR6.python实现支持向量机6.1 方法详解6.2 案例展示...

侯小啾技术博客 4596

告别串口助手!手把手教你用Matlab直接读取STM32的传感器数据(附完整代码)

本文详细介绍了如何利用Matlab直接与STM32进行串口通信,实现传感器数据的实时采集与分析。通过完整的代码示例和系统架构设计,帮助开发者告别传统的串口助手工具链,打造高效、自动化的数据采集系统。文章涵盖了从硬件配置、通信协议设计到Matlab数据处理与可视化的全流程,特别适合嵌入式开发与数据分析结合的实践场景。

weixin_42629671的博客 430

别再踩坑了!CAPL脚本里局部变量和全局变量的那些“怪事”(附CANoe实测代码)

本文深度解析CAPL脚本中局部变量和全局变量的特殊机制,揭示其与通用编程语言的差异。通过实测代码展示静态局部变量的默认行为和全局变量的节点隔离特性,并提供高效避坑指南,帮助汽车网络测试工程师避免常见陷阱。

weixin_30225755的博客 294

【机器学习】机器学习之SVM支持向量机

本次实验聚焦支持向量机(SVM)算法在鸢尾花数据集上的分类任务,特别关注加入和未加入松弛因子的分类效果。通过深入了解SVM的原理和参数设置,我首先训练了一个未加入松弛因子的模型,然后引入了松弛因子,以探索其对分类结果的影响。松弛因子允许样本存在于超平面错误的一侧,增加了模型的容错能力,使其对噪声或异常值更具鲁棒性。

朝花夕拾 2万+

【考研高数-高等数学-基础】第一章 函数、极限、连续

第一章 函数、极限、连续 第二章 导数与微分 第三章 微分中值定理及导数应用 第四章 不定积分 第五章 定积分与反常积分 第六章 定积分的应用 第七章 微分方程 第八章 多元函数微分学 第九章 二重积分 第十章 无穷级数 第十一章 向量代数与空间解析几何及多元微分学在几何上的应用 第十二章 多元积分学及其应用 难题: 极限的递推 微分中值定理的证明题 定积分的不等式和等式的证明 重积分的不等式和等式的证明 线面积分的不等式和等...

刘鑫磊 2034

【机器学习算法】支持向量机(support Vector Machine,SVM)

支持向量机SVM概述,核函数特征转换处理非线性问题,多分类SVM问题

qq1021091799qq的博客 3182

重回童年的经典系列☀️|【炸弹人小游戏】制作过程+解析 | 收藏起来跟曾经的小伙伴一起梦回童年!

Unity,小游戏开发。 本篇文章对童年经典小游戏——炸弹超人进行制作和解析。不知道有没有勾起你童年的回忆呢!快来和我一起制作这个童年经典的小游戏吧! 敬请品尝!

努力前行,总会成为自己心中的那道光 13万+

2025.06.06【Ribo-seq】|riboWaltz:P-site定位与三碱基周期性分析流程

同学们,大家好!今天我们要学习的是riboWaltz——一款专为Ribo-seq(核糖体足迹测序)数据设计的R包,主要用于P-site定位优化和三碱基周期性分析。P-site的准确定位是Ribo-seq下游所有翻译组学分析的基础,riboWaltz为我们提供了系统、可视化、易用的解决方案。P-site定位优化:自动识别不同长度RPF的最佳P-site偏移量。三碱基周期性分析:可视化RPF在CDS、UTR等区域的分布,评估数据质量。多样本/多条件支持:可同时处理多个样本,便于批量分析和对比。

1796

【机器学习】支持向量机SVM-详解

SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大。SVM能够执行线性或非线性分类、回归,甚至是异常值检测任务。是机器学习领域最受欢迎的模型之一。SVM特别适用于中小型复杂数据集的分类。

2201_75415080的博客 3668

OpenGL ES 3.0 开发(一):绘制一个三角形

该原创文章首发于微信公众号:字节流动 什么是 OpenGLES OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是一个跨编程语言、跨平台的编程接口规范,主要应用于嵌入式设备,如手机、平板等。由科纳斯(Khronos)组织定义和推广,科纳斯是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。 O...

字节流动 8万+

【机器学习】支持向量机SVM及实例应用

【机器学习】支持向量机1.分类超平面与最大间隔       上图是一个关于机器学习算法的时间线来自于Eren Golge。可以看出SVM旺盛的生命力。实际上,即使是深度学习非常火热的今天,SVM依然盛行。在一些小样本分类问题上,SVM表现非常好,用深度学习模型可能反而会使问题变得更复杂。    下面开始介绍SVM--支持向量机。1.分类超平面与最大间隔    给定训练样本集 D ={ (X1 ,Y...

gogo小Sa的专栏 8万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

机器学习——支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)是一种基于统计学习理论的机器学习算法,它是由Vapnik和Cortes于1995年提出的。SVM是一种二类分类模型,它的基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略就是间隔最大化,同时它还能够应用于回归问题(SVR,Support Vector Regression)。支持向量机(SVM)是一种强大的机器学习算法,广泛应用于分类和回归任务。它的核心思想是在特征空间中找到一个最优的超平面,使得不同类别的数据点能够被最佳地分隔。

智能2212-45-杨豪 1859

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【机器学习】12.十大算法之一支持向量机(SVM - Support Vector Machine)算法原理讲解

支持向量机(SVM)是一种高效的监督学习算法,广泛应用于分类和回归问题。它通过在特征空间中寻找一个最优的超平面来区分不同类别的数据点,目标是最大化两类数据点之间的间隔,从而提高模型的泛化能力。SVM的关键概念包括超平面、间隔、支持向量以及核函数,其中核函数允许SVM处理非线性问题,通过将数据映射到更高维的空间来寻找线性可分的超平面。此外,软间隔和正则化技术用于处理数据的非完全线性可分性,同时控制模型复杂度,防止过拟合。

weixin_50804299的博客 3545

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【机器学习】SVM 支持向量机

具体而言,SVM首先将数据映射到高维空间,并在该空间中找到一个最优的超平面,使得该超平面能够将不同类别的数据点有效地分开。其中,对于最优超平面的定义是使得间隔最大化,即离超平面最近的数据点到超平面的距离最大化。用于计算核函数值的函数,其实现了线性核和径向基函数(RBF)核。高斯核函数是一种常用的非线性核函数,它通过计算数据点之间的相似度来建模非线性关系。线性核函数是 SVM 默认的核函数,它对应于线性分类器。SVM最终分类的过程是将新的数据点映射到高维空间,并根据其位置与最优超平面的关系来进行分类。

慢热型网友的博客 1692

C/C++开发,opencv-ml库学习,支持向量机(SVM)应用

基于MNIST 数据集(手写数字识别)学习SVM(支持向量机)模型的数据集处理、模型训练、模型测试、模型调用全过程,给出完整编译过程及全代码。

技术需要分享 2945

机器学习——支持向量机SVM之线性模型

一、没有免费的午餐定理 二、支持向量机SVM(support vector machine) 1、线性模型和非线性模型 2、如何在线性模型中画出一条直线(优化过程——vplink) 1)多少条? 2)如何画出最好的直线? 3、如何去描述这个优化的过程(数学描述) 1)几个重要的名词(间隔、支持向量) 2)一些定义(训练数据、标签、超平面等) 3)机器学习的任务与步骤 三、支持向量机的优化问题 1、优化问题(怎么将问题转化为最优化问题?) 2、转化为最优化问题的过程? 1)由支持向量

python_AI_fans的博客 3994
上一篇: 机器学习之诊断法
下一篇: 机器学习之聚类
jokersio
博客等级 码龄8年 14粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值