机器学习-5 支持向量机SVM
一、概念和背景
SVM:Support Vector Machine 支持向量机。
最早是由Vladimir N. Vapnik和Alexey Ya. Chervonenkis在1963年提出的。
目前的版本(soft margin)是由Corinna Cortes和Vapnik在1993年提出,并在1995年发表。
在深度学习(2012)出现之前,SVM被认为是机器学习中近十几年来最成功,表现最好的算法。
机器学习的一般框架:
训练集--->提取特征向量--->结合一定的算法(决策树、KNN等)--->结果
二、SVM
在上图中,我们有一些二维的样本,我们需要画一条线将他们区分开,现有绿色、蓝色、红色三条线,哪一条是最好的呢?
很明显,我们会认为红色线是最能明确划分两种样本的分界线。
我们将二维样本扩展到三维(三维空间)中,则这条红线会变成一个面红色的面,可以用来在三维空间中划分三维样本。
再将三维空间扩展为N维,则红色的面会变成一个超平面(hyper plane),这个超平面可以用来划分N维样本。
边际(margin):用于确定超平面位置,使不同类样本间边际(距离)最大。(例如黑点到白点的距离)
三、线性可区分和线性不可区分
线性可分:在样本空间中,可以使用一条直线(二维)、一个平面(三维)或一个超平面(N维)将样本区分开,叫做线性可区分。例如上面图中的情况。
线性不可分:不能使用一条直线(二维)、一个平面(三维)或一个超平面(N维)将样本区分开,叫做线性不可区分。如下图所示情况:
四、确定超平面
如何确定超平面:
用于划分样本的超平面可以有无数个,但是最优超平面是到不同类样本距离相等(并且边际最大)的超平面。
假设训练样本是二维的,X=(x1,x2);
1.超平面方程为:
其中的w0相当于x0=1的情况。(和神经网络中的bias一样)
2.超平面两边的点满足:
3.找到超平面两边的另外两个超平面:
所有坐落在该两个超平面(H1,H2)上的点被称作“支持向量(support vector)”。
4.分界超平面与处于H1和H2上的点(支持向量)的距离为:
其中||W||是向量的范数,即模(norm)。
5.最大边际距离(H1到H2的距离)为:
机器学习-5 支持向量机SVM的更多相关文章
- 机器学习算法 - 支持向量机SVM
在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- 【机器学习】支持向量机SVM
关于支持向量机SVM,这里也只是简单地作个要点梳理,尤其是要注意的是SVM的SMO优化算法.核函数的选择以及参数调整.在此不作过多阐述,单从应用层面来讲,重点在于如何使用libsvm,但对其原理算法要 ...
- python机器学习之支持向量机SVM
支持向量机SVM(Support Vector Machine) 关注公众号"轻松学编程"了解更多. [关键词]支持向量,最大几何间隔,拉格朗日乘子法 一.支持向量机的原理 Sup ...
- 机器学习(十一) 支持向量机 SVM(上)
一.什么是支撑向量机SVM (Support Vector Machine) SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法.在机器学习领域,是一个有监督 ...
- 机器学习:支持向量机(SVM)
SVM,称为支持向量机,曾经一度是应用最广泛的模型,它有很好的数学基础和理论基础,但是它的数学基础却比以前讲过的那些学习模型复杂很多,我一直认为它是最难推导,比神经网络的BP算法还要难懂,要想完全懂这 ...
- 机器学习(十一) 支持向量机 SVM(下)
支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间.特征空间的维数可能非常高.如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高 ...
- 吴裕雄--天生自然python机器学习:支持向量机SVM
基于最大间隔分隔数据 import matplotlib import matplotlib.pyplot as plt from numpy import * xcord0 = [] ycord0 ...
- 机器学习模型-支持向量机(SVM)
二.代码实现 import numpy as np from sklearn import datasets from sklearn.model_selection import train_tes ...
随机推荐
- 用 AJAX 读取xml 节点属性值
<html> <head> <title>AjaxTest</title> <script> var xmlHttp; function c ...
- Maven软件项目管理工具
http://my.oschina.net/jgy/blog/125503 拷贝mavne安装文件夹conf以下的settings.xml到用户主文件夹下 改动改文件 <localReposit ...
- XamlReader 动态加载XAML
原文:XamlReader 动态加载XAML XAML: <Grid xmlns:x="http://schemas.microsoft.com/client/2006" x ...
- linux_crontab_定时删除
#每天2:30 删除4天前qac的原始log30 2 * * * find /home/iknow/ETL/RetlPull/retl-pull/data/qac -name qac.log.new. ...
- Ubuntu更改 resolv.conf 重启失效
更改Ubuntu的 resolv.conf的时候,重启的时候,经常又给重置了.google大法找到方法. sudo apt-get install resolvconf 原来Ubuntu的resol ...
- SyncML协议简述(和HTTP协议有点类似)
目前,移动计算和通信设备的流行很大部分原因是因为它们具有一些方便的功能,比如说在需要时可以发送信息给其他用户,用户希望随时随地都可以利用掌上设备访问信息和执行应用程序,甚至在飞行中也可以获得和更新信息 ...
- 2-18-搭建mysql集群实现高可用
1 环境清理以及安装 1.1 mysql旧版本清除 准备5台虚拟机,分配如下 mysql管理结点:xuegod1.cn IP:192.168.10.31 (安装server.clien ...
- How do I duplicate a resource reference in code behind in WPF?如何在WPF后台代码中中复制引用的资源?
原文 https://stackoverflow.com/questions/28240528/how-do-i-duplicate-a-resource-reference-in-code-behi ...
- WPF里DataGrid分页控件
1.主要代码: using System; using System.Collections.ObjectModel; using System.Windows; using System.Windo ...
- 零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下)
原文:零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下) 上篇提到了Visual State Manager中文翻译为视觉状态 ...