开发库:

libsvm, liblinear      GitHub地址

SVM难点:核函数选择

一、基本问题

找到约束参数ω和b,支持向量到(分隔)超平面的距离最大;此时的分隔超平面称为“最优超平面”

距离表示为,

问题表示为,

#支持向量机名字的由来:由支持向量得到的分类器

 二、问题的求解

上述问题为一个凸二次优化问题,可以由现成的优化计算包求解

高效方法:用拉格朗日乘子法求解其对偶问题,得到问题的解——

SMO算法:在参数初始化后,

SMO算法之所以高效,由于在固定其他参数后,仅优化两个参数(αi和αj)能做到非常高效。

b使用所有支持向量求解的平均值

三、核函数

问题:现实中,样本空间也许并不存在一个能正确划分两类样本的超平面。

如果原始空间是有限维(即属性有限),那么一定存在一个高维特征空间使样本可分。

#核函数:用来等效原始空间到高维空间的映射,为了实现两类样本线性可分

要求样本在特征空间线性可分,则特征空间的好坏对支持向量机的性能至关重要。

假设这样一个函数:

求解后可以得到

上式称为“支持向量展式”,κ(.,.)就是核函数

通常Φ(.)的具体形式是未知的

在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的,而核函数也仅是隐式地定义了这个特征空间。

于是,“核函数选择”称为支持向量机的最大变数

此外,还可以通过函数组合得到“核函数”。

四、软间隔与正则化

样本空间或者特征空间中一定线性可分?

1. 很难确定某个核函数使得训练样本在特征空间中线性可分

2. 线性可分的结果是不是由于过拟合造成的

问题的解决——

“软间隔”:允许支持向量机在一些样本上出错

优化目标改写为:

C称为正则化常数(惩罚因子)l0/1表示损失函数,C为有限值时上式允许一些样本不满足约束

正则化可理解为一种“罚函数法”,即对不希望得到的结果施以惩罚,从而使得优化过程趋向于希望目标。

“正则化”regularization问题:

推导发现“软间隔”问题,一方面与用户希望获得何种性质的模型有关;另一方面降低了最小化训练误差的过拟合风险;

五、支持向量回归SVR

SV Regression

f(x)与y之间差的绝对值小于等于ε,则认为被预测正确。

六、核方法

给定训练样本,学得的模型总能表示成核函数的线性组合。

那么,核方法指——引入核函数来将线性学习器拓展为非线性学习器。

“核线性判别分析”

补充阅读:

1. 支持向量机的求解通常借助于凸优化技术

2. 非线性核SVM的时间复杂度理论上不低于O(m^2),研究重点是设计快速近似算法

3. 线性核SVM常用于分析大规模数据

4. 多核学习使用多个核函数并通过学习获得最优凸组合作为最终的核函数,实际是一种集成学习机制

补充++

SVM各个参数的含义?
sigma: rbf核函数的参数,用于生成高维的特征,常用的有几种核函数,如径向核函数,线性核函数,这个也需要凭经验来选择。
C:惩罚因子。在最优化函数中,对离群点的惩罚因子,也是对离群点的重视程度体现。这个也是凭经验和实验来选择。
 
SVM种类:
C-SVM: 分类型SVM,需要调优的参数有惩罚因子C,核函数参数。 C的取值 10^-4, 10^-3, 10^-2,... 到 1, 5... 依次变大
nu-SVM: 分类型SVM, 在一定程度上与C-SVM相同,将惩罚因子C换成了因子nu。其最优化的函数略有不同。nu的取值是0-1,一般取值从0.1到0.8. 0代表样本落入间隔内的数目最小的情况,1代表样本可以落入间隔可以很多的情况。
wiki上的原话:
The main motivation for the nu versions of SVM is that it has a has a more meaningful interpretation. This is because nu represents an upper bound on the fraction of training samples which are errors (badly predicted) and a lower bound on the fraction of samples which are support vectors. Some users feel nu is more intuitive to use than C or epsilon. 

