支持向量机SVM(2)之核函数
2018-04-02 11:28
246 查看
在上一篇中,一切的推导都是基于上图这种类型,建立在数据分布是线性可分的情况,然而很多情况下都不是线性可分的。例如下图这种情况。
从图中可以看出,无论哪一条线都无法将两类点分开。这个时候就要引入核函数的概念了。
三、核函数
上一篇文章中最后推导得到了:
现在我们把它们带入到分界方程:
如果我们已经求出了α与b,那么y可以写成仅仅依赖xi与xj的矢量积形式,这一点非常关键。很多时候我们需要从数据中挖掘出新的特征来进行训练,而不是简单粗暴的使用原始数据,比如我们从x中挖掘出新的特征x平方,我们需要再一步一步推导y的表达式吗?只需要将<xi,x>换成<(xi)2,x2>(平方形式)就可以。
整个过程很流畅,φ(x)可以将数据从低维空间映射到高维空间中,为分类提供了新的视角。如下图所示:
在以为空间中是,两种点无法分开,但是通过φ(x)=(x,0.5x*x+2)映射到二维空间后,很容易找到分界线将这些不同的点分开。低维映射到高维使得线性可分成为可能。考虑到m<<n,这引起一个问题就是随着维数的增大计算量迅速变大,如何简化操作呢。在这里引入核函数:
通过映射函数,我们能从原始数据中(低维空间)抽象出所需的特征(高维空间),由低维空间向高维空间的转化很多时候非常的麻烦。核函数的目的就是设置一种过程,可以跳过维度变化,通过相对简单的计算直接得到矢量积。
举个栗子:
通过上面的推导,我们发现虽然维度转化的过程较为繁琐复杂,但是矢量点积的结果确实相当简洁,这一次我们直接用核函数计算:
四、常用核函数
支持向量机中有几种常用的核函数:多项式核(Polynominal Kernal)、径向核(RBF、也叫高斯核)、以及逻辑核(Sigmoid Kernel)。
多项式核:
维数越高,偏差越低,方差越高,越容易出现过拟合的情况,反之则相反。所以不适合选择过高的维度,最适合的维度需要通过交叉验证。
RBF:
高斯核函数是一个对应于无限空间的核函数,证明方法就是对ex进行泰勒级数展开,为了书写方便,在这里我们让
我们可以通过高斯核直接给出无限空间矢量积的表达式。
高斯核的偏差和方差通过δ来控制,δ越大偏差越大,方差越小,越容易欠拟合,如下面第一幅图。
相关文章推荐
- 机器学习——支持向量机SVM之核函数
- 支持向量机SVM核函数分析
- 机器学习——支持向量机(SVM)之核函数(kernel)
- 选择支持向量机(SVM)核函数
- svm(三)支持向量机之核函数
- 支持向量机SVM(一):支持向量机SVM的推倒:从logistic回归,到函数间隔,集合间隔,到寻找最优间隔分类器。
- 选择支持向量机(SVM)核函数
- 机器学习--SVM(支持向量机)核函数原理以及高斯核函数
- 学习笔记-支持向量机(SVM)
- 基于支持向量机SVM的文本分类的实现
- SVM-支持向量机算法概述
- Spark中组件Mllib的学习29之支持向量机SVM-方法2
- Halcon 学习总结——基于动态阈值法、GMM(高斯混合模型)、SVM(支持向量机)的网状物缺陷检测
- 机器学习中的算法-支持向量机(SVM)基础
- 机器学习:支持向量机SVM和人工神经网络ANN的比较
- 支持向量机通俗导论(理解SVM的三层境界)
- 机器学习——支持向量机SVM(Support Vector Machine)(上)
- 支持向量机 (SVM) 以及 sklearn 实现
- 机器学习:支持向量机(SVM)与Python实现第(三)篇
- 支持向量机通俗导论(理解SVM的三层境界)