支持向量机SVM分类算法
matlab svm多分类算法

标题:MATLAB中SVM多分类算法的研究与应用摘要:支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,在分类问题中表现出色。
然而,在面对多分类问题时,SVM的应用和优化仍然具有挑战性。
本文将对MATLAB中SVM 多分类算法的研究和应用进行深入探讨,分析其原理、优化方法以及实际应用。
通过本文的阅读,读者将能够全面了解MATLAB中SVM多分类算法的特点和应用技巧。
关键词:支持向量机;多分类算法;MATLAB;优化方法;应用技巧一、介绍支持向量机(SVM)是一种通过寻找最优超平面来进行分类的监督学习算法。
在二分类问题中,SVM表现出色,然而在面对多分类问题时,SVM的应用和性能仍然具有挑战性。
MATLAB作为一种强大的科学计算软件,具有丰富的机器学习工具包,其中包括了用于多分类问题的SVM算法。
本文将围绕MATLAB中SVM多分类算法的原理、优化方法以及实际应用展开讨论。
二、MATLAB中SVM多分类算法的原理1. SVM的基本原理SVM的基本原理是通过寻找一个最优的超平面来将不同类别的样本分开,使得两个类别的间隔最大化。
对于多分类问题,可以借助一对一(One-Versus-One)或一对其余(One-Versus-All)等方法来实现多个类别之间的分类。
MATLAB中的SVM多分类算法就是基于这样的原理进行实现的。
2. MATLAB中SVM多分类算法的实现MATLAB中提供了SVM多分类的函数,如fitcecoc和fitcsvm等,分别对应一对一和一对其余的多分类方法。
这些函数可以方便地对SVM进行训练和预测,同时还支持参数调优和模型评价等功能。
读者可以通过调用这些函数,快速实现SVM多分类算法的应用。
三、MATLAB中SVM多分类算法的优化方法1. 参数调优在使用SVM进行多分类时,参数的设置对算法的性能具有重要影响。
MATLAB中的SVM多分类算法支持对参数进行调优,如调整核函数类型、惩罚参数等,以提高算法的分类准确率和泛化能力。
SVM支持向量机算法的详细推导(详细到每个步骤,值得推荐)

建立非线性可分数据的最优超平面可以采用与线性可 分情况类似的方法,即对于给定的训练样本 {(X1,d1), (X2,d2),…,(Xp,dp),…(XP,dP)} ,寻找权值W和 阈值B的最优值,使其在式(8.19)的约束下,最小化关 于权值W和松弛变量 ξp 的代价函数
C是选定的正参数。 与前述方法相似,采用Laglange系数方法解决约束最 优问题。需要注意的是,在引入Lagrange函数时,使 e函数变为
WT XP+b<0
dp =-1
超平面与最近的样本点之间的间隔称为分离边缘,用ρ表示。 支持向量机的目标是找到一个分离边缘最大的超平面,即最优 超平面。也就是要确定使ρ最大时的W和b。 图8.1给出二维平面中最优超平面的示意图。可以看出,最优 超平面能提供两类之间最大可能的分离,因此确定最优超平面 的权值W0和偏置b0应是唯一的。在式(8.1)定义的一簇超平面中, 最优超平面的方程应为: WT X0+b0=0(应该是W0 X + b0 = 0吧? ) 直接求W0和b0基本上不太可能,除了训练集无别的信息可用, 如何办? 一种方法:使求得的预测函数 y = f(x) = sgn(W· + b)对原有 X 样本的分类错误率最小。 如何使分类错误率最小?下面慢慢分 析。
αp>0 以上为不等式约束的二次函数极值问题(Quadratic Programming,QP)。由Kuhn Tucker定理知,式 (8.14)的最优解必须满足以下最优化条件(KKT条件)
上式等号成立的两种情况:一是αp为零;另一种是 (WT XP+b) dp=1 。第二种情况仅对应于样本为支持向量。 设Q(α)的最优解为{α01, α02,......, α0p} ,可通过式(8.12) 计算最优权值向量,其中多数样本的Lagrange系数为零, 因此
svm算法公式

