支持向量机(SVM)概念图解(人话版)
支持向量机(support vector machine)是模式识别里面的基本概念,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,学习策略便是间隔最大化。
理解SVM,需要先弄清楚一个概念:线性分类。
如下图所示,现在有一个二维平面,平面上有两种不同的数据,分别用圈和叉表示。由于这些数据是线性可分的,所以可以用一条直线将这两类数据分开,这条直线就相当于一个超平面(所谓超平面就是多维空间的线性数据全集),超平面一边的数据点所对应的y全是0 ,另一边所对应的y全是1。
那么如何找到这样一条最适合的分隔线(或者超平面)呢?直观上我们认为线条离数据点越远越安全,那么判定“最适合”的标准就是这条直线离直线两边的数据的间隔最大。如下图中黑色、绿色和橘色线条都可以把X和O数据分开,但直观上黑线是最合适的,因为黑线到两边数据的最短距离margin是最大的,所以SVM有时候也称为大间隔分类器。
所以,得寻找有着最大间隔的超平面。
这里不列公式,直接上图说明如何从概念上寻找这样的超平面:
首先得确定两边数据集的边际线(图中的2条虚线),而位于两条虚线中间,且和两边虚线间隔相等的这个线条就是要找的超平面。
而落在两条虚线上的X和O数据点就是所谓的支持向量,相应的分析模型就是支持向量机。
最后分享一个很直白的视频解说:


最新评论
- 相关文章
React JSX语法简介
JSX是一种类似XML的标签语法,用来简化代码,我们可以不使用JSX,但了解并使用也没什么坏处:)在React中,JSX是一个使用 React.createElement() API的快捷方式...
CSS3弹性布局内容对齐(justify-content)属性使用详解
内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐。该操作发生在弹性长度以及自动边距被确定后。 它用来在存...
使用SVG和CSS3创建圆形进度条动画
圆形进度条是一个经典的控制面板元素,常用于显示任务进度,比如用户档案的完整程度,或者升级状态。有很多方法来实现圆形进度条,比如用JS, CSS3, Canvas, SVG...
计算WebGL中的uniforms变量使用数
在使用Three.js为人体模型加载皮肤材料时,启用了skinning:true的参数。有时候会导致GL编译错误,提示“too many uniforms”。下面的文章有助于理解错误原因和检...
如何基于Canvas来模拟真实雨景Part1:预备知识和创建基本对象
Canvas实例教程:图像移动、大小调整和裁剪
本文介绍如何使用JavaScript和HTML5 Canvas元素来移动、调整大小和...
Three.js 3D打印数据模型文件(.STL)加载
3D打印是当下和未来10年产品技术主流方向之一,影响深远。对于电子商务类的3D打印网站,一个主要功能是把商品以3D的方式呈现出来,也就是3D数据可视化技术。HTML...
inline-block元素设置overflow:hidden属性导致相邻行内元素向下偏移
在表单修改界面中常会使用一个标签、一个内容加一个修改按钮来组成单行界面,如图1所示。那么在表单总长度受限的情况下,当中间的邮箱名称过长时,会遮盖到旁边...
如何使用CSS3实现一个平滑的3D文本标题
要实现3D文本,基本上有3种方法:1. 使用CSS3的投影滤镜(filter: drop-shadow)2. 使用3d建模和CSS3 3d变换来实现(最真实)3. 使用CSS3 text-shadow属性来实现...
Processing.js和P5.js的功能简介和区别
什么是ProcessingProcessing是关于数字艺术的编程语言,支持跨平台,语言本身是一个类Java语言,程序文件的后缀为.pde。
什么是Processing.js为了能让Proce...使用requestAnimationFrame和Canvas给按钮添加绕边动画
要给按钮添加酷炫的绕边动画,可以使用Canvas来实现。基本的思路是创建一个和按钮大小相同的Canvas元素,内置在按钮元素中。然后在Canvas上实现边线环绕的动画。...
更多...