看吴恩达支持向量机的学习视频,看了好几遍,才有一点的理解,梳理一下相关知识。

(1)优化目标:

  支持向量机也是属于监督学习算法,先从优化目标开始。

    优化目标是从Logistics regression一步步推导过程,推导过程略

  

  这里cost1和cost0函数图像为:

                                              

  Z是theta的转置和x的内积。当Z>=1时,cost1 = 0.  当Z<=-1时,cost0 = 0.

  因为要最小化损失函数

  if y = 0 :我们希望Z >=1 (不仅仅要大于零,这里是与逻辑回归相比,如下图)

  if y = 0 :我们希望Z <=-1 (不仅仅要小于零,这里是与逻辑回归相比,如下图)

 通过这样的对比发现支持向量机的要求要比逻辑回归更加严格,这也说明了支持向量机的安全距离更高。就像下图中黑线,如果你想知道为什么,下一部分将会揭晓。

  有的时候样本并没有上图分的那样好,可能有几个点不符合,支持向量机将会对此很敏感,例如下图,这样的分割(红线)并不是我们想要的,这就需要调整参数C的值,当C的值不是很大的时候将会忽略一些异常点,让分割更加合理。

接下来从数学层面上分析,为什么会得到上图的分割

将会对进一步转化,学习向量内积的相关知识,可以转化为,如下图,表示距离

  那么我们替换一下上面的表达式为下图

 

  好,接下来,用一个例子说明,假如要对下图划分,假如,简化问题,使:

  

如果把它分割成这样,绿色线是决策边界和theta向量成90度夹角:

如果这样分的话,可以看到P1和P2的值相对较小,而要满足这样就会导致theta增大,所以还要进行优化调整。

如果这样分呢,显然距离P1,P2增大了,相应的theta的值也要减小,有人问,为什么要theta减小,别忘了我们最初的目的是让最小,这样做是不是更加合理了呢,所以说支持向量机是一个大间距分类器。

当然,以上都是简单的线性分类,如果变得更复杂点该怎样解决呢?例如

对于这样的样本,你可能会使用多项式来设置假设函数,但是如果特征再多点,像一张图片,那么将会十分麻烦,所以就有了核函数。

根据我的理解,假如你想在地图上确定你现在属于哪一个区域,你需要找到几个地标性建筑,然后把自己的位置和地标建筑进行比较,就能确定了。就是这个道理。

给定一个训练样本x,我们利用x的各个特征与我们预先选定的地标(landmarks)L1,L2,L3的近似程度来选取新的特征f1,f2,f3。

变换用的核函数有很多,这里使用高斯核函数,,也就是x距离L1近了为1,远了为0,其它也是一样道理。

假如我们已经知道theta1,theta2,theta3的值,那么给一个测试样本x,根据高斯核函数计算出三个特征值。大于零预测y值为1,小于零为0,如下图所示。

如何得到地标,可以把训练集中的样本点当成地标,这样

m表示训练集元素的个数。这样损失函数为:

当然还可以选择其他核函数。

我眼中的支持向量机(SVM)的更多相关文章

  1. 机器学习之支持向量机—SVM原理代码实现

    支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...

  2. 【IUML】支持向量机SVM

    从1995年Vapnik等人提出一种机器学习的新方法支持向量机(SVM)之后,支持向量机成为继人工神经网络之后又一研究热点,国内外研究都很多.支持向量机方法是建立在统计学习理论的VC维理论和结构风险最 ...

  3. 机器学习:Python中如何使用支持向量机(SVM)算法

    (简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类(异 ...

  4. 以图像分割为例浅谈支持向量机(SVM)

    1. 什么是支持向量机?   在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...

  5. 机器学习算法 - 支持向量机SVM

    在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...

  6. 支持向量机SVM——专治线性不可分

    SVM原理 线性可分与线性不可分 线性可分 线性不可分-------[无论用哪条直线都无法将女生情绪正确分类] SVM的核函数可以帮助我们: 假设‘开心’是轻飘飘的,“不开心”是沉重的 将三维视图还原 ...

  7. 一步步教你轻松学支持向量机SVM算法之案例篇2

    一步步教你轻松学支持向量机SVM算法之案例篇2 (白宁超 2018年10月22日10:09:07) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  8. 一步步教你轻松学支持向量机SVM算法之理论篇1

    一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  9. OpenCV 学习笔记 07 支持向量机SVM(flag)

    1 SVM 基本概念 本章节主要从文字层面来概括性理解 SVM. 支持向量机(support vector machine,简SVM)是二类分类模型. 在机器学习中,它在分类与回归分析中分析数据的监督 ...

  10. OpenCV支持向量机(SVM)介绍

    支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...

随机推荐

  1. Windbg学习笔记

    下载winsdksetup.exe ,双击,选择Debugging Tools for Windows安装. 64位系统抓64位进程dump,用64位windbg来分析.64位系统抓32位进程dump ...

  2. 谈谈你对this对象的理解

    理解: 1.this是js 的一个关键字,随着函数的使用场合的不同,this 的值会发生变化. 2.一个总原则:即this指的是调用函数的那个对象. 3.一般情况下,this 是全局对象,可以作为方法 ...

  3. location.origin不兼容IE8解决方案

    最近项目中遇到一个问题,在ajax跟后台交互时需要传一个全路径url.项目上线后,在谷歌,火狐,360等浏览器访问一切正常.但唯独IE8下出现问题,提示url:undefined ! 这就尴尬了!!! ...

  4. CGI 、FastCGI、PHP-CGI、PHP-FPM 定义以及与nginx的应用关系

    CGI common gateway interface,简称cgi,简而言之就是一个接口,一种协议.它的作用就是帮助服务器与语言通信. 这里以nginx和php为例,因为nginx和php的语言不通 ...

  5. c/c++ 头文件的血案

    头文件的血案 不小心在一个头文件里,加了函数的定义,结果导致编译时,提示这个函数被重复定义:( Quote.h #ifndef __QUOTE_H__ #define __QUOTE_H__ #inc ...

  6. MySQL从查找数据库表到删除全过程

    使用DOS命令进入MySQL:mysql -u root -p   按回车键输入密码显示如下界面成功进入MySQL交互界面. 如果此时不知道MySQL有哪些数据库,使用显示所有数据库名语句:show ...

  7. Spring Boot 2.x 快速入门(下)HelloWorld示例详解

    上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...

  8. 微信小程序——页面跳转及传参

    小程序页面跳转 微信小程序的页面跳转依然是以传统的请求转发和请求重定向为主,tabbar的存在,有TAB页面的跳转. 为了微信小程序的简介方便,规定页面路径只能是十层,应尽量避免过多的交互方式. 1. ...

  9. centos7 搭建ntp时钟服务器

    服务器 : 192.168.137.3 客户机:  192.168.137.6 1. 服务器端 centos7下首先确认服务器的防火墙.selinux关闭状态 # cat /etc/redhat-re ...

  10. i春秋 百度杯”CTF比赛 十月场 login

    出现敏感的信息,然后进行登录 登录成功发现奇怪的show 然后把show放到发包里面试一下 出现了源码,审计代码开始 出flag的条件要user 等于春秋 然后进行login来源于反序列化后的logi ...