支持向量机的原理

一、什么是支持向量机  支持向量机(supportvectormachine,简称SVM)是一种基于统计学习理论的新型学习机,是由前苏联教授Vapnik最早提出的。与传统的学习方法不同,支持向量机是结构风险最小化方法的近似实现。这个归纳原理是基于这样的事实,学习机器在测试数据上的误差率(即泛化误差率)以训练误差率和一个依赖于Vc维数(Vapnik-Chervonenkisdimensio…

大家好,又见面了,我是你们的朋友全栈君。

一、什么是支持向量机

  支持向量机(support vector machine,简称SVM)是一种基于统计学习理论的新型学习机,是由前苏联教授Vapnik最早提出的。与传统的学习方法不同,支持向量机是结构风险最小化方法的近似实现。这个归纳原理是基于这样的事实,学习机器在测试数据上的误差率(即泛化误差率)以训练误差率和一个依赖于Vc维数(Vapnik-Chervonenkis dimension)的项的和为界;在可分模式情况下,支持向量机对于前一项的值为零,并且使第二项最小化。因此,尽管支持向量机不利用问题的领域知识,在模式分类问题上,仍能提供好的泛化性能,这个属性是支持向量机特有的。其实现的是如下的思想:通过某种事先选择的非线性映射将输入向量x映射到一个高维特征空间z,在这个空间中构造最优分类超平面,从而使正例和反例样本之间的分离界限达到最大。从概念上说,支持向量是那些离决策平面最近的数据点,它们决定了最优分类超平面的位置。

二、支持向量机的原理

 超平面和最近的数据点之间的间隔被称为分离边缘,用P表示。支持向量机的目标是找到一个特殊的超平面,对于这个超平面分离边缘P最大。在这个条件下,决策曲面称为最优超平面。下图是二维输入空间中最优超平面的几何结构。

                        支持向量机的原理

基本上,支持向量机的思想建立在两个数学运算上,概述如下
 1) 输入向量到高维特征空间的非线性映射,特征空间对输入和输出都是隐藏的
 2)  构造一个最优超平面用于分离在上一步中发现的特征。

三、支持向量机的算法

 比较经典的如

1)Vapnik提出的Chunking方法;其出发点是删除矩阵中对应Lagrange乘数为零的行和列将不会影响最终结果,然而,在训练集的支持向量数很大的时候,Chunking算法仍然无法将矩阵放入内存中。

2)Qsuna提出的Qsuna算法;该算法存在效率问题,因为在每一步中,进行一次QP问题的最优化只能使一个样本符合Kuhn-Tucker条件。

3)Plat提出的序贯最小优化方法(sequential minimal optimization,简称SMO);将一个大型的QP问题分解为一系列最小规模的QP子问题,即仅具有两个Lagrange乘数的QP问题,从而使得原问题可以通过分析的方法加以解决,避免了在内循环中使用数值算法进行QP最优化。该算法在训练线性SVM时,可以获得非常好的性能。

四、支持向量机的几种内积核函数

   1)多项式学习机

  2)径向基函数网络

  3)两层感知器

支持向量机的原理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125223.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 编程,向内存0:200~0:23F依次传送数据_写出汇编语言中mov和add指令格式

    编程,向内存0:200~0:23F依次传送数据_写出汇编语言中mov和add指令格式题目要求向内存0:200~0:23f依次传送数据0~63(3fh)分析0:200~0:23f也就是0000:0200~00000:023f运行结果代码;向内存0:200~0:23f依次传送数据0~63(3fh);分析0000:0200~00000:023f;assumecs:codecodesegment movax,0h movds,ax movbx…

    2022年9月20日
    2
  • ScheduledExecutorService 实现定时任务「建议收藏」

    ScheduledExecutorService 实现定时任务「建议收藏」ScheduledExecutorService实现定时任务一、背景二、ScheduledExecutorService(java.util.concurrent并发包引进)附:代码1.Main.java2.TaskService.java3.application.ymlGitHub:link. 欢迎star一、背景项目升级版本之后,新加了一些需求,其中有一个需要每天定时清理数据的业务逻辑。第一时间想到的实现方法是while循环里做sleep,想想好像有点low,就特此了解了一些Java实现定

    2022年6月2日
    50
  • Rpc接口压测_rpc服务接口测试

    Rpc接口压测_rpc服务接口测试前言哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(^▽^)PS:有问题可以联系我们哦vceshiren001复制“下方链接”,提升测试核心竞争力!更多技术文章分享和免费资料领取现今有比较多的rpc框架应用于实际的生产中,像比较流行的Dubbo、Motan、Thrift、Grpc等。今天作者将以最近项目中用到的grpc为例,结合jmeter来介绍下rpc压测实施步骤。学习本文前需对rpc框架、jmeter有个大致的了解,知道rpc如何用工具生成各种语言的代码。Grpc本身是支持很多种语言的,而jm

    2022年10月13日
    3
  • Mybatis延迟加载和查询缓存

    Mybatis延迟加载和查询缓存Mybatis延迟加载和查询缓存

    2022年4月22日
    41
  • 一些基本数字图像处理算法

    一些基本数字图像处理算法一些基本数字图像处理算法所有的图像算法都在DIPAlgorithm类中,并且所有算法都为抽象成员函数。我已经按照java注释规范为所有方法添加使用说明注释,具体实现可见于DIPAlgorithm.java,这里只做算法说明。1图像扭曲模仿PS的扭曲功能,通过建立一个三角形映射网格实现对图像的扭曲。如上图,一共设置了45个控制点围成74个三角形网格扭曲即形变处理其实是寻找一个函数,以所…

    2022年5月13日
    43
  • Flask—jsonify方式(api接口)「建议收藏」

    Flask—jsonify方式(api接口)「建议收藏」GET方法post方法PUT方法DELETE方法GET方法fromflaskimportFlask,jsonify,abort,make_responseapp=Flask(__name__)articles=[{‘id’:1,’title’:’thewaytopyt…

    2022年5月10日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号