漫步支持向量机(svm)之一
设输入为$x$,表示训练集的特征向量,输出为$y=\{1,-1\}$,这些向量都属于两类中的其中一类,假设这些向量是线性可分的,现在要找一个最优的平面(在二维的时候为一条直线),将这些特征向量正确分类,除此之外,能够将新的输入分到合适的类。
设中间直线方程为
$$\hat \omega x+\hat b=0$$
好了,svm中不是还有另外两条边界线吗?他们就是中间这条直线的左膀右臂,而且到中间这条直线的距离是一样的,这两条边界线正好和两侧的特征向量紧挨着,他们的方程就可以表示为
$$\hat \omega x+\hat b=k\\
\hat \omega x+\hat b=-k$$
为什么等号右边一个是$k$,一个是$-k$呢,因为他们到中间直线的距离都一样啊,只是方向不一样而已,好了,下面做个简单的变换,将等号两边同时除以$k$,则得到
$$\frac {\hat \omega x}{k}+\frac{\hat b}{k}=1\\
\frac {\hat \omega x}{k}+\frac{\hat b}{k}=-1$$
好了,此时再设
$$
\omega=\frac {\hat \omega}{k} \\
b=\frac{\hat b}{k}
$$
那么,两条边界直线就变成了
$$\omega x+b=1\\
\omega x+b=-1$$
而且将两式相加,就得到中间的直线方程了
$$\omega x+b=0$$
看到了吧,很多文章都在讲什么函数间隔,几何间隔,我不讲这些概念,我只讲距离,免得绕来绕去绕到死胡同里。
这个时候,如何求两条边界线之间的距离呢?
简单,因为两条边界到中间直线的距离相等,所以只需要求出一条边界线到中间直线的距离,再乘以2,就得到结果了。那怎么求一条边界线到中间直线的距离呢?
这个简单,运用高中数学空间几何的知识就搞定了,设点P在中间直线上,点Q在边界直线上,那么$$\overrightarrow{PQ} \cdot \omega = |\overrightarrow{PQ}|\cdot cos(\theta) \cdot |\omega|=d\cdot|\omega|$$
好了,$\overrightarrow{PQ} \cdot \omega$等于多少呢?就等于1啦,因为$\omega$是法向量,点P在中间直线上,点Q在边界直线上,将两条直线方程相减,等号左边就是$\overrightarrow{PQ} \cdot \omega$,等号右边就是1.
所以一条边界线到中间直线的距离$d$等于多少呢?
$$d=\frac{1}{|\omega|}$$
那么,两条边界线之间的距离也就是$\frac{2}{|\omega|}$了
好了,只要能够求出$d$取最大值时的$\omega,b$值,就可以得到最优的分类直线了,当然,在高维空间,就可以得到最优的分类超平面了!
要知道,只有紧挨着边界线的向量到中间直线的距离才是$d$,边界线以外的向量到中间直线的距离都要大于$d$,因为两类分别为$\{1,-1\}$,所以必须要满足
$$
y_i (\omega x_i + b) \ge 1
$$
要求$\frac{1}{|\omega|}$的最大值,也就等价于求$\frac{1}{2}{||\omega||}^2$的最小值,这样写的目的是为了转换成凸优化问题,方便求解。好了,此时问题已经很明确了,可用数学语言表示为
$$
\begin{align*}
&\min \limits_{\omega, b} && \frac{1}{2}{\Vert \omega \Vert}^2 \\
&s.t. && y_i (\omega x_i + b) \ge 1,i=1,2,\ldots,N
\end{align*}
$$
其中$N$为样本点的个数
漫步支持向量机(svm)之一的更多相关文章
- 【IUML】支持向量机SVM
从1995年Vapnik等人提出一种机器学习的新方法支持向量机(SVM)之后,支持向量机成为继人工神经网络之后又一研究热点,国内外研究都很多.支持向量机方法是建立在统计学习理论的VC维理论和结构风险最 ...
- 机器学习:Python中如何使用支持向量机(SVM)算法
(简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类(异 ...
- 以图像分割为例浅谈支持向量机(SVM)
1. 什么是支持向量机? 在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...
- 机器学习算法 - 支持向量机SVM
在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- 支持向量机SVM——专治线性不可分
SVM原理 线性可分与线性不可分 线性可分 线性不可分-------[无论用哪条直线都无法将女生情绪正确分类] SVM的核函数可以帮助我们: 假设‘开心’是轻飘飘的,“不开心”是沉重的 将三维视图还原 ...
- 一步步教你轻松学支持向量机SVM算法之案例篇2
一步步教你轻松学支持向量机SVM算法之案例篇2 (白宁超 2018年10月22日10:09:07) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- 一步步教你轻松学支持向量机SVM算法之理论篇1
一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- OpenCV 学习笔记 07 支持向量机SVM(flag)
1 SVM 基本概念 本章节主要从文字层面来概括性理解 SVM. 支持向量机(support vector machine,简SVM)是二类分类模型. 在机器学习中,它在分类与回归分析中分析数据的监督 ...
随机推荐
- 2 - Annotations标注
下面是TestNG标注和参数的一个快速预览 @BeforeSuite 被标注的方法会在这个套件的所有测试执行之前执行 @AfterSuite 被标注的方法会在这个套件的所有测试执行之后执行 @Bef ...
- javaScript 的option触发事件
先说jquery的option触发事件,很方便 $("option:selected")//这样就能直接触发选择的option了 在JavaScript中就显得比较麻烦,其实< ...
- zTree异步生成数据时无法获取到子节点的选中状态
最近在项目中遇到一个问题,需求如下: 根据选中不同的人员(ID)向后台发送ajax请求,通过返回的数据来生成该人员的权限访问树,该树目录最少为3级目录,在生成的时候会自动勾选上次保存过的选中状态,点击 ...
- pojo和JavaBean的区别
javabean可以处理业务,pojo不可以. pojo就是get 和set 例如: Student{ id; name; get();... set();...} javabean可以实现业务逻辑 ...
- 小心DriveInfo类IsReady属性的较大延迟问题
当某些驱动器调用IsReady属性来判断是否准备好时,会有性能问题,会非常慢,特别是网络驱动器断开的时候,这个属性会有30秒左右的延迟,这对程序执行是非常大的开销,请慎重调用
- dedecms 发布文章时,关键字会自动加内链
在后台找到:核心->批量维护->文档关键词维护 把关键字和链接网址删掉就可以了,生成更新后前端页面就不会再链接了.>_<.
- css+js自动化开发之第十五天
一.css上一篇的补充 1.position(页面分层) (1)fiexd将标签固定在页面的某个位置 position属性:top,left,right,bottom (2)relative+abso ...
- Python 的“+”和append在添加字符串时候的区别
对于一个空的Python列表,往后添加内容有很多种,其中两种一个是用“+”直接添加内容,另外一种是Listname.append(x)来添加内容 其中,如果处理字符串 在使用“+”的时候,会将字符串拆 ...
- Python Tutorial 学习(五)--Data Structures
5. Data Structures 这一章来说说Python的数据结构 5.1. More on Lists 之前的文字里面简单的介绍了一些基本的东西,其中就涉及到了list的一点点的使用.当然,它 ...
- unix io 模型浅析
POSIX中对同步IO和异步IO的规定: 同步IO操作:引起进程的阻塞直到IO操作完成,异步IO操作:IO操作不会引起进程阻塞 在UNIX下,有5中操作模型: 阻塞IO,非阻塞IO,IO复用,信号驱动 ...