支持向量机之目标函数
支持向量机简单理解之目标函数
支持向量机(SVM)一般用于分类,当然,还可用于回归,如果感兴趣,可在网上查阅,本文主要简单介绍SVM的部分原理,为了方便理解,对于太复杂的公式,等理解了一部分再看。
SVM可用于线性可分以及线性不可分的情况,当然,我们学习其原理的时候,先学最基础的,后面再学难一点的,只会事半功倍。本文暂时只说明线性可分的SVM,至于线性不可分的情况以及序列最小最优化(SMO)算法,后面再写几篇进行补充。
以下是我根据个人理解,尽可能简单的阐述其原理,如有错误之处,请指出,我会加以改正的。
首先引入一个问题:现有一些样本,分为两种类别,这些样本有多个维度(本文以两维举例),让你根据这些样本,去预测新的样本的类别?
话不多说,看图>>>
很显然,我们一眼就能看出来,这很明显的分成了两类,但是,计算机不能一眼就“看出来”,既然这是两维的,那就画一条直线,把他们分开吧!(当然,也可以画曲线,但涉及核函数,下下下篇博客再写,哈哈…)
现在,我大概画了几条直线,用于将它们分开
不知到你怎么看,我是觉得绿色的线比较好,如果你也这样觉得,那好巧啊,SVM也这样觉得,它表示,距离分割线最近的正负样本的两个点与分割线距离之和越大越好,且最佳的分割线与这两个最近点的距离相等。(我是用个人理解的话语说的,可能,你有更好的表述方式,欢迎跟我说)
请注意,下面,我要关门放“公式”了,不过不要怕,都不难的。
因为是线性可分的,所以最佳的分割线应该绝对可区分所有样本点!
这条线长这样:
假如得到了相应的w和b,那么,如果现在有个新的样本点让你预测类别,只需要将新的样本数据x,带入下面函数进行计算
如果计算的f(x)<0,那我们就认为,它属于红色那一类,如果f(x)>0,我们就认为,它属于蓝色那一类。如果等于0呢?你猜…
那么,我们怎么计算出那两个重要的参数w和b呢?
这里有必要解释一下其含义,怕你不懂。
这两个是等价的:
某点到分割线的距离就可以表示为:
此时,这个距离肯定是大于等于某个值r的,若某点到分割线距离等于r,说明该点距离分割线最近,SVM称它们为支持向量,至于其他点,就不需要管了。
根据之前的原则,间隔最大化,因此只需要使得这个r最大,即可得到该原则下的最佳的分割线!
这个目标函数有点难算,我们还需要进行简化(如果你想算,那你算,反正我要简化之后,再算,哈哈。)
至于怎么简化,首先理解下,函数间隔与几何间隔。
这个,图在那里,我不说,你品,你细品,哈哈!
开玩笑的,还是得说一些重要的。
几何间隔就相当于初中学的点到直线的距离,这个好理解。至于函数间隔,具体就不多说,只说重要的,它比几何间隔少了点东西,显然,计算简单很多,它可以比较出任意两个点,哪个距离直线更近,即可计算出相对距离。几何间隔与函数间隔满足以下关系:
显然,当||w||=1,的时候,函数间隔与几何间隔计算得到的大小是相等的。
为了便于计算,我们利用函数间隔与几何间隔之间的关系,考虑一种我们比较喜欢的情况,就是分割线最近的点到分割线的函数间隔为1,此时几何间隔则变为
注意:对于任意一点以及任意一条直线,成比例的改变直线的w和b,总是存在一个新的w和b,使得点到直线的函数距离为1。
SVM的目标函数就变成了:
这里最大化的函数并不是凸函数,不太好进行优化,但可以进行等价的变换,使它变成一个凸函数:
那么,最后SVM目标函数就可以简化成:
你,懂了吗?
这个关于目标函数的解释有好几种,这里只写了其中一种,至于这个目标函数怎么求解,下一篇博客再写,静待更新吧,哈哈…
未完待续…
支持向量机之目标函数相关推荐
- 每天5分钟机器学习算法:支持向量机的目标函数是怎么来的?
支持向量机的核心 两个线性可分的数据集会有多个分割超平面,那么哪个分割超平面最好呢?我们可以通过下面的方式来寻找这个最优的超平面: 我们需要线找到数据点中距离分割超平面距离最近的点(找最小) 然后尽量 ...
- 机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)
SVM可以说是一个很经典的二分类问题,属于有监督学习算法的一种.看过那么多的博客知乎解释SVM我一定要自己总结一篇,加深一下自己的理解. 带着问题去读文章会发现,柳暗花明又一村,瞬间李敏浩出现在眼前的 ...
- 机器学习-第六章 支持向量机(SVM)
机器学习-第六章 支持向量机(SVM) D系鼎溜关注 2020.02.09 21:19:41字数 1,131阅读 458 6.1 间隔与支持向量 开倍速观看视频之后,对课本所说的会更加了解. 支持向量 ...
- 支持向量机原理讲解(一)
https://www.toutiao.com/a6670858850679128588/ 介绍 支持向量机(Support Vector Machine,以下简称SVM),作为传统机器学习的一个非常 ...
- [机器学习-原理篇]支持向量机(SVM)深入理解
支持向量机SVM 1,SVM概念 1.1 支持向量机包含三种: 2.准备知识 KKT条件 点到直线的距离 3. 线性可分支持向量机(hard margin) 线性可分支持向量机建立超平面: 函数间隔: ...
- 支持向量机(SVM)复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 7.svm和感知机的异同 8.svm和LR的异同 内容: 1.算法概述 其基本模型定义为特征空 ...
- 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [8] 支持向量机(二)...
这两篇内容为西瓜书第 6 章支持向量机 6.1,6.2,6.4,6.3 的内容: 6.1 间隔与支持向量 6.2 对偶问题 6.4 软间隔与正则化 6.3 核函数 由于本章内容较多,分为两篇来叙述.本 ...
- 网格向量必须包含特征点。_【专题研究】基于SVM支持向量机模型的选股策略
研究过集成学习中的随机森林和XGBoost后,本文将介绍一种更传统的机器学习方法:SVM支持向量机.SVM由于其较高的准确度,并且能够解决非线性分类问题,曾一度成为非常流行的机器学习算法.本文分别介绍 ...
- 支持向量机smo matlab,理解支持向量机(三)SMO算法
在支持向量机模型的求解中,我们用到了SMO算法来求解向量α. 那么什么是SMO算法?在讲SMO算法之前.我们须要先了解下面坐标上升法. 1.坐标上升法 如果有优化问题: W是α向量的函数.利用坐标上升 ...
最新文章
- 面试官如何判断面试者的机器学习水平?
- 博士申请 | 北京理工大学宋承天老师组招收目标感知与识别方向博士生
- 运用El表达式截取字符串/获取list的长度
- 《Redis官方文档》Redis调试指南
- python原理及代码_原理+代码|详解层次聚类及Python实现
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
- 明年起Polkascan不再为Kulupu提供服务
- Python 获取父级文件夹的名字
- POJ 2054 Color a Tree#贪心(难,好题)
- Julia: 1.0 ! “startup.jl” 的妙用, 设置IDE启动时,自动运行某文件或某行命令
- Prescan基础知识总结
- 现代交换技术的基本概念及基本知识
- linux下安装编译pidgin
- 高效文件搜索工具Everything/Listary
- 2015CDAS中国数据分析师行业峰会:R语言量化投资数据分析应用
- 如何判断微信/判断支付宝退款超期
- 2021年9月22日-忆阻神经网络综述
- 调用wireshark(二):调用协议解析器
- 苹果cms数据.php,苹果cms数据库常用sql语句对照及使用方法
- 高薪程序员面试题精讲系列60之进程与线程的区别有哪些?