svm算法公式摘要:1.简介2.SVM 算法基本思想3.SVM 算法公式推导4.SVM 算法应用场景与优缺点5.总结正文:1.简介支持向量机(Support Vector Machine,SVM)是一种经典的二分类机器学习算法。
它通过划分超平面,使得不同类别的数据点到超平面的距离最大,从而实现分类。
SVM 算法具有良好的泛化能力,广泛应用于文本分类、图像分类、生物信息学等领域。
2.SVM 算法基本思想SVM 算法的基本思想是找到一个最佳超平面,使得两个类别之间的距离(即几何间隔)最大化。
为了找到这个最佳超平面,SVM 算法需要解决一个优化问题,即求解一个凸二次规划问题。
3.SVM 算法公式推导设训练样本集为X = {x1, x2, ..., xn},标签为Y = {y1, y2, ..., yn},其中yi∈{-1, 1}。
SVM 算法的优化目标是最小化误分类点到超平面的几何间隔之和,即:min ∑(yi - ∑αi * yi * kernel(xi, xj))^2其中,αi 表示第i 个支持向量对应的拉格朗日乘子,kernel(xi, xj) 表示核函数,用于计算两个向量之间的相似度。
对于线性核函数,kernel(xi, xj) = xi·xj;对于多项式核函数,kernel(xi, xj) = (xi·xj + 1)^d。
4.SVM 算法应用场景与优缺点SVM 算法在以下场景中表现良好:- 数据集具有较高维度,但线性可分;- 数据集中存在噪声或异常值;- 需要对类别进行细分的场景。
SVM 算法的优点包括:- 具有较好的泛化能力,能有效处理过拟合问题;- 对于线性可分数据集,能够实现最优分类效果;- 支持多种核函数,可处理非线性问题。
SVM 算法的缺点包括:- 对于非线性数据集,需要选择合适的核函数,否则可能无法获得好的分类效果;- 计算复杂度较高,尤其是当数据量较大时。
5.总结支持向量机(SVM)是一种经典的二分类机器学习算法,通过寻找最佳超平面来实现分类。
svm算法公式

svm算法公式SVM算法公式支持向量机(Support Vector Machine,简称SVM)是一种常用的机器学习算法,被广泛应用于分类和回归问题的解决中。
它的核心思想是通过找到一个最优超平面来划分不同类别的数据点,从而实现分类的目标。
SVM算法的公式可以用如下方式表达:1. 数据准备假设我们有一个包含N个样本的训练集D={(x1, y1), (x2, y2), ... , (xN, yN)},其中xi表示第i个样本的特征向量,yi表示第i个样本的类别标签。
特征向量xi具有n个维度,即xi=(x1i, x2i, ... , xni)。
2. 寻找最优超平面SVM的目标是找到一个最优超平面,使得该超平面能够最大化样本点到该超平面的间隔,并且能够正确地将不同类别的样本点分开。
最优超平面可以用如下公式表示:w·x + b = 0其中,w表示超平面的法向量,b表示超平面的截距。
w·x表示w 和x的内积。
根据这个公式,我们可以将样本点分为两类:w·x + b > 0的样本点属于一类,w·x + b < 0的样本点属于另一类。
3. 线性可分情况如果训练集D是线性可分的,即存在一个超平面完全能够将两类样本点分开,那么我们可以通过一个优化问题来求解最优超平面。
优化问题可以用如下公式表示:min 1/2 ||w||^2s.t. yi(w·xi + b) ≥ 1, i=1,2,...,N其中,||w||表示向量w的范数,yi表示第i个样本点的类别标签。
这个优化问题的目标是最小化w的范数,同时满足所有样本点的分类约束条件。
4. 线性不可分情况如果训练集D不是线性可分的,那么我们可以通过引入松弛变量(xi, ξi)来解决这个问题。
松弛变量可以将样本点分类约束条件放宽,使得一些样本点可以位于超平面的错误一侧。
此时,优化问题可以用如下公式表示:min 1/2 ||w||^2 + C Σξis.t. yi(w·xi + b) ≥ 1 - ξi, i=1,2,...,Nξi ≥ 0, i=1,2,...,N其中,C是一个正则化参数,用来平衡最小化w的范数和最小化松弛变量的重要性。
svm算法概念

