支持向量机SVM算法原理笔记2
来源:互联网 发布:网络视频下载器有那些 编辑:程序博客网 时间:2024/06/05 07:38
上篇博客介绍了当样本集是线性可分情况下的SVM算法原理。接下来介绍不存在一个划分超平面可以正确分类的问题,比如说“异或问题”。
对于此类问题,可以将样本空间映射到更高维度空间,这样映射后的样本就线性可分了。如{(0,+1),(1,-1),(2,+1)}三个点在一位平面内是不可分的,但是映射到二维平面中{(0,0,+1),(1,1,-1),(2,0,+1)}三个点是线性可分的等等。
令φ(x)表示x映射后的特征向量,所以在特征空间中的划分超平面定义为:f(x)=w^T φ(x)+b。那么要求解的模型就变为:
公式中需要计算[φ(x_i)]^T φ(x_j),即样本映射到特征空间时的内积。因为其维数很高甚至无穷维,往往很难计算,所以引入核函数进行表示。
所以我们的模型变为:
有了核函数之后,我们不需要再去定义样本空间到特征空间的映射φ(x),也不需要再去计算特征空间的内积,工作量少了很多。那么核函数有哪些要求呢??
定理:设k(#,#)是定义在输入空间*输入空间上的对称函数,则其是核函数的充分必要条件是:对所有样本(X1,X2,…,XN)而言,k的核矩阵总是半正定的。
所以对于这类问题而言,核函数的选择就成了问题的关键所在,因为核函数隐式的定义了特征空间。所以核函数的选择会导致样本映射到特征空间时的可分性。常用的核函数如下所示:
至此,我们已经介绍了线性可分支持向量机和非线性支持向量机两种,分别对应于训练样本在样本空间或者特征空间中线性可分。那么对于存在少量样本无法正确分开的情况应该如何应对呢,在此引入软间隔的概念,即允许支持向量机在某些样本上出错,使原本模型中的约束条件转化为:
其中ε_i称为松弛变量,并且对每个松弛变量需要支付一个代价,是最终的模型变为如下所示,其中C>0称为惩罚参数,C较大时表明对误分类的样本点惩罚增大,反之亦然。所以最小化目标函数有两个含义,1,前半部分表示间隔尽量大;2,后半部分表示误分类的点数尽可能小。称为软间隔最大化:
其对偶问题可以表示为:
且其需要满足KKT条件如下所示:
也就是说对于任意样本,总有α_i=0或者y_i*f(x_i)=1-ε_i,。
1,若α_i=0,则该样本不会对最后的划分超平面产生任何影响
2,若C>α_i>0,也即是y_i*f(x_i)=1-ε_i。该样本是支持向量。又因为C>α_i,所以u_i>0,ε_i=0。所以该样本恰好在最大间隔边界上。
3,若C=α_i,则u_i=0,若ε_i<=1,该样本落在最大间隔内部;若 ε_i>1,该样本被误分类。
- 支持向量机SVM算法原理笔记2
- 支持向量机SVM算法原理笔记1
- 支持向量机(SVM)算法原理
- SVM支持向量机原理(四)SMO算法原理
- 支持向量机SVM原理
- 支持向量机SVM原理
- 模式识别算法-支持向量机SVM 2
- SVM支持向量机算法
- 支持向量机算法 SVM
- SVM支持向量机算法
- SVM支持向量机算法
- 支持向量机(SVM)算法
- 支持向量机SVM算法原理及应用(R)
- 第9节--支持向量机(SVM)算法原理
- SVM(支持向量机)算法原理和实际应用
- 支持向量机(SVM)笔记
- 机器学习算法笔记之5:支持向量机SVM
- SVM支持向量机原理(一) 线性支持向量机
- 十篇安卓文章,都挺不错的
- Leafletjs学习教程和相关代码整理
- PHP.ini部分配置说明
- python *args **kwargs用法
- icarousel旋转木马的详解--当前itemscale和alpha
- 支持向量机SVM算法原理笔记2
- Spring 框架简介
- 从Dinnr失败看产品市场可行性认知有哪些不足
- java编程中Properties类的具体作用和使用
- HDU-2026 首字母变大写
- 正确遍历删除List中的元素
- Linux 技巧:让进程在后台可靠运行的几种方法
- java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)
- Android源代码分析--Preference之自动通话录音