一、简介

支持向量机,一种监督学习方法,因其英文名为support vector machine,故一般简称SVM。

通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

支持向量机建构一个或多个高维(甚至是无限多维)的超平面来分类数据点,这个超平面即为分类边界。 直观来说,好的分类边界要距离最近的训练数据点越远越好,因为这样可以减低分类器的泛化误差。

在支持向量机中,分类边界与最近的训练数据点之间的距离称为间隔(margin); 支持向量机的目标即为找出间隔最大的超平面来作为分类边界。

支持向量机的支持向量指的就是那些与分类边界距离最近的训练数据点。 从支持向量机的最佳化问题可以推导出一个重要的性质:支持向量机的分类边界可以被那些支持向量决定,而与其他数据点无关。 这也是它们被称为“支持向量”的原因。

注:一个机器学习模型的泛化误差(Generalization error),是一个描述学生机器在从样品数据中学习之后,离教师机器之间的差距的函数。使用这个名字是因为这个函数表明一个机器的推理能力,即从样品数据中推导出的规则能够适用于新的数据的能力。

二、优点

1、可以解决小样本情况下的机器学习问题。

2、可以提高泛化性能。

3、可以解决高维问题。

4、可以解决非线性问题。

5、可以避免神经网络结构选择和局部极小点问题。

三、缺点

1、对缺失数据敏感。

2、对非线性问题没有通用解决方案,必须谨慎选择Kernel function来处理。

四、一般流程

五、实现

1、机器学习库scikit-learn 中Support Vector Machines,python实现

2、IBSVM,由台湾大学林智仁编写。LIBSVM是一个整合了支持向量机(C-SVC, nu-SVC)、回归、分布估计(one-class SVM)的软件。并且支持多类别的分类。

3、LIBLINEAR,主要专门为百万级别的数据和特征实现的线性分类器。

4、dlib库,C++模板实现

5、SVMlight 包,使用C 语言实现的支持向量算法

六、更多资料

支持向量机通俗导论(理解SVM的三层境界)

http://blog.csdn.net/v_july_v/article/details/7624837

1.4. Support Vector Machines

http://scikit-learn.org/stable/modules/svm.html

支持向量机-维基百科

https://zh.wikipedia.org/wiki/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA

Support vector machine, From Wikipedia, the free encyclopedia

https://en.wikipedia.org/wiki/Support_vector_machine

各种分类算法的优缺点

http://bbs.pinggu.org/thread-2604496-1-1.html

SVM的优缺点

http://blog.csdn.net/fengzhizizhizizhizi/article/details/23911699

SVMlight Support Vector Machine

http://svmlight.joachims.org/

dlib C++ library

http://dlib.net/ml.html

LIBSVM -- A Library for Support Vector Machines

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

LIBLINEAR -- A Library for Large Linear Classification

http://www.csie.ntu.edu.tw/~cjlin/liblinear

http://www.csie.ntu.edu.tw/~cjlin/papers/liblinear.pdf

LibLinear(SVM包)使用说明之(一)README

http://blog.csdn.net/zouxy09/article/details/10947323/

支持向量机(SVM)入门的更多相关文章

  1. 大数据-10-Spark入门之支持向量机SVM分类器

    简介 支持向量机SVM是一种二分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器.支持向量机学习方法包含3种模型:线性可分支持向量机.线性支持向量机及非线性支持向量机.当训练数据线性可分时 ...

  2. SVM入门(一)

    近来,了解了一下SVM(支持向量机 support vector machine)的原理.顺便把自己理解的内容整理一下. 不讲背景啦,直接切入主题.     一.什么是支持向量机 好比说,我们现在在一 ...

  3. 模式识别之svm()---支持向量机svm 简介1995

    转自:http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html 作者:Jasper 出自:http://www.blogjav ...

  4. 【IUML】支持向量机SVM

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 流量工程 traffic engineering (TE)

    什么是流量工程 流量工程是指根据各种数据业务流量的特性选取传输路径的处理过程.流量工程用于平衡网络中的不同交换机.路由器以及链路之间的负载. [编辑] 流量工程的内容 流量工程在复杂的网络环境中,控制 ...

  2. 关于拉格朗日乘子法和KKT条件

    解密SVM系列(一):关于拉格朗日乘子法和KKT条件 标签: svm算法支持向量机 2015-08-17 18:53 1214人阅读 评论(0) 收藏 举报  分类: 模式识别&机器学习(42 ...

  3. SSH登录之后运行命令报错的解决办法-- Failed to connect to Mir: Failed to connect to server socket: No such file or directory

    问题描述: Failed to connect to Mir: Failed to connect to server socket: No such file or directory 解决方案: ...

  4. 前端框架——AmazeUI学习

    AmazeUI官网: http://amazeui.org/ 前后台模板下载:链接:链接:http://pan.baidu.com/s/1c2uVfk0 密码:zuva 十大前端框架参考链接:http ...

  5. git--- 拉取代码

  6. 十天冲刺---Day4

    站立式会议 站立式会议内容总结: git上Issues新增内容: 燃尽图 照片 队伍度过了一次难关,刚开始学习的难关. 但还是存在进度较慢的问题. 队伍内相互理解是关键. 要时刻了解队友的情况.

  7. android -- 之PopupWindow的使用

    LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); View contentVi ...

  8. Java 构建器

    假如我们的一个实体类有很多的属性值,但是这些属性值又是可选的.如果我们遇到这样的是类,如何设计出方便的实体类呢? 通常解决办法一: 重叠构造器 public class User { private ...

  9. 关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法

    location.href 和 window.location.href 区别: 1.location.href 可以直接跳转其他地址(不属于本项目) 也可以跳转本项目中的 2.window.loca ...

  10. iOS极光推送 点击推送消息跳转页面

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...