支持向量机(Support Vector Machine, SVM)算法概念解析1. 引言支持向量机(Support Vector Machine, SVM)是一种机器学习算法,主要应用于分类和回归问题。
它通过寻找一个最优的超平面来进行数据的分类,具有较强的泛化能力和较好的性能。
SVM在许多领域得到广泛应用,如文本分类、图像识别、生物信息学等。
2. 关键概念2.1 线性可分线性可分是SVM算法的重要概念之一。
它指的是存在一个超平面可以将两类数据完全分开,使得属于不同类别的数据点在超平面两侧。
这样的数据集被称为线性可分数据集。
SVM通过在两类数据之间找到一个最佳的分割超平面,使得两侧距离最近的数据点到超平面的距离最大化,从而实现了对数据的有效分类。
2.2 最大边界超平面最大边界超平面是SVM算法的核心思想之一,通过最大化两类数据点到超平面的距离来实现数据的有效分类。
具体来说,最大边界超平面是与支持向量尽可能远离的超平面,支持向量是离超平面最近的训练样本点。
最大边界超平面有助于提高分类器的泛化能力,减少过拟合的风险。
2.3 核函数核函数是SVM算法的关键概念之一,它允许SVM在非线性问题上进行分类。
核函数可以将原始的低维特征空间映射到高维特征空间,使得原本线性不可分的数据在高维空间中变成线性可分的。
常用的核函数有线性核、多项式核、高斯核等。
通过使用核函数,SVM可以处理各种复杂的数据,提高了算法的灵活性和适用性。
2.4 松弛变量与软间隔松弛变量和软间隔是用于处理非线性可分数据的重要概念。
在实际的数据集中,很难找到一个完全分开两类数据的超平面。
为了允许一些样本被错误分类,可以引入松弛变量来允许一些样本在超平面的错误一侧。
通过控制松弛变量的值,可以在最大化间隔的同时兼顾分类的准确率和泛化能力。
2.5 支持向量支持向量是SVM算法的重要概念之一,指的是离超平面最近的训练样本点。
支持向量在确定最大边界超平面时起到了关键作用,它们决定了超平面的位置和方向。
分类方法 svm

分类方法 svmSVM(Support Vector Machine,支持向量机)是一种常用的分类方法,广泛应用于很多领域,包括计算机视觉、自然语言处理、医学诊断等领域。
本文将围绕“分类方法SVM”展开,分步骤阐述其基本原理、算法步骤及应用场景。
一、基本原理SVM是一种基于统计学习理论的、用于模式识别、分类和回归问题的算法。
其基本思路是通过寻找一个能够把不同类别的数据分开的超平面来进行分类。
a. 超平面超平面是指将n维空间中的数据划分为两个区域(即两个类别)的线性划分面。
在二维平面中,超平面可以看作一条直线,而在三维空间中,超平面则是一个平面。
在n维空间中,超平面为一个n-1维的子空间,可以表示为:· 其中,w是法向量,b是平面的偏移量。
b. 支持向量支持向量是指距离超平面最近的样本点。
在SVM中,超平面的位置由离它最近的几个样本点确定,这些样本点被称为支持向量。
它们是分类的关键。
c. 间隔间隔是指从超平面到支持向量的距离。
在SVM中,我们希望将两个类别的数据分开的间隔最大化,从而得到最好的分类效果。
因此,SVM被称为最大间隔分类器。
二、算法步骤SVM算法的基本步骤包括数据预处理、模型训练、模型优化和预测。
具体流程如下:a. 数据预处理数据预处理是指对原始数据进行清洗、标准化、转换等操作,使其适合用于SVM的训练和预测。
常见的预处理方式包括数据清洗、特征选择、特征缩放等。
b. 模型训练模型训练是指使用支持向量机算法对样本数据进行学习和分类,并确定最佳超平面和支持向量。
SVM学习过程可以通过求解有约束的二次优化问题来实现。
通常使用QP(Quadratic Programming)算法求解。
c. 模型优化模型优化是指对SVM模型进行优化,以提高对新数据的分类准确度。
SVM的优化主要包括核函数的选择和调整参数C和gamma的值。
d. 预测预测是指使用已训练好的SVM模型对新数据进行分类,并输出预测结果。
SVM的常用多分类算法概述

