SVM

支持向量机(SVM),是一个用于解决二分类问题的有监督机器学习模型。

1.SVM的两个优点

  • 更高的速度

  • 在有一定的样本数量支持下(成千上万张),具有比其他模型有更好的效果

2.SVM的工作过程

2.1.线性数据

为了更好地理解SVM的工作流程,我们引入一个例子。假如在一个\(xy\)坐标系上有很多红色和蓝色的点,将这些点看作是我们要处理的两个(categories)类别(red,blue),而我们的数据具有两个(features)特征\(x\)和\(y\),我们想要找到一个(classifier)判别器,当我们给定一个坐标\((x,y)\),判别器会给出    该坐标所属的类别\(red\)或\(blue\),具体描述如下图。



SVM对于以上给定的数据点,能够给出一条最好的划分两个样本的直线,使得直线的一边全部都是\(red\),另一边全部都是\(blue\)。



但是,能够划分的直线有无数条,那一条才是最好的呢?对于SVM来说,最好的划分直线就是让两边最近的点离直线的距离最近。如图所示



2.2.非线性数据

对于线性数据来说,很容易就找到了最优分割线,但对于一些非线性数据来说,用线性分割线来分割就显得比较困难了。如下



在二位坐标\(xy\)上,想找到一条分割线来进行分割两个类别是非常困难的。所以我们增加一个坐标系\(z\),我们令\(z=x^2+y^2\),将原来二维的数据映射到三维空间上,如下图



这样,我们就可以巧妙地用一个平面分割两个类别的数据。我们来看一下



将它重新映射回二位平面上



由此,我们就可以轻松地找到一个分割线来分割两个类别

原来是在二维平面上找 a · b = xa · xb  +  ya · yb +  (xa² + ya²) · (xb² + yb²) 找\(x\)和\(y\)的最优解,转化成在三位空间中找 a · b = xa · xb  +  ya · yb  +  za · zb 找\(x\)和\(y\)的最优解

所以,对于一些非线性的数据来说,增加一个维度进行计算是SVM常用的方法

SVM简要介绍的更多相关文章

  1. 简要介绍BASE64、MD5、SHA、HMAC几种方法。

    加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了.     言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书.     ...

  2. [转]Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划

    转自:Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划 前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了Surfa ...

  3. [转] Android资源管理框架(Asset Manager)简要介绍和学习计划

    转自:http://blog.csdn.net/luoshengyang/article/details/8738877 Android应用程序主要由两部分内容组成:代码和资源.资源主要就是指那些与U ...

  4. Activity启动过程简要介绍

    无论是通过点击应用程序图标来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都要借助于应用程序框架层的ActivityManagerSe ...

  5. Android应用程序的Activity启动过程简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853 在Android系统中,Activ ...

  6. Dalvik虚拟机简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8852432 我们知道,Android应用程序是 ...

  7. Android资源管理框架(Asset Manager)简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8738877 Android应用程序主要由两部分 ...

  8. Android应用程序组件Content Provider简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6946067 在Android系统中,Conte ...

  9. Android窗口管理服务WindowManagerService的简要介绍和学习计划

    在前一个系列文章中,我们从个体的角度来分析了Android应用程序窗口的实现框架.事实上,如果我们从整体的角度来看,Android应用程序窗口的 实现要更复杂,因为它们的类型和作用不同,且会相互影响. ...

随机推荐

  1. MKL库奇异值分解(LAPACKE_dgesvd)

    对任意一个\(m\times n\)的实矩阵,总可以按照SVD算法对其进行分解.即: \[A = U\Sigma V^T \] 其中\(U.V\)分别为\(m\times m.n\times n\)的 ...

  2. zookeeper篇-zk的选举机制

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 说说zk的选举机制 基础概念 zxid=事务id=一个时间戳,代表当前事 ...

  3. Swift字符串操作-持续更新-2022

    Swift字符串追加 var str = "OC" str.append(" Swfit") print(str) // 输出结果: OC Swift 输出结果 ...

  4. django-rest-framework 基础二 序列化器和路由

    django-rest-framework 基础二 序列化器和路由 目录 django-rest-framework 基础二 序列化器和路由 1. 序列化器 1.1 Serializer的使用 1.2 ...

  5. form表单与CSS选择器和样式操作

    form表单 """获取前端用户数据并发送给后端服务器""" <form action=""></fo ...

  6. 三个小项目入门Go语言|字节青训营笔记

    前言 这是青训营的第一课,今天的课程比较快速的讲解了go语言的入门,并配合三个小的项目实践梳理所学知识点,这里详细回顾一下这三个项目,结合课后作业要求做一些代码补充,并附上自己的分析,青训期间的所有课 ...

  7. 没想到吧!这个可可爱爱的游戏居然是用 ECharts 实现的!

    摘要:echarts 是一个很强大的图表库,除了我们常见的图表功能,还可以自定义图形,这个功能让我们可以很简单地在画布上绘制一些非常规的图形,基于此,我们来玩一些花哨的:做一个 Flappy Bird ...

  8. Linux Troubleshooting 超实用系列 - Disk Analysis

    笔者历史文章: https://github.com/CarlJi/words 关于磁盘的使用,实际生产中以下问题会较为常见: No space left on device - 空间不足 Disk ...

  9. 【算法】希尔排序(Shell Sort)(四)

    希尔排序(Shell Sort) 1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版.它与插入排序的不同之处在于,它会优先比较距离较远的元素.希尔排序又叫缩小增量排序. ...

  10. css3常用动画

    //有道云笔记链接 http://note.youdao.com/s/72qbBVyv