SVM(Support Vector Machine)
2017-07-30 22:06
204 查看
一、SVM 简介及优缺点
1. SVM 简介
通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上间隔最大的线性分类器,采用
核方法后可用于非线性分类,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。SVM 大致可以分为以下几类:
线性可分支持向量机
hard margin maximize:线性可分
线性支持向量机(C参数)
soft margin maximize:近似线性可分(有少量异常数据)
非线性支持向量机(C和gamma)
kernel based:线性不可分,可将样本从原始空间映射到一个
更高维的特征空间,使得样本在这个特征空间内线性可分
VC 维:线性 SVM 的 VC维为 d+1,而高斯核函数的 VC维是 ∞
2. SVM 的优缺点
优点选用 rbf kernel 时,数据已经被映射到了无穷维的空间中去,从而保证数据
一定是线性可分的,所以它一定有全局最优解
只使用训练集中的一部分(
called support vectors),大大节省了内存开销
分割直线满足
margin 最大的条件,所以是一个
robust的解(即,泛化错误率低)
在高维空间中行仍然行之有效
缺点
线性 SVM 对异常数据比较敏感,采用核函数来解决的话,计算复杂度高
SVM 不直接提供概率估计,而是通过 5 折交叉验证的方式来求出的,计算时间要远高于其它非线性分类器
对参数调节和核函数的选择敏感,原始分类器仅适用于二分类问题
二、线性可分支持向量机
1. 相关概念简介
支持向量(support vectors):上图中满足方程 wx+b=±1 的训练样本
超平面(hyperplane); wx+b=0
间隔(margin):两个异类支持向量到超平面的距离 γ=2∥w∥
目标:找到最大化间隔划分的超平面
2. 算法三要素及评价指标
决策函数:f(x)=sign(WTx+b),符号确定了分类正确性,大小决定了分类可靠度目标函数:间隔最大化
参数学习算法
使用拉格朗日乘子法转换成其对偶问题来求偏导得参数 W 和 b (未定)
然后将参数带入拉格朗日函数中求得拉格朗日乘子(α),最终确定参数的值W 和 b
训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关,因为(αi=0,此时该样本不会出现在参数 W 和 b 中) 或者(αi>0yif(xi)=1,此时该样本为支持向量,可由此推出参数 b 的值)
评价指标
可用一个样本
距离分离超平面的远近来表示分类预测的可靠程度
一个样本距离分离超平面越远,则该样本的分类越可靠;反之,越不可靠
3. 举例
三、线性支持向量机
1. 相关概念介绍
对每个样本点引入一个松弛变量 ξ⩾0:表征该样本不满足约束的程度,可用hinge loss表示 lhinge(z)=max(0,1−z)
软间隔:引入松弛变量,放宽约束条件 yi(WTx+b)⩾1 为 yi(WTx+b)⩾1−ξ,此时支持向量可能落在最大间隔边界上、最大间隔内部或者被错误分类
针对目标函数引入正则化参数 C:限制容错量的大小,当 C 取很大值时,会迫使所有样本均满足约束,C 取有限值时,允许有一些样本不满足约束
2. 算法三要素
决策函数:f(x)=sign(WTx+b),符号确定了分类正确性,大小决定了分类可靠度目标函数:间隔最大化,加入松弛变量和正则化参数
参数学习算法
使用拉格朗日乘子法转换成其对偶问题来求偏导得参数 W、b 和 ξ (未定)
然后将参数带入拉格朗日函数中求得拉格朗日乘子(α),最终确定参数的值W 和 b
软间隔与硬间隔下对偶问题的唯一不同是
对偶变量的约束不同:前者是0⩽αi⩽C,后者是0⩽αi
四、非线性支持向量机
可以使用核函数,将原始输入空间映射到新的特征空间,从而使原本线性不可分的样本在核空间变得线性可分常用的核函数如下图所示:
经验:对文本数据通常采用线性核(属性空间维度很高),情况不明时,可先尝试高斯核
五、SVM 实践
1、SVM 和 logistic regression 选用
2. 代码实践(待扩展……)
六、参考资料
1、机器学习系列(13)_SVM碎碎念part1:间隔2、Udacity 监督学习算法小结(3):支持向量机
3、scikit-learn svm
4、机器学习(周志华)
5、机器学习(Andrew NG)
相关文章推荐
- SVM(support vector machine)支持向量机原理详解
- Support Vector Machine(SVM) sklearn实现
- 非监督遥感影像变化检测方法——支持向量机(support vector machine,SVM )
- 机器学习实战(5)--SVM(Support vector machine)(一)
- SVM支持向量机(Support Vector Machine)-翻译版
- Stanford Machine Learning: (5). Support Vector Machines(SVM支持向量机)
- 机器学习之支持向量机SVM Support Vector Machine (四) SMO算法
- 机器学习之支持向量机SVM Support Vector Machine (六) 高斯核调参
- 机器学习——支持向量机SVM(Support Vector Machine)(上)
- (十一)机器学习中的一个常用算法SVM算法,即支持向量机Support Vector Machine(SVM)
- 支持向量机(Support Vector Machine,SVM)详解
- 支持向量机SVM(Support Vector Machine)算法初解
- SVMrank——Support Vector Machine for Ranking(SVMrank——使用svm的排序)
- 支持向量机SVM(Support Vector Machine)
- 支持向量机(Support Vector Machine,SVM)
- 机器学习实战(5)--SVM(Support vector machine)(二)
- 支持向量机(Support Vector Machine)-----SVM之SMO算法
- 支持向量机SVM(Support Vector Machine)是一个有监督的学习模型
- 5.1 支持向量机SVM(support Vector Machine)算法概念(上)
- 机器学习实战(5)--SVM(Support vector machine)(三)