scikit-learn中关于SVM的一些常识

来源:互联网 发布:手机视频剪辑拼接软件 编辑:程序博客网 时间:2024/04/30 17:19

一 . 支持向量机的优缺点分析

支持向量机(SVMs)是一个监督学习算法集,可以用来进行分类、回归以及异常值检测等任务。

这种算法的优点有:

(1)在高维空间中效率非常高;

(2)对于维数大于样本数目的情况也很有效;

(3)在决策函数(待优化的函数)中,只有部分训练样本点会被用到(仅有支持向量会对决策函数有影响),因此,对于样本空间很大的情况,能够节省内存;

(4)对于线性不可分的情形,引入核函数(避免维度灾难),可以引入不同的核函数来构造决策函数,常见的有(线性核,多项式核,高斯核,拉普拉斯核,Sigmoid核),也可以自定义一些其他的核;

支持向量机的缺点包括:

(1)如果特征(属性)数目远大于样本数目,支持向量机表现出的效果可能不是很好;

(2)支持向量机的输出不具有概率意义;(如需得到概率输出,需进行很繁琐的处理)


二. 步步深入支持向量机

首先一般所说的支持向量机是一个二分类算法,对于线性分类和非线性分类具有较好的效果。通常所说的支持向量机经过扩展,也可以解决多分类问题,另外,支持向量也可以用于回归问题。对于支持向量机的理解,需要从线性(可分)支持向量机,引入核函数解决线性不可分问题(线性不可分支持向量机),软间隔线性(可分)支持向量机,支持向量回归四个层面步步深入来理解SVMs.

1. 对于训练样本集(假设是这些样本是线性可分的),试图找到一个划分超平面将这两类样本分开,但是这样的划分超平面不止一个,我们需要找到位于两类训练样本“正中间”的那一个划分超平面,因为这个超平面对训练样本的“容忍”性最优,这个超平面的分类结果最鲁棒,对新样本的泛化能力最强。

线性(可分)支持向量机的算法过程如下:


对于上面算法中的第一步,是如何构造上面所示的约束优化问题?按照划分超平面的要求,建模可得一个凸二次规划问题(如下所示),这个形式称为SVM的基本形式。


必定可以得到全局最优解,但可以采用更加高效的算法进行求解。这里,是将上面的基本形式按照拉格朗日乘子法转化为其对偶问题,对偶问题的形式即为所要构造的约束优化问题。具体如何利用拉格朗日乘子法将SVM的基本形式转化为其对偶问题这里不进行推导,具体推导过程可参考http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html

在 SVM模型中提到了两种非常典型的算法(拉格朗日乘子法,SMO算法),利用拉格朗日乘子法转化为其对偶问题,然后对于这个对偶问题(是一个多变量二次规划问题),采用SMO算法(序列最小化算法)可以高效求解。线性可分支持向量机是支持向量最简单最理想的模型,现实中往往是比较复杂的情形。


0 0
原创粉丝点击