`

【转】SVM入门(四)线性分类器的求解——问题的描述Part1

    博客分类:
  • SVM
svm 
阅读更多

 

本文转自:http://www.blogjava.net/zhenandaci/archive/2009/02/13/254578.html

 

上节说到我们有了一个线性分类函数,也有了判断解优劣的标准——即有了优化的目标,这个目标就是最大化几何间隔,但是看过一些关于SVM的论文的人一定记得什么优化的目标是要最小化||w||这样的说法,这是怎么回事呢?回头再看看我们对间隔和几何间隔的定义:

间隔:δ=y(wx+b)=|g(x)|

几何间隔:clip_image002

 

可以看出δ=||w||δ几何。注意到几何间隔与||w||是成反比的,因此最大化几何间隔与最小化||w||完全是一回事。而我们常用的方法并不是固定||w||的大小而寻求最大几何间隔,而是固定间隔(例如固定为1),寻找最小的||w||。

而凡是求一个函数的最小值(或最大值)的问题都可以称为寻优问题(也叫作一个规划问题),又由于找最大值的问题总可以通过加一个负号变为找最小值的问题,因此我们下面讨论的时候都针对找最小值的过程来进行。一个寻优问题最重要的部分是目标函数,顾名思义,就是指寻优的目标。例如我们想寻找最小的||w||这件事,就可以用下面的式子表示:

clip_image002[4]

但实际上对于这个目标,我们常常使用另一个完全等价的目标函数来代替,那就是:

clip_image002[6](式1)

不难看出当||w||2达到最小时,||w||也达到最小,反之亦然(前提当然是||w||描述的是向量的长度,因而是非负的)。之所以采用这种形式,是因为后面的求解过程会对目标函数作一系列变换,而式(1)的形式会使变换后的形式更为简洁(正如聪明的读者所料,添加的系数二分之一和平方,皆是为求导数所需)。

接下来我们自然会问的就是,这个式子是否就描述了我们的问题呢?(回想一下,我们的问题是有一堆点,可以被分成两类,我们要找出最好的分类面)

如果直接来解这个求最小值问题,很容易看出当||w||=0的时候就得到了目标函数的最小值。但是你也会发现,无论你给什么样的数据,都是这个解!反映在图中,就是H1与H2两条直线间的距离无限大,这个时候,所有的样本点(无论正样本还是负样本)都跑到了H1和H2中间,而我们原本的意图是,H1右侧的被分为正类,H2 左侧的被分为负类,位于两类中间的样本则拒绝分类(拒绝分类的另一种理解是分给哪一类都有道理,因而分给哪一类也都没有道理)。这下可好,所有样本点都进入了无法分类的灰色地带。

 
 
 
  clip_image002[8]

造成这种结果的原因是在描述问题的时候只考虑了目标,而没有加入约束条件,约束条件就是在求解过程中必须满足的条件,体现在我们的问题中就是样本点必须在H1或H2的某一侧(或者至少在H1和H2上),而不能跑到两者中间。我们前文提到过把间隔固定为1,这是指把所有样本点中间隔最小的那一点的间隔定为1(这也是集合的间隔的定义,有点绕嘴),也就意味着集合中的其他点间隔都不会小于1,按照间隔的定义,满足这些条件就相当于让下面的式子总是成立:

    yi[(w·xi)+b]≥1 (i=1,2,…,l) (l是总的样本数)

但我们常常习惯让式子的值和0比较,因而经常用变换过的形式:

    yi[(w·xi)+b]-1≥0 (i=1,2,…,l) (l是总的样本数)

因此我们的两类分类问题也被我们转化成了它的数学形式,一个带约束的最小值的问题:

clip_image002[10]

下一节我们从最一般的意义上看看一个求最小值的问题有何特征,以及如何来解。

分享到:
评论

相关推荐

    17. 线性分类器与非线性分类器的区别以及优劣1

    线性核SVM相当于一个线性分类器,而高斯核SVM则能够创建非线性决策边界,因此SVM既可以属于线性分类器也可以是非线性分类器,具体取决于所选择的核函数。 总的来说,选择线性分类器还是非线性分类器取决于问题的...

    svm分类器(线性)

    SVM的核心思想是构造最大边距分类器,即找到一个能够将两类数据分隔开的最大间隔的决策边界。在二维空间中,这个边界就是一个线性函数;在高维空间中,它可能是一个超平面。通过引入核函数,非线性可分的问题也能被...

    Svm.zip_SVM实验 matlab_svm 实验_svm 线性_线性分类SVM

    简单的SVM线性分类的仿真实验,包括测试数据跟源码,易学

    分类器设计之线性分类器和线性SVM(Matlab代码)

    线性分类器与线性支持向量机(SVM)是机器学习领域中两种重要的算法,主要用于解决二分类问题。本文将深入探讨这两种方法,并通过Matlab代码进行演示。 线性分类器是一种基于特征的简单分类模型,它通过构建一个...

    SVM的数据分类预测——意大利葡萄酒种类识别

    SVM的数据分类预测—意大利葡萄酒种类识别的matlab源程序与数据 - SVM prediction data classification - Italian Wine type recognition matlab source code and data

    基于SVM的数据分类预测——意大利葡萄酒种类识别

    标题中的“基于SVM的数据分类预测——意大利葡萄酒种类识别”是指使用支持向量机(Support Vector Machine, SVM)算法对意大利葡萄酒的种类进行预测的一种数据分析方法。SVM是一种监督学习模型,尤其在处理小样本、...

    四种SVM分类器

    四种流行的SVM分类器工具箱,很全。rar

    svm.yuan.zip_SVM分类_SVM分类实例_SVM非线性_svm 分类_svm非线性分类

    1. SVM 线性分类:当数据集可以被一个线性边界明确地分割时,SVM 使用线性核函数来创建决策边界。线性SVM通过寻找最大边距超平面进行分类,这个超平面是距离各类别最近的数据点(支持向量)到它的距离最大。线性SVM...

    SVM算法,包括线性和非线性分类

    总的来说,SVM是一种强大的机器学习工具,无论是在线性还是非线性分类问题中都有广泛的应用。通过理解其基本原理、选择合适的核函数以及优化参数,我们可以利用SVM解决许多实际问题,并在模式识别领域取得优异的性能...

    线性分类器代码

    在这个“线性分类器代码”压缩包中,我们很可能会找到使用Python实现的线性分类器示例,例如逻辑回归、支持向量机(SVM)或者线性判别分析(LDA)。这些模型都基于数据的线性特性进行预测,并且在诸如二分类或多元...

    模式识别之线性分类器的matlab实现

    1. **线性分类器的原理**: - 线性分类器,如支持向量机(SVM)或感知器,通过在特征空间中构建一个超平面来区分不同类别的样本。这个超平面是使得两类样本间隔最大的那个边界。 - SVM通过最大化“间隔”(margin...

    SVM的参数优化——如何更好的提升分类器的性能.7z

    SVM的参数优化——如何更好的提升分类器的性能.7z本章要解决的问题就是仅仅利用训练集找到分类的最佳参数,不但能够高准确率的预测训练集而且要合理的预测测试集,使得测试集的分类准确率也维持在一个较高水平,即...

    SVM分类器——实验工具

    支持向量机(Support ...总的来说,"SVM分类器"工具为用户提供了一个方便的平台,可以快速尝试不同的SVM配置,探索最优模型,并理解SVM如何解决实际问题。无论是学术研究还是实际项目应用,它都是一个值得信赖的工具。

    SVM1001_patternrecognition_svmnonlinear_线性分类器_SVM_

    标题"SVM1001_patternrecognition_svmnonlinear_线性分类器_SVM_"表明我们将深入探讨SVM在非线性分类中的应用。 SVM最初设计用于解决线性可分问题,即数据可以通过一个超平面进行分割,使得两类数据点被有效地分开...

    SVM多类分类器

    在多类分类器的场景下,SVM通过扩展其基本的两类分类能力来处理多于两个类别的问题。这个压缩包提供的资源应该包含实现多类SVM的源代码,以及关于如何应用和理解这些代码的详细指南,对于学习和实践SVM的初学者来说...

    非线性SVM分类器设计

    从提供的内容中,我们可以看到,有关于如何使用MATLAB代码来实现非线性SVM分类器的描述。代码中包含了如何加载数据,设置核函数和参数,训练分类器以及如何绘制分类结果。 最后,为了评估所设计的SVM分类器的性能,...

    svm分类程序.zip_4NF_SVM分类_SVM分类matlab_svm 线性_线性分类

    采用matlab进行支持向量机svm的线性分类,每一句都有详尽的解释,方便大家学习交流

    实验一 线性分类器_numpylog_python_线性分类器_

    对于线性分类器,我们通常使用梯度下降法或正规方程来求解模型参数。梯度下降是迭代方法,通过不断调整权重以最小化损失函数;正规方程则直接计算最优解,适合小规模数据集。 在numpy中,我们可以利用矩阵乘法(`@`...

    SVM.rar_X6W_svm 分类_svm非线性分类_非线性SVM

    标题中的"SVM.rar_X6W_svm 分类_svm非线性分类_非线性svm"暗示了我们讨论的主题是关于如何利用SVM处理非线性分类问题,且是基于MATLAB平台的实现。在实际应用中,很多数据集并不遵循简单的线性关系,因此理解非线性...

    SVM_线性_SVM_

    **支持向量机(Support Vector Machine,简称SVM)**是一种广泛应用的监督学习算法,尤其在二分类问题中表现出色。线性SVM是SVM的一种形式,它通过找到一个最优超平面来对数据进行线性划分。在这个场景下,我们讨论...

Global site tag (gtag.js) - Google Analytics