&&机器学习实战&&支持向量机

1.概述

有些人认为SVM是最好的现成的分类器,这里说的现成值得是分类器不加修改即可直接使用。同时,这意味着在数据上应用基本形式的svm分类器就可以得到低错误率的结果。svm能够对训练集之外的数据点作出很好的分类决策。

SVM有很多实现,本章只关注其中最流行的一种实现,即序列最小优化(SMO)算法。

2.基于最大间隔分隔数据

优点:泛化错误率低,计算开销不大,结果易解释。

缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。

适用数据类型:数值型和标称型数据。

线性可分数据:

 

非线性数据:

上述将数据集分隔开来的直线称为分隔超平面(separating hyperplane)。假如数据集是N维的,那么超平面就是N-1维的,此超平面也是分类的决策边界。

如果数据点离决策边界越远,那么其最后的预测结果也就越可信。我们希望采用这种方式来构建分类器。但是如果这样做,是不是优点寻找最佳拟合直线的感觉?是的,上述做法确实有点像直线拟合,但这并非最佳方案。我们希望找到分离超平面最近的点,确保它们离分隔面的距离尽可能的远。这里点到分隔面的距离被称为间隔(margin)。我们希望间隔尽可能的大,这是因为我们犯错或在有限数据上训练分类器的话,我们希望分类器尽可能的健壮。

支持向量就是离分隔超平面最近的那些点。接下来要试着最大化支持向量到分隔面的距离,需要找到此问题的优化求解方法。

3.寻找最大间隔

分类器求解的优化问题:

 

松弛变量:来允许有些数据点可以处于分隔面的错误一侧。

4.SVM应用的一般框架

5.Platt的SMO算法

 

6.在复杂数据上应用核函数

我们使用一种称为核函数的工具将非线性可分的数据转换成易于分类器理解的形式,并介绍他们在支持向量机中的使用方法,然后介绍一种称为径向机函数的最流行的核函数,最后将该核函数应用于我们前面得到的分类器。

利用核函数将数据映射到高维空间。核函数并不仅仅应用于支持向量机,很多其他的机器学习算法也都用到核函数。

支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =<φ( x) ⋅φ( x′) > 。那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K(x, x′) 直接得到非线性变换的内积,使大大简化了计算。这样的函数 K(x, x′) 称为核函数。

根据模式识别理论,低维空间线性不可分的模式通过非线性映射到高维特征空间则可能实现线性可分,但是如果直接采用这种技术在高维空间进行分类或回归,则存在确定非线性映射函数的形式和参数、特征空间维数等问题,而最大的障碍则是在高维特征空间运算时存在的“维数灾难”。采用核函数技术可以有效地解决这样问题。

核函数性质:

(1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数n对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。

(2)无需知道非线性变换函数Φ的形式和参数.

(3)核函数的形式和参数的变化会隐式地改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。

(4)核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法 [5] 

 

对于手写字体识别问题,假如考虑内存问题,可以考虑使用支持向量机。

对于支持向量机而言,其需要保留的样本少了很多(即只保留支持向量),但是能获得可比的效果。

7.小结

支持向量机是一种分类器。之所以称为“机”是因为它会产生一个二值决策结果,即他是一种决策“机”。支持向量机的泛化错误率较低,也就是说它具有良好的学习能力,且学到的结果具有很好的推广性。

支持向量机试图通过求解一个二次优化问题来最大化分类间隔。在过去,训练支持向量机常采用非常复杂并且低效的二次规划求解方法。SMO算法通过每次只优化2个alpha值来加快svm的训练速度。

svm的效果也对优化参数和所用核函数中的参数敏感。

核函数:度量两个向量距离。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章