支持向量机SVM

简介

SVM核函数包括线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数。

支持向量机可能是最受欢迎的机器学习算法之一。

超平面是一个分割输入变量空间的线。在SVM中,选择一个超平面对输入变量空间中的点进行最优分类(类0或者类1,即二值分类)。

在二维中,你可以把它想象成一条直线,让我们假设所有的输入点都可以被这条线完全隔开。它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

SVM学习算法发现了在超平面上最优分类的系数。

超平面与最近的数据点之间的距离称为边界。能够区分这两个类的最好或最优的超平面是有最大边界的直线。只有这些点与定义超平面和分类器的构造有关。这些点称为支持向量。他们支持或定义超平面。

在实践中,利用优化算法来寻找最大化边界的系数的值。

SVM可能是最强大的开箱即用的分类器之一,值得在您的数据集上尝试。

SVM的核心思想就是找到不同类别之间的分界面,使得两类样本尽量落在面的两边,而且离分界面尽量远

最早的SVM是平面的,局限很大。但是利用核函数(kernel function),我们可以把平面投射(mapping)成曲面,进而大大提高SVM的适用范围。

              

如右图,提高之后的SVM同样被大量使用,在实际分类中展现了很优秀的正确率。

适用情景

SVM在很多数据集上都有优秀的表现。

相对来说,SVM尽量保持与样本间距离的性质导致它抗攻击的能力更强。

和随机森林一样,这也是一个拿到数据就可以先尝试一下的算法。

优点:

1.可用于线性/非线性分类,也可以用于回归,泛化错误率低,计算开销不大,结果容易解释;

2.可以解决小样本情况下的机器学习问题,可以解决高维问题 可以避免神经网络结构选择和局部极小点问题。

3.SVM是最好的现成的分类器,现成是指不加修改可直接使用。并且能够得到较低的错误率,SVM可以对训练集之外的数据点做很好的分类决策。

缺点:

1.对参数调节和和函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。

SVM和LR

首先,logistic regression(LR)的模型如下:

如下是SVM中cost function的定义。请看下图中玫瑰色的曲线,这就是我们希望得到的cost function曲线,和logistic regression的cost function非常相近,但是分为两部分。

逻辑回归LR的cost function为:

则SVM的cost function为:

cost0和cost1分别对应y=0和y=1时的目标函数定义,最后一项regularization项和logistic regression中的类似。其实它们的最后一项本来是一样的,但是可以通过线性变换化简得到SVM的归一化项。

多分类扩展