SVM的常用多分类算法概述SVM(支持向量机)是一种常用的分类算法,它可以用于二分类问题,也可以扩展到多分类问题。
在本文中,我将概述一些常用的多分类算法。
1. 一对一(One-vs-One)方法:这是最简单的多分类方法之一,其中每个类别之间都建立一个二分类模型。
对于N个类别,需要构建N(N-1)/2个二分类模型。
在预测阶段,使用所有二分类模型对新样本进行预测,并选择具有最高投票得分的类别作为最终预测结果。
优点:-简单直观,易于实现。
-对于每个二分类模型,只需要使用两个类别的训练样本,减少了样本倾斜的问题。
缺点:-需要构建大量的二分类模型,计算复杂度较高。
-对于不平衡的数据集,可能会导致一些类别之间的分类性能差异。
2. 一对其余(One-vs-Rest)方法:这种方法也被称为一对多方法,其中每个类别都建立一个二分类模型,将其与其他所有类别合并。
对于N个类别,需要构建N个二分类模型。
在预测阶段,使用所有二分类模型对新样本进行预测,并选择具有最高投票得分的类别作为最终预测结果。
优点:-相对于一对一方法,需要构建的二分类模型数量较少,计算复杂度较低。
-对于不平衡的数据集,可以更好地处理一些类别的分类问题。
缺点:-在一些情况下,可能会出现决策边界不明确的情况,导致分类性能下降。
3.多类别SVM方法:SVM本身是一个二分类算法,但可以通过一些扩展方法来处理多分类问题。
其中一种方法是One-vs-One和One-vs-Rest的结合,即将N个类别分为多个子问题,每个子问题使用一对一或一对其余方法进行解决。
在预测阶段,使用所有子问题的预测结果进行投票或加权投票,选择具有最高得分的类别作为最终预测结果。
优点:-可以使用SVM的优点,如高效的边界计算和泛化能力。
-可以应用于多类别问题,而不需要引入其他算法。
缺点:-计算复杂度较高,特别是当类别数量较大时。
-在一些情况下,可能会出现决策边界不明确的情况,导致分类性能下降。
svm算法公式