【基础知识六】支持向量机SVM的更多相关文章

  1. python基础知识六 文件的基本操作+菜中菜

    基础知识六 文件操作 ​ open():打开 ​ file:文件的位置(路径) ​ mode:操作文件模式 ​ encoding:文件编码方式 ​ f :文件句柄 f = open("1.t ...

  2. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  3. oracle基础知识(六)----spfile与pfile

    一, 认识参数文件      Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值 ...

  4. ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF)

    先上一段代码,了解一下 .NET Core 配置数据的结构. 新建一个 控制台项目,添加一个文件 json.json ,文件内容如下: { "country": "cn& ...

  5. Go语言核心36讲(Go语言基础知识六)--学习笔记

    06 | 程序实体的那些事儿 (下) 在上一篇文章,我们一直都在围绕着可重名变量,也就是不同代码块中的重名变量,进行了讨论.还记得吗? 最后我强调,如果可重名变量的类型不同,那么就需要引起我们的特别关 ...

  6. C#基础知识六之委托(delegate、Action、Func、predicate)

    1. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...

  7. python基础知识六

    博客园的博文对每篇博文的长度似乎做了限制 面向对象编程, 在程序何种,根据操作数据的函数或语句块来设计程序.这被成为面向过程的编程.还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织组织程序的 ...

  8. java 基础知识六 字符串2

    java  基础知识六  字符串2 1.String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法 . String 是不可变对象,也就是一旦创建,那么整 ...

  9. java 基础知识六 字符串1

    java  基础知识六  字符串1 String 不是java的基本数据类型 String 不是java的基本数据类型 String 不是java的基本数据类型 字符串是是一个字符序列 1.创建 创建 ...

随机推荐

  1. SWIFT中用Switch case 类类型

    有时觉得SWIFT的语法真的强大而又变态,不说了,直接上代码瞅瞅: 首先先定义一个交通工具的父类 class Vehicle{ var wheels:Int! var speed:Double! in ...

  2. iOS 开发 Framework

    制作Framework 的好处和缺点 好处:       1.如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性:       2.物理上的模块化便于开发过程的管理与测试,尤其是在程 ...

  3. HDU 3829

    http://acm.hdu.edu.cn/showproblem.php?pid=2970 P个小朋友喜欢猫讨厌狗,喜欢狗讨厌猫,移除一定数量的猫狗,使开心的小朋友数量最多 二分图最大独立集=顶点数 ...

  4. ELK日志分析系统简单部署

    1.传统日志分析系统: 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安 ...

  5. rar ubuntu

    http://jingyan.baidu.com/article/1612d5004095eee20e1eeeab.html sudo 7z x ***.rar

  6. TJU Problem 1100 Pi

    注: 1. 对于double计算,一定要小心,必要时把与double计算相关的所有都变成double型. 2. for (int i = 0; i < N; i++)         //N 不 ...

  7. 《DSP using MATLAB》Problem 4.26

    Y(z)部分分式展开, 零状态响应和零输入响应的部分分式展开,

  8. hdu1224 dp(dp + 栈/父亲数组记录路径)

    题意:给定 n 个城市的有趣度,并给出可以从那些城市飞到那些城市.其中第一个城市即起始城市同样也作为终点城市,有趣度为 0,旅行途中只允许按有趣度从低到高旅行,问旅行的有趣度最大是多少,并输出旅行路径 ...

  9. hiho1622 有趣的子区间(YY)

    题目链接:http://hihocoder.com/problemset/problem/1622?sid=1230113 #1622 : 有趣的子区间 时间限制:10000ms 单点时限:1000m ...

  10. IEPNGFix 解决IE6支持PNG透明问题

    IE6本身是支持索引色透明度(PNG8)格式,但不支持真彩色透明度(PNG24)格式. 使用IE PNG Fix 2.0可以完美解决IE6支持PNG透明问题,而且支持背景定位和重复属性. IE PNG ...