[机器学习之SVM] 线性SVM还是非线性SVM?【转】

SVM的应用领域很广,分类、回归、密度估计、聚类等,但我觉得最成功的还是在分类这一块。

用于分类问题时,SVM可供选择的参数并不多,惩罚参数C,核函数及其参数选择。对于一个应用,是选择线性核,还是多项式核,还是高斯核?还是有一些规则的。

实际应用中,多数情况是特征维数非常高。如OCR中的汉字识别,提取8方向梯度直方图特征,归一化的字符被等分成8*8的网格,每个网格计算出长度为8的方向直方图,特征维数是8*8*8 = 512维。在这样的高维空间中,想把两个字符类分开,用线性SVM是轻而易举的事,当然用其它核也能把它们分开。那为什么要选择线性核,因为,线性核有两个非常大的优点:

  1. 预测函数简单f(x) = w’*x+b,分类速度快。对于类别多的问题,分类速度的确需要考虑到,线性分类器的w可以事先计算出来,而非线性分类器在高维空间时支持向量数会非常多,分类速度远低于线性分类器。
  2. 线性SVM的推广性有保证,而非线性如高斯核有可能过学习。再举个例子,基于人脸的性别识别,即给定人脸图像,判断这个人是男还是女。我们提取了3700多维的特征,用线性SVM就能在测试集上达到96%的识别正确率。因此,线性SVM是实际应用最多的,实用价值最大的。
  3. 如果在你的应用中,特征维数特别低,样本数远超过特征维数,则选用非线性核如高斯核是比较合理的。如果两类有较多重叠,则非线性SVM的支持向量特别多,选择稀疏的非线性SVM会是一个更好的方案,支持向量少分类速度更快,如下图:

现在对选用线性SVM还是非线性SVM有一个基本认识了吧?以上为个人的一些理解,难免有偏差之处,欢迎大家指正或补充。后面会继续写一些SVM方面的帖子,希望对感兴趣的人有点用处。

转自:http://xiaozu.renren.com/xiaozu/121443/356866219

时间: 2024-10-18 22:54:59

[机器学习之SVM] 线性SVM还是非线性SVM?【转】的相关文章

【机器学习基础】线性可分支持向量机

引言 接下里的一系列有关机器学习的博文,我将具体的介绍常用的算法,并且希望在这个过程中尽可能地结合实际应用更加深入的理解其精髓,希望所付出的努力能得到应有的回报. 接下来的有关机器学习基础博文主要根据机器学习技法课程的学习,围绕特征转换(feature transforms)这个主要工具,从以下三个方向进行探讨: 如果现在有很多特征转换可以使用的时候,我们该如何运用这些特征转换,如何控制特征转换中的复杂度的问题,从这个角度刺激了支持向量机(Support Vector Machine)算法的发展

线性结构和非线性结构

线性结构和非线性结构同属于数据结构中的逻辑结构类型 线性结构是指该结构中的节点之间存在一对一的关系.其特点是开始节点和终端节点都是唯一的,除了开始节点和终端节点外,其余节点都有且仅有一个直接前驱,有且仅有一个直接后继.此类型的存储结构有:顺序表(数组).链表.堆栈结构.队列结构等 非线性结构又包括集合.树形结构.图形结构或网状结构,特点是数据元素之间存在一个对多个或多个对多个的关系,其中集合是一种关系极为松散的结构.

使用tensorflow实现机器学习中的线性拟合

使用tensorflow实现机器学习中的线性拟合这个例子是模拟的单变量线性回归,通过提高单变量的阶数来增加特征数量,例如:4阶相当于分解为四个特征这种思想同样适用于多变量线性回归 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['FangSong'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_

机器学习:SVM(scikit-learn 中的 SVM:LinearSVC)

一.基础理解 Hard Margin SVM 和 Soft Margin SVM 都是解决线性分类问题,无论是线性可分的问题,还是线性不可分的问题: 和 kNN 算法一样,使用 SVM 算法前,要对数据做标准化处理: 原因:SVM 算法中设计到计算 Margin 距离,如果数据点在不同的维度上的量纲不同,会使得距离的计算有问题: 例如:样本的两种特征,如果相差太大,使用 SVM 经过计算得到的决策边界几乎为一条水平的直线--因为两种特征的数据量纲相差太大,水平方向的距离可以忽略,因此,得到的最大

斯坦福大学Andrew Ng - 机器学习笔记(5) -- 支持向量机(SVM)

大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢!

机器学习(七、八):SVM(支持向量机)【最优间隔分类、顺序最小优化算法】

由于网上有讲得非常详细的博文,所以这一节就不自己写了,写也写不到别人那么好和透彻. jerrylead支持向量机系列: 支持向量机(一):http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html 支持向量机(二):http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982684.html 支持向量机(三):http://www.cnblogs.com/jerrylead/

SVM分类(一)SVM的八股简介

支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10].    支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力). 以

理解SVM(一)——入门SVM和代码实现

这篇博客我们来理解一下SVM.其实,之前好多大牛的博客已经对SVM做了很好的理论描述.例如CSDN上july的那篇三层境界介绍SVM的博文,连接如下: http://blog.csdn.net/v_july_v/article/details/7624837 那么我这里抛去一些复杂的公式推导,给出一些SVM核心思想,以及用Python实现代码,再加上我自己的理解注释. 1. SVM的核心思想 SVM的分类思想本质上和线性回归LR分类方法类似,就是求出一组权重系数,在线性表示之后可以分类.我们先使

机器学习案例 特征组合——高帅富 冷启动——从微博等其他渠道搜集数据进行机器学习 用户年龄——线性分段处理

摘自:http://www.infoq.com/cn/articles/user-portrait-collaborative-filtering-for-recommend-systems 我们会从一个真实的案例出发,虽然我们做了很多的推荐系统的案例,但毕竟不能把客户的数据给大家看,所以我们用了一份公开的数据,这份数据和我们之前讲的场景是相似的.这份数据来自于 Kaggle,叫做 Criteo 点击率预估比赛. 数据预览 首先我们看数据的样子,第 1 列 col_1 代表的是广告有没有被点击,