`
lovejuan1314
  • 浏览: 336703 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SVM学习<一>

阅读更多
摘录自:http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html

<一> SVM简介

支持向量机是Cortes和Vapnik于1995年首先提出来的,它再解决小样本,非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。

支持向量急方法是简历再统计学习理论的VC维理论合结构风险最小原理的基础尚的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)合学习能力(即五错误地识别任意样本地能力)之间寻求最佳这种,以期获得最好的泛化能力。

统计机器学习之所以区别于传统机器学习,就在于统计机器学习能够精确的给出学习效果,能够解答需要的样本数等一系列问题。与统计机器学习的精密思维相比,传统的机器学习基本上属于摸着石头过河,传统的机器学习方法构造分类系统完全成了一种技巧,一个人做的结果可能很好,另一个人差不多的方法却很差,缺乏指导原则。

所谓VC维是对函数类的一种度量,可以简单的理解维问题的复杂成都,VC维越高,一个问题就越复杂。SVM解决问题的时候和样本的维数是无关的。

机器学习本质就是一种对问题模型的逼近,真实模型一定是不知道的,所以我们选择的假设与问题真实解之间究竟有多大差距,这个与问题真实解之间的误差就叫做风险。更严格的说,误差的累积叫做风险。我们选择一个假设或者更直观点,我们得到了一个分类器以后,真实误差无从得知,但我们可以用某些可以掌握的量来逼近它。最直观的想法就是适用分类器在样本数据上的分类的结果与真实结果之间的差值来表示。

这个差值叫做经验风险Remp(w)。以前的机器学习方法都把经验风险最小化作为努力的目标,但后来发现很多分类函数能够在样本集上轻易达到100%的正确率,在真实分类时却一塌糊涂(即所谓的推广能力差,或泛化能力差)。此时的情况便是选择了一个足够复杂的分类函数(它的VC维很高),能够精确的记住每一个样本,但对样本之外的数据一律分类错误。回头看看经验风险最小化原则我们就会发现,此原则适用的大前提是经验风险要确实能够逼近真实风险才行(行话叫一致),但实际上能逼近么?答案是不能,因为样本数相对于现实世界要分类的文本数来说简直九牛一毛,经验风险最小化原则只在这占很小比例的样本上做到没有误差,当然不能保证在更大比例的真实文本上也没有误差。

统计学习因此而引入了泛化误差界的概念,就是指真实风险应该由两部分内容刻画,一是经验风险,代表了分类器在给定样本上的误差;二是置信风险,代表了我们在多大程度上可以信任分类器在未知文本上分类的结果。很显然,第二部分是没有办法精确计算的,因此只能给出一个估计的区间,也使得整个误差只能计算上界,而无法计算准确的值(所以叫做泛化误差界,而不叫泛化误差)。

置信风险与两个量有关,一是样本数量,显然给定的样本数量越大,我们的学习结果越有可能正确,此时置信风险越小;二是分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大。

泛化误差界的公式为:

R(w)≤Remp(w)+Ф(n/h)

公式中R(w)就是真实风险,Remp(w)就是经验风险,Ф(n/h)就是置信风险。统计学习的目标从经验风险最小化变为了寻求经验风险与置信风险的和最小,即结构风险最小。

SVM正是这样一种努力最小化结构风险的算法。

SVM其他的特点就比较容易理解了。

小样本,并不是说样本的绝对数量少(实际上,对任何算法来说,更多的样本几乎总是能带来更好的效果),而是说与问题的复杂度比起来,SVM算法要求的样本数是相对比较少的。

非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也有人叫惩罚变量)和核函数技术来实现,这一部分是SVM的精髓,以后会详细讨论。多说一句,关于文本分类这个问题究竟是不是线性可分的,尚没有定论,因此不能简单的认为它是线性可分的而作简化处理,在水落石出之前,只好先当它是线性不可分的(反正线性可分也不过是线性不可分的一种特例而已,我们向来不怕方法过于通用)。

高维模式识别是指样本维数很高,例如文本的向量表示,如果没有经过另一系列文章(《文本分类入门》)中提到过的降维处理,出现几万维的情况很正常,其他算法基本就没有能力应付了,SVM却可以,主要是因为SVM 产生的分类器很简洁,用到的样本信息很少(仅仅用到那些称之为“支持向量”的样本,此为后话),使得即使样本维数很高,也不会给存储和计算带来大麻烦。(相对照而言,kNN算法在分类时就要用到所有样本,样本数巨大,每个样本维数再一高,这日子就没法过了……)。

下一节开始正式讨论SVM。别嫌我说得太详细哦。
分享到:
评论

相关推荐

    一种基于L2-SVM 的多视角核心向量机

    &lt;p&gt;核化一类硬划分SVDD、一/二类L2-SVM、L2 支持向量回归和Ranking SVM均已被证明是中心约束最小包含球. 这里将多视角学习引入核化L2-SVM, 提出核化两类多视角L2-SVM (Multi-view L2-SVM), 并证明该核化两类Multi-...

    基于自适应边界向量提取的多尺度

    该方法采用一种自适应边界向量提取算法, 从训练样本中预提取出包含全部支持向量的边界向量集, 以缩减训练样本规模, 并通过求解多尺度&lt;em&gt;v&lt;/em&gt;-SVM 二次规划问题获取全局最优回归模型,从多个尺度上对复杂分布样本...

    基于SVM 的二叉树多类分类算法及其在故障诊断中的应用

    &lt;p&gt;基于结构风险最小化原则的支持向量机( SVM)对小样本决策具有较好的学习推广性。但由&lt;br&gt; 常规 SVM 算法是从 2 类分类问题推导出的,在解决故障诊断这种典型的多类分类问题时存在困难,&lt;br&gt; 而提出一种依赖故障...

    一种新的分裂层次聚类SVM 多值分类器

    &lt;p&gt;提出一种分裂层次聚类SVM 分类树分类方法. 该方法通过融合模糊聚类技术和支持向量机算法, 利用分裂&lt;br&gt; 的层次聚类策略, 有选择地重新构造学习样本集和SVM 子分类器, 得到了一种树形多值分类器. 研究结果表明, ...

    incremental-learning-for-SVM.rar_Svm 增量学习_online svm_svm代码matlab

    一种基于matlab自带SVMtrain模型训练函数的在线SVM增量学习方法代码。

    bayes-classifier

    所有脚本都按照规范文档采用命令行参数。 其他实用程序脚本会在错误使用时打印它们的用法。 朴素贝叶斯分类器 指示... *1.... *需要一个trainig文件进行监督学习,...'./svm_learn &lt;training&gt; &lt;model&gt;' 从 model_file

    基于L S-SVM 的非线性预测控制技术

    &lt;p&gt;探讨了利用最小二乘支持向量机(L S2SVM ) 进行非线性系统辨识的方法,L S2SVM 用等式约束代替传统支&lt;br&gt; 持向量机中不等式约束, 求解过程从解Q P 问题变成解一组等式方程. 将得到的L S2SVM 模型应用到非线性预测...

    图像分类的随机半监督采样方法

    该算法采用迭代随机采样方法,每次采样中通过谱聚类估计未标注样本的类别值,使用SVM&lt;br&gt; 进行模型学习,逐步优化模型;同时,使用图像的局部空间直方图特征可以有效地结合图像的统计和空间信息,以提&lt;br&gt; 高分类准确度....

    C++实现SVM分类算法

    SVM有如下特征:(1)SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。(2)SVM通过最大化决策边界的边缘来控制模型的能力。(3)通过对数据中每个分类属性引入一个哑变量,...

    TL-SVM:一种迁移学习新算法

    对此, 基于SVM算法提出一种新颖的迁移学习算法—–TL-SVM, 通过使用目标域少量已标签数据和大量相关领域的旧数据来为目标域构建一个高质量的分类模型, 该方法既继承了基于经验风险最小化最大间隔SVM的优点, 又弥补...

    基于核聚类方法的多层次支持向量机分类树

    一种基于核聚类方法的多层次SVM 分类树, 将核空间中的无监督学习方法和有监督学习方法结合起来, 实现了一&lt;br&gt; 种结构更加简洁清晰、计算效率更高的多层SVM 分类树算法, 并在实验中取得了良好的结果.&lt;/p&gt;

    基于类-属性关联度的启发式离散化技术

    &lt;p&gt;连续属性离散化在数据挖掘、机器学习和人工智能等领域起着重要的作用. 鉴于此, 提出一种基于类-属性&lt;br&gt; 关联度的启发式离散化技术. 该技术定义了一个新的离散...著地提高了J4.8 决策树和SVM分类器的学习精度.a&lt;/p&gt;

    机器学习实战之SVM

    SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。

    SVM学习资料-一个简单的实例

    这是关于SVM入门的简单例子,希望对新入门的朋友有所帮助

    category-recognition:该工具允许使用 OpenCV 和机器学习技术将图像分类为不同的类别

    跑步从 GitHub 分叉、克隆或下载源代码使用make编译它使用一堆随机图像创建词汇文件./make_vocabulary &lt;imgaes&gt; 创建一个文件夹以添加带有图像的类别文件夹以训练 SVM 创建类别训练图像的词袋描述符./bow ...

    机器学习SVM作业基于Iris鸢尾花的数据样本实现SVM分类项目源码+报告

    机器学习SVM作业基于Iris鸢尾花的数据样本实现SVM分类项目源码+报告 1.将经典数据集——Iris鸢尾花的数据样本实现SVM分类。 2.进一步熟悉和应用SVM。 二、实验方法 使用python 3.9的IDLE作为编程环境,编程语言为...

    论文研究-基于改进的SVM学习算法及其在信用评分中的应用.pdf

    借鉴SMO的思想, 首先提出一个基于三变量的改进的SVM学习算法, 即将SVM问题分解为一系列含有三个变量的二次规划子问题,其优点是所求的相应松弛子问题都有解析解,使得该方法能够更加精确和快速地逼近最优解;...

    SVM学习教程(自己学习时候看的PDF)

    学习SVM时候找了很多资料最终选择的这个PDF一看就懂了

    可以使用svm, knn, 朴素贝叶斯,决策树四种机器学习方法进行分类,基于SVM的简单机器学习分类

    SVM学习一个决策边界,以将不同类别的数据分隔开来。 测试阶段: 对新的未标记数据应用相同的预处理和特征提取步骤。 使用训练好的SVM分类器对新数据进行分类。 输出分类结果,即新数据所属的类别。 优点: SVM在...

Global site tag (gtag.js) - Google Analytics