scikit-learn中关于SVM的一些常识
2017-03-23 16:17
274 查看
一 . 支持向量机的优缺点分析
支持向量机(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算法(序列最小化算法)可以高效求解。线性可分支持向量机是支持向量最简单最理想的模型,现实中往往是比较复杂的情形。
相关文章推荐
- python机器学习 scikit learn svm 中关于svc函数的参数解释
- 传智播客-邮件开发(1)-关于电子邮件的一些基本常识
- 关于html的一些常识
- 【转】关于单反镜头的一些常识
- 关于Redis的一些常识
- 关于SVM的一些理解
- 关于UBUNTU应用的一些常识
- [Python] 机器学习库 Scikit-learn之SVM
- 关于oracle数据一些基本常识
- 关于大脑的一些常识,学习中请注意灵活运用
- 关于支持向量机(SVM)一些不得不说的话
- 关于一些C C++常识
- 关于软件开发的一些常识和思考
- ASP.NET 应用程序关于IIS的一些常识
- 关于软件开发的一些常识和思考
- 关于cpp的一些常识FAQ(不断更新)
- 关于在linux系统下自启动的一些常识
- 关于软件开发的一些常识和思考
- 关于Android 手机的一些开发过程中的常识