一、简介

支持向量机,一种监督学习方法,因其英文名为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. centos安装php扩展

    我自己的方法 先卸载php 重新安装 再安装扩展 1 rpm -qa|grep php 查看php相关 2 rpm-e 名称 一个个删除,个别需要先删除其他组件才能删除, 3 再用 rpm -qa|g ...

  2. Maven的pom.xml标签详解

    <!--父项目的坐标.如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值. 坐标包括group ID,artifact ID和 version.--> <paren ...

  3. 转-Spring单例模式与线程安全

    问题背景 这段时间在做项目的时候,考虑到Spring中的bean默认是单例模式的,那么当多个线程调用同一个bean的时候就会存在线程安全问题.如果是Spring中bean的创建模式为非单例的,也就不存 ...

  4. zabbix的配置使用

    1 zabbix忘记密码的解决办法 zabbix的默认密码我们都知道是admin,zabbix都是存在与数据库中的 select * from zabbix.user where alias='adm ...

  5. innerHTML和appendChild的性能

    目测innerHTML比appendChild好了3到4倍, 但是界面渲染还是很慢啊:  chrome结果 /** *chrome浏览器; * innerHTML appendChild * 1千条的 ...

  6. WebApi服务Uri加密及验证的两种方式

    最近的一个项目要求服务端与UI层分离,业务层以WebApi方式向外提供所有业务服务,服务在数据保密性方面提出了要求,主要包括: 1:客户端认证: 2:服务请求超时(默认5分钟): 3:服务Get请求的 ...

  7. Python开发最常犯错误总结10种

    不管是在学习还是工作过程中,人都会犯错.虽然Python的语法简单.灵活,但也一样存在一些不小的坑,一不小心,初学者和资深Python程序员都有可能会栽跟头.本文是Toptal网站的程序员梳理的10大 ...

  8. 匿名内部类为什么访问外部类局部变量必须是final的?

    1.内部类里面使用外部类的局部变量时,其实就是内部类的对象在使用它,内部类对象生命周期中都可能调用它,而内部类试图访问外部方法中的局部变量时,外部方法的局部变量很可能已经不存在了,那么就得延续其生命, ...

  9. Leetcode 131. Palindrome Partitioning

    Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...

  10. Jenkins邮件配置,实现邮件发送策略(可实现每个Job对应不同的发送邮箱)

    前言: 首先,要有一个用来发送的邮箱,首选网易!参考:http://www.cnblogs.com/EasonJim/p/6051636.html,这里我注册了网易的免费企业邮箱. 并且我新建没多个邮 ...