SVM是针对二值分类问题提出的,并且成功地应用子解函数回归及一类分类问题·虽然支持向量机在解决二值分类问题时获得了巨大的成功,但实际应用中的大量多值分类问题也进一步要求如何将支持向量机推广到多分类问题上,目前有以下几种常用的方法 :
  1. 一对多法。其思想是把某一种类别的样本当作一个类别,剩余其他类别的样本当作另一个类别,这样就变成了一个两分类问题。然后,在剩余的样本中重复上面的步骤`这种方法箱要构造k个svM模型,其中,k是待分类的个数。这种方案的缺点是训练样本数目大,训练困难。
  2. 一对一方法。其做法是在多值分类中,每次只考虑两类样本,即对每两类样本设计一个SVM模型,因此,总共需要设计 k(k一1)/2 个SVM模型.这种做法需要构造多个二值分类器,并且测试时需要对每两类都进行比较,导致算法计算复杂度很高。
  3. SVM决策树法。它通常和二叉决策树结合起来,构成多类别的识别器。这种方法的缺点是如果在某个节点上发生了分类错误,将会把错误延续下去,该节点后续下一级节点上的分类就失去了意义。weston虽然提出了用一个优化式解多值分类问题’〕,但由于其变量t数目过多,所以只能在小型问题的求解中使用。一类分类方法的出现为异常值检测提供了一条新的思路,该方法通过核映射思想确定一个包含正类样本的紧致区域,以便使异常值更容易暴露出来,从而达到检测的目的。

转载于:https://www.cnblogs.com/ytxwzqin/p/9058160.html

Support Vector Machines相关推荐

  1. OpenCV3.3中支持向量机(Support Vector Machines, SVM)实现简介及使用

    OpenCV 3.3中给出了支持向量机(Support Vector Machines)的实现,即cv::ml::SVM类,此类的声明在include/opencv2/ml.hpp文件中,实现在mod ...

  2. Machine Learning week 7 quiz: Support Vector Machines

    Support Vector Machines 5 试题 1. Suppose you have trained an SVM classifier with a Gaussian kernel, a ...

  3. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机...

    Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...

  4. 初译 Support Vector Machines:A Simple Tutorial(一)

    <Support Vector Machines:A Simple Tutorial> 作者 Alexey Nefedov   (一)Introduction 在本章节中将会介绍一些用于定 ...

  5. Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines)

    Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines) 文章目录 Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Su ...

  6. Programming Exercise 6:Support Vector Machines

    大家好,我是Mac Jiang,今天和大家分享一下coursera网站上Stanford University的Machine Learning公开课(吴恩达老师)课程第六次作业:Programmin ...

  7. 机器学习之支持向量机: Support Vector Machines (SVM)

    机器学习之支持向量机: Support Vector Machines (SVM) 欢迎访问人工智能研究网 课程中心 网址是:http://i.youku.com/studyai 本篇博客介绍机器学习 ...

  8. 论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines

    HMER论文系列 1.论文阅读和分析:When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客 2.论文 ...

  9. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines 论文研读

    摘要 本文提出了一种用于训练支持向量机的新算法:序列最小优化算法(SMO).训练支持向量机需要解决非常大的二次规划(QP)优化问题.SMO 将这个大的 QP 问题分解为一系列最小的 QP 问题.这些小 ...

  10. 支持向量机(Support Vector Machines,SVM)

    文章目录 1. 线性可分SVM 与 硬间隔最大化 1.1 线性可分SVM 1.2 函数间隔.几何间隔 1.3 间隔最大化 2. 线性SVM 与 软间隔最大化 2.1 线性SVM 3. 非线性SVM 与 ...

最新文章

  1. 管理中应避免“妇人之仁”
  2. mysql额外在哪_MySQL额外操作
  3. Linux中查看日志文件的正确姿势,求你别tail走天下了!
  4. 剖析基于IOS的华为交换机配置口令设置
  5. Ubuntu 16.04 LTS 在anaconda环境下安装pytorch和tensorflow gpu,cuda10.0
  6. C算法编程题(二)正螺旋
  7. 链表创建为什么需要使用内存分配?
  8. FireBug 调试JS
  9. Bootstrap 响应式设计
  10. mc有什么红石机器人_我的世界:mc玩家与非mc玩家眼中的世界,测一测你mc中毒有多深...
  11. .NET : 在定义项目模板的时候使用占位符
  12. 一种自适应模拟退火粒子群优化算法-附代码
  13. kaminari 简要文档
  14. Python小白的数学建模课-21.关键路径法
  15. 【收藏】10个高能黑科技网站
  16. android隐藏系统ui_如何在非库存设备上获取Android的系统UI调谐器
  17. 哥们哥们,人机大战晓得吧玩家对战晓得吧,简易三子棋,呕心沥血500行代码手把手带你制作第一个小游戏,可以保存收藏以后接着看哟,最后有源码哦
  18. 需要访问其他服务器信息吗,设置服务器访问其它电脑吗
  19. python实现批量的IP地址,或地址段的排序并按照CIDR格式最小化聚合。
  20. 6. 手写数字图片数据集MNIST

热门文章

  1. 通过高速计算机网络和多媒体,全国2014.10办公自动化原理及应用试题
  2. java开发个人项目_个人项目-WC (java实现)
  3. mysql5.0查询表_Mysql5.0查询表结构 | 学步园
  4. 【Java程序设计】Java基础类库简介
  5. 事务到底是隔离的还是不隔离的?
  6. 全文搜索引擎 Elasticsearch 入门概念
  7. Linux开发终端霓虹灯效果
  8. DC学院学习笔记 (十):SQLite及MongoDB
  9. 说说VNode节点(Vue.js实现) 1
  10. iOS8跳转到系统设置页