机器学习之SVM分类
来源:互联网 发布:英雄杀探宝固定数据 编辑:程序博客网 时间:2024/06/05 08:11
通俗来说,SVM就是找到一个平面把不同类别的样本分开。这个平面在一维中是一个点,二维中是一条线,三维是一个平面。
SVM基本型
划分超平面可以用下面线性方程表述:
若对
这被称为“间隔”(margin),要找到最大间隔(maximum margin)划分超平面,也就是要求解:
我们通常把它写成求最小值的形式,前面1/2是为了求导方便。
这就是支持向量机的基本型。
对偶形式
基本型本身是一个凸二次规划(convex quadratic programming)问题。数学基础部分请参照机器学习部分数学基础的相关章节。对其用拉格朗日乘子法可得其对偶问题(dual problem)。具体来说,对每条约束添加拉格朗日乘子
对
代入消去
求解出
上述过程需要满足KKT条件:
由上面第三个可知,对于任意训练样本
SMO算法
SMO(Sequential Minimal Optimization)的基本思路是先固定
注意到只需要选取
SMO算法之所以高效,在于在固定其他参数后,仅优化两个参数的过程能非常高效。
下面如何确定偏移项呢?注意到对任意支持向量都有
在现实任务中确定偏移项采用一种更鲁棒的做法,使用所有支持向量求解的平均值。
核函数
核函数主要思想是将样本映射到更高维度的控件,使得线性可分。
令
类似于前面,基本型:
对偶问题是:
由于特征空间维度可能很高,直接计算
这里
核函数定理:令
以上定理表明:只要一个对称函数对应的核矩阵半正定,它就能作为核函数使用。
下面是几种常用的核函数:
- 线性核
xTixj - 多项式核
(xTixj)d - 高斯核(RBF)核
exp(−frac∥xi−xj∥22σ2,σ>0 - 拉普拉斯核:
exp(−∥xi−xj∥σ),σ>0 - Sigmoid核:
tanh(βxTixj+θ)
另外,任意核函数的线性组合,直积也是核函数。
软间隔与正则化
SVM容易过拟合,缓解的方法包括软间隔(soft margin),再引入松弛变量(slack variables)方法。就是可以允许有些点不满足约束条件,于是得到常用的“软间隔支持向量机”。
- hinge损失
max(0,1−z) - 指数损失
exp(−z) - 对率损失
log(1+exp(−z))
这仍然是一个二次规划问题,我们可以用拉格朗日乘子法求解。
实际上损失函数为对率函数时,我们几乎得到了对率回归模型。对率回归的优势主要在于其输出有自然概率意义,SVM要得到概率意义要特殊处理。对率回归也可以直接用于多分类,SVM用于多分类要进行特殊处理。
- 机器学习之SVM分类
- 机器学习之旅---SVM分类器
- 机器学习之旅---SVM分类器
- 【机器学习】SVM分类器
- 机器学习:svm 线性分类
- 机器学习--SVM分类器
- 机器学习算法之SVM的多分类
- 转载-机器学习之旅---SVM分类器
- 机器学习之SVM
- 机器学习之SVM
- 机器学习-SVM-垃圾分类器项目
- 机器学习(2)-SVM分类算法
- 分类器之SVM学习
- 机器学习之SIFT&SVM
- 【机器学习算法】之SVM
- 机器学习之初识SVM
- 机器学习实战之SVM
- 机器学习之SVM简介
- C#中定时器timer的使用
- Java中引用类型变量的转换
- “框架”与“库”在概念上的差异分析
- 剑指offer系列之8:跳台阶问题
- Leetcode no. 201
- 机器学习之SVM分类
- 【POJ 1611】【并查集】The Suspects
- Android Studio 入门
- Android应用程序包解析过程浅析
- 《机器学习实战》使用Apriori算法和FP-growth算法进行关联分析(Python版)
- 设计模式-11-组合模式
- 多线程同步与死锁深入分析
- ubuntu中用python把文件的编码改成utf8
- Jdk的安装及配置