svm算法公式【原创版】目录1.SVM 算法概述2.SVM 算法公式简介3.SVM 算法公式详解4.SVM 算法公式的应用5.总结正文一、SVM 算法概述支持向量机(Support Vector Machine,SVM)是一种经典的二分类机器学习算法,由 Corinna Cortes 和 Vladimir Vapnik 于 1995 年提出。
它的主要思想是找到一个最佳超平面,使得不同类别的数据点之间的距离最大化。
SVM 算法在实际应用中表现出卓越的性能,被广泛应用于模式识别、图像识别、文本分类等领域。
二、SVM 算法公式简介SVM 算法的核心是基于最大间隔分隔超平面,其公式可以表示为:1.找到一个超平面 $w * x + b = 0$,使得所有样本点到这个超平面的几何距离最大化。
2.通过对所有样本点进行分类,得到分类结果。
三、SVM 算法公式详解SVM 算法的公式可以分为以下三个部分:1.最大间隔超平面假设我们有一组样本点 $(x_1, y_1), (x_2, y_2),..., (x_n, y_n)$,其中 $y_i in {-1, 1}$ 表示样本点属于正负两个类别。
我们的目标是找到一个超平面 $w * x + b = 0$,使得所有样本点到这个超平面的几何距离最大化。
我们可以通过拉格朗日乘子法(Lagrange Multiplier)来解决这个问题。
2.拉格朗日乘子法拉格朗日乘子法是一种用于求解带约束优化问题的方法。
在 SVM 算法中,我们希望在满足约束条件的前提下,最大化超平面的几何距离。
我们可以引入拉格朗日乘子 $alpha_i$,将问题转化为求解无约束问题的最大化问题。
3.软间隔和硬间隔根据拉格朗日乘子法的求解结果,我们可以得到两种类型的超平面:软间隔超平面和硬间隔超平面。
- 软间隔超平面:当某些样本点不满足约束条件时,我们称之为软间隔超平面。
在这种情况下,我们可以继续调整超平面,使得更多的样本点满足约束条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
支持向量机SVM分类算法SVM的简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。
支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力)。
以上是经常被有关SVM 的学术文献引用的介绍,我来逐一分解并解释一下。
Vapnik是统计机器学习的大牛,这想必都不用说,他出版的《Statistical Learning Theory》是一本完整阐述统计机器学习思想的名著。
在该书中详细的论证了统计机器学习之所以区别于传统机器学习的本质,就在于统计机器学习能够精确的给出学习效果,能够解答需要的样本数等等一系列问题。
与统计机器学习的精密思维相比,传统的机器学习基本上属于摸着石头过河,用传统的机器学习方法构造分类系统完全成了一种技巧,一个人做的结果可能很好,另一个人差不多的方法做出来却很差,缺乏指导和原则。
所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂。
正是因为SVM关注的是VC维,后面我们可以看到,SVM解决问题的时候,和样本的维数是无关的(甚至样本是上万维的都可以,这使得SVM很适合用来解决文本分类的问题,当然,有这样的能力也因为引入了核函数)。
结构风险最小听上去文绉绉,其实说的也无非是下面这回事。
机器学习本质上就是一种对问题真实模型的逼近(我们选择一个我们认为比较好的近似模型,这个近似模型就叫做一个假设),但毫无疑问,真实模型一定是不知道的(如果知道了,我们干吗还要机器学习?直接用真实模型解决问题不就可以了?对吧,哈哈)既然真实模型不知道,那么我们选择的假设与问题真实解之间究竟有多大差距,我们就没法得知。
比如说我们认为宇宙诞生于150亿年前的一场大爆炸,这个假设能够描述很多我们观察到的现象,但它与真实的宇宙模型之间还相差多少?谁也说不清,因为我们压根就不知道真实的宇宙模型到底是什么。
这个与问题真实解之间的误差,就叫做风险(更严格的说,误差的累积叫做风险)。
我们选择了一个假设之后(更直观点说,我们得到了一个分类器以后),真实误差无从得知,但我们可以用某些可以掌握的量来逼近它。
最直观的想法就是使用分类器在样本数据上的分类的结果与真实结果(因为样本是已经标注过的数据,是准确的数据)之间的差值来表示。
这个差值叫做经验风险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。
别嫌我说得太详细哦。
线性分类器线性分类器(一定意义上,也可以叫做感知机) 是最简单也很有效的分类器形式.在一个线性分类器中,可以看到SVM形成的思路,并接触很多SVM的核心概念.用一个二维空间里仅有两类样本的分类问题来举个小例子。
如图所示C1和C2是要区分的两个类别,在二维平面中它们的样本如上图所示。
中间的直线就是一个分类函数,它可以将两类样本完全分开。
一般的,如果一个线性函数能够将样本完全正确的分开,就称这些数据是线性可分的,否则称为非线性可分的。
什么叫线性函数呢?在一维空间里就是一个点,在二维空间里就是一条直线,三维空间里就是一个平面,可以如此想象下去,如果不关注空间的维数,这种线性函数还有一个统一的名称——超平面(Hyper Plane)!实际上,一个线性函数是一个实值函数(即函数的值是连续的实数),而我们的分类问题(例如这里的二元分类问题——回答一个样本属于还是不属于一个类别的问题)需要离散的输出值,例如用1表示某个样本属于类别C1,而用0表示不属于(不属于C1也就意味着属于C2),这时候只需要简单的在实值函数的基础上附加一个阈值即可,通过分类函数执行时得到的值大于还是小于这个阈值来确定类别归属。
例如我们有一个线性函数g(x)=wx+b【看到好多人都在问g(x)=0 和 g(x)的问题,我在这里帮楼主补充一下:g(x)实际是以w为法向量的一簇超平面,在二维空间表示为一簇直线(就是一簇平行线,他们的法向量都是w),而g(x)=0只是这么多平行线中的一条。
】我们可以取阈值为0,这样当有一个样本xi需要判别的时候,我们就看g(xi)的值。
若g(xi)>0,就判别为类别C1,若g(xi)<0,则判别为类别C2(等于的时候我们就拒绝判断,呵呵)。
此时也等价于给函数g(x)附加一个符号函数sgn(),即f(x)=sgn [g(x)]是我们真正的判别函数。
关于g(x)=wx+b这个表达式要注意三点:一,式中的x不是二维坐标系中的横轴,而是样本的向量表示,例如一个样本点的坐标是(3,8),则xT=(3,8) ,而不是x=3(一般说向量都是说列向量,因此以行向量形式来表示时,就加上转置)。
二,这个形式并不局限于二维的情况,在n维空间中仍然可以使用这个表达式,只是式中的w成为了n维向量(在二维的这个例子中,w是二维向量,为了表示起来方便简洁,以下均不区别列向量和它的转置,聪明的读者一看便知);三,g(x)不是中间那条直线的表达式,中间那条直线的表达式是g(x)=0,即wx+b=0,我们也把这个函数叫做分类面。
实际上很容易看出来,中间那条分界线并不是唯一的,我们把它稍微旋转一下,只要不把两类数据分错,仍然可以达到上面说的效果,稍微平移一下,也可以。
此时就牵涉到一个问题,对同一个问题存在多个分类函数的时候,哪一个函数更好呢?显然必须要先找一个指标来量化“好”的程度,通常使用的都是叫做“分类间隔”的指标。
下一节我们就仔细说说分类间隔,也补一补相关的数学知识。
上面说到对于文本分类这样的不适定问题(有一个以上解的问题称为不适定问题),需要有一个指标来衡量解决方案(即我们通过训练建立的分类模型)的好坏,而分类间隔是一个比较好的指标。
在进行文本分类的时候,我们可以让计算机这样来看待我们提供给它的训练样本,每一个样本由一个向量(就是那些文本特征所组成的向量)和一个标记(标示出这个样本属于哪个类别)组成。
如下:Di=(xi,yi)xi就是文本向量(维数很高),yi就是分类标记。
在二元的线性分类中,这个表示分类的标记只有两个值,1和-1(用来表示属于还是不属于这个类)。
有了这种表示法,我们就可以定义一个样本点到某个超平面的间隔:δi=yi(wxi+b)这个公式乍一看没什么神秘的,也说不出什么道理,只是个定义而已,但我们做做变换,就能看出一些有意思的东西。
首先注意到如果某个样本属于该类别的话,那么wxi+b>0(记得么?这是因为我们所选的g(x)=wx+b就通过大于0还是小于0来判断分类),而yi也大于0;若不属于该类别的话,那么wxi+b<0,而yi也小于0,这意味着yi(wxi+b)总是大于0的,而且它的值就等于|wxi+b|!(也就是|g(xi)|)现在把w和b进行一下归一化,即用w/||w||和b/||w||分别代替原来的w和b,那么间隔就可以写成【点到直线的距离,做解析几何中为:D = (Ax + By + c) /sqrt(A^2+B^2)sqrt(A^2+B^2)就相当于||W||, 其中向量W=[A, B];(Ax + By + c)就相当于g(X), 其中向量X=[x,y]。
】这个公式是不是看上去有点眼熟?没错,这不就是解析几何中点xi到直线g(x)=0的距离公式嘛!(推广一下,是到超平面g(x)=0的距离, g(x)=0就是上节中提到的分类超平面)小Tips:||w||是什么符号?||w||叫做向量w的范数,范数是对向量长度的一种度量。