SVM简要介绍
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简要介绍的更多相关文章
- 简要介绍BASE64、MD5、SHA、HMAC几种方法。
加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了. 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书. ...
- [转]Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
转自:Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划 前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了Surfa ...
- [转] Android资源管理框架(Asset Manager)简要介绍和学习计划
转自:http://blog.csdn.net/luoshengyang/article/details/8738877 Android应用程序主要由两部分内容组成:代码和资源.资源主要就是指那些与U ...
- Activity启动过程简要介绍
无论是通过点击应用程序图标来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都要借助于应用程序框架层的ActivityManagerSe ...
- Android应用程序的Activity启动过程简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853 在Android系统中,Activ ...
- Dalvik虚拟机简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8852432 我们知道,Android应用程序是 ...
- Android资源管理框架(Asset Manager)简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8738877 Android应用程序主要由两部分 ...
- Android应用程序组件Content Provider简要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6946067 在Android系统中,Conte ...
- Android窗口管理服务WindowManagerService的简要介绍和学习计划
在前一个系列文章中,我们从个体的角度来分析了Android应用程序窗口的实现框架.事实上,如果我们从整体的角度来看,Android应用程序窗口的 实现要更复杂,因为它们的类型和作用不同,且会相互影响. ...
随机推荐
- Elemnt ui 组件封装(form)
<template> <el-form class="form" :inline="formConfig.inline" :model=&qu ...
- Bugku CTF练习题---加密---聪明的小羊
Bugku CTF练习题---加密---聪明的小羊 flag:KEY{sad23jjdsa2} 解题步骤: 1.观察题目,发现其中的信息 2.经过题目判断,得知该题属于栅栏密码的一种,并且介绍中表明了 ...
- XCTF练习题---MISC---pdf
XCTF练习题---CRYPTO---混合编码解析 flag:flag{security_through_obscurity} 解题步骤: 1.观察题目,下载附件 2.根据题目提示,下载文件,发现是一 ...
- mysql内连接查询之自连接
连接查询: 当查询数据时,通过连接操作查询出存放在多个表中的不同数据,当两个或者多个表中存在相同意义的字段时, 便可以通过这些字段对不同的表进行连接查询. 自连接: 如果在一个连接查询中,涉及的两个表 ...
- 从零开始搭建高可用的k8s集群
一.环境准备 使用Hyper-V虚拟机功能搭建三台Centos虚拟机系统,配置好静态IP,分别为k8s-node1(192.168.0.8),k8s-node2(192.168.0.9),k8s-no ...
- [python][flask] Flask 入门(以一个博客后台为例)
目录 1.安装 1.1 创建虚拟环境 1.2 进入虚拟环境 1.3 安装 flask 2.上手 2.1 最小 Demo 2.2 基本知识 3.解构官网指导 Demo 3.1 克隆与代码架构分析 3.2 ...
- 打造一款高逼格的Vim神器
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 作者:枫上雾棋 链接:https://segmentfa ...
- 深度好文:Linux文件系统剖析
一个执着于技术的公众号 Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子.通过使用一组通用的 API 函数,Linux 可以在许多种存储设备上支持许多种文件系统.例如,read 函数调 ...
- 改善java程序
1.用偶判断,不用奇判断.因为负数会出错. // 不使用 String str = i + "->" + (i%2 == 1? "奇数": "偶 ...
- 用Docker打包Python运行环境
虽然Docker作为部署环境打包镜像的工具,和我的科研并没有直接的关系.但我觉得在项目中运用Docker来打包环境依赖也可以大大提高工作效率,于是准备专门学习一下Docker. 1. Docker基础 ...