【机器学习具体解释】SVM解二分类,多分类,及后验概率输出

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885

CSDN?勿在浮沙筑高台

支持向量机(Support Vector Machine)以前在分类、回归问题中非常流行。支持向量机也称为最大间隔分类器,通过分离超平面把原始样本集划分成两部分。

首先考虑最简单的情况:线性可分支持向量机。即存在一个超平面能够把训练样本分开。

1.线性可分支持向量机

1.考虑一个线性二分类的问题;例如以下左图,在二维平面上有两种样本点x,目标值分别标记为{-1,1}。能够作出无数条直线wTx+b=0,直线上方的点标记为{+1}的带入直线公式会得到wTx+b>0,下方的点。标记为{-1}带入直线公式会得到wTx+b<0,因此能够用wTx+b的符号决定点的分类,写成决策函数为f(x,w,b)=sign(wTx+b)把两类点分开。可是个採用哪个直线最好呢?

2.一般来说,当样本点离直线越远。则分类正确的确信度越大;例如以下右图所看到的,A,B,C三个样本点都被预測分类到‘×’类中。可是对于A的分类正确的确信度比C大。因为点C里分类直线wTx+b=0非常近,当直线的斜率稍一点变化,即会导致C被分到还有一类中。

综上。我们想要得到的直线是离样本点最远。同时又能保证正确划分的直线。

1.1函数间隔与几何间隔

由二维直线wTx+b=0扩展到高维被称为超平面(w,b)。

一个点距离超平面的远近能够表示分类预測的确信程度。在超平面wTx+b=0确定的情况下,|wTx+b|能够相对地表示点x距离超平面的远近。并且假设分类正确。则y(i)与wTx(i)+b的符号一致,即y(i)(wTx(i)+b)>0,同一时候表示分类的正确性以及确信度。

函数间隔:超平面(w,b)关于样本点(x(i),y(i))的函数间隔为

函数间隔:γ^(i)=y(i)(wTx(i)+b)

定义超平面关于样本集S的函数间隔为超平面(w,b)与S中全部样本点的函数间隔的最小值

γ^=mini=1,2,...m γ^(i)

定义γ^是为了最大化间隔,γ^表示关于超平面与训练集中样本的函数间隔最小值,以下仅仅要最大化γ^就可以。

注意到函数间隔实际上并不能表示点到超平面的距离,因为当超平面(w,b)參数扩大同样的倍数后,如(2w,2b),超平面的位置并没有改变,可是函数间隔也变大了同样的倍数2γ^(i).

几何间隔

如上图所看到的:设样本点A坐标为x(i),点A到超平面的垂直距离记为γ(i),分离超平面wTx(i)+b=0的单位法向量为w||w||,因此点B的坐标为x(i)?γ(i)w||w||,且点B在直线上,带入直线公式有:

wT(x(i)?γ(i)w||w||)+b=0;解得:γ(i)=(wTx(i)+b)||w||

假设点被正确分类。y(i)与(wTx(i)+b)||w||的符号一致,由此

同理定义几何间隔:γ(i)=y(i)(wTx(i)+b||w||)

超平面与样本集S的几何间隔为γ=mini=1,2,...m γ(i)

几何间隔不随着超平面參数的变化而变化,比如超平面參数(w,b)变为(2w,2b)。函数间隔γ^(i)变为2γ^(i),而几何间隔γ(i)保持不变。

函数间隔与几何间隔的关系:γ(i)=γ^(i)||w||;γ=γ^||w||,若||w||=1,函数间隔与几何间隔同样。

1.2间隔最大化

如上所述。支持向量机的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。γ表示分离超平面与训练集中样本的几何间隔的最小值。为了间隔最大化。仅仅须要最大化γ,同一时候全部样本的几何间隔必须满足γ(i)≥γ,i=1,2,...,m;

maxw,b γ

s.t. y(i)(wTx(i)+b||w||)≥γ

上述问题,能够转变为一个凸二次规划问题。这是支持向量机的一个重要属性,局部极值即为全局最值。

考虑函数间隔与几何间隔的关系:

上述优化问题中,当超平面參数(w,b)同一时候变为(2w,2b),函数间隔也会变为2γ^,目标函数的解并不会变化。即γ^的取值不影响优化问题的解。因此令γ^=1。目标函数变为最大化1||w||,即最小化||w||2。为了后面的求解方便,加入因子12也不影响目标函数的解;

上述问题为一个凸优化问题,通过某些优化算法能够求解。

以下继续介绍拉格朗日对偶算法,能够更进一步优化上述问题,同一时候自然引入核函数,推广到高维数据。

1.3拉格朗日对偶性

有时考虑解决原始问题的对偶问题会更高效。

原始问题

f(w),gi(w),hi(w)均为连续可微:

写出拉格朗日函数。当中αi≥0,β≥0称为拉格朗日乘子:

定义关于w的函数θP(w)=maxα,βL(w,α,β);能够证明假设w满足上述约束条件gi(w)≤0,hi(w)=0,则有θP(w)=f(w)

由此原始问题的约束最优化问题变为极小极大问题:

设原始问题的最优解记为p?=minwf(w)=minwθp(w).

对偶问题

把上述极小极大问题minw maxα,βL(w,α,β),改为极大极小变为对偶问题,即:

定义:

设此极大极小问题的最优解记为d?,能够证明

为了使得对偶问题与原始问题的最优解相等d?=p?,必须满足下述几个条件。称为KKT条件

1.4最优间隔分类器

回想原始问题:

写成拉格朗日函数。因为仅仅有不等式约束所以仅仅包括拉格朗日乘子αi:

原始问题最优解p?=minw,b maxαL(w,b,α);对偶问题的最优解d?=maxα minw,bL(w,b,α)

对偶问题先求关于參数w,b的最小值,再求关于參数α的最大值。

首先,分别对w,b求偏导数并令为0。得:

把上述结果带入拉格朗日函数L(w,b,α)

注意到上述是仅仅关于參数α的函数,记为W(α),由对偶函数。下一步即最大化W(α)

以下的目的是解决上述优化问题。通常採用SMO算法,本篇文章暂不做介绍。假如已经得到最优解α=(α1,α2,...,αm),带回到上面对w求偏导得到的公式,能够得到w的值。以下要求得b得值,考虑KKT条件有:αi[y(i)(wTx(i)+b)?1]=0。i=1,2..m,当中必定存在一个αj≠0,(否则w=0,不是原始解)。

当αj≠0时y(i)(wTx(i)+b)=1,能够解出b的代数式。b=y(j)?∑mi=1αiy(i)(x(i),x(j)),也能够对全部採用满足条件的b加和求平均;然后就可以得到最佳分类超平面:

依据KKT条件有αi[y(i)(wTx(i)+b)?1]=0,i=1,2..m,当αi>0时,必定有y(i)(wTx(i)+b)=1,即该样本点的函数间隔为1。例如以下图所看到的,落在直线wTx+b=±1上。此向量即称为支持向量。对于落在直线wTx+b=±1以内的点,函数间隔y(j)(wTx(j)+b)>1,必定有αj=0,当计算函数最优切割超平面參数w,b时。这些点相应的αj=0。所以对參数没有影响。仅仅有支持向量,即落在wTx+b=±1上数据影响着最优超平面的计算。

2.线性支持向量机

以上讨论的内容是建立在数据是线性可分的情况。即存在一个分离超平面能够把训练数据分为两部分。实际上数据并不会这么理想,例如以下图所看到的。即存在某些样本点不能满足函数间隔大于等于1这个条件。

这时能够为每一个数据点设置一个松弛因子ξi≥0,使得函数间隔γi加上松弛因子ξi大于等于1.即y(i)(wTx(i)+w0)≥1?ξi,同一时候对每一个松弛因子ξi支付一个代价ξi。由此原始问题变为:

C称为惩处參数(C>0)。C值越大对误分类的惩处越大。因为当C为无穷大时,即成为了线性可分问题。

採用与线性可分同样的过程。建立拉格朗日函数:

由对偶函数得。首先分别对w,b,ξi求偏倒数,并令为0,能够得到上面右式,带回到拉格朗日函数中,因为μi≥0,且αi=C?μi,所以有:

由上述KKT条件能够得到:

3.非线性支持向量机

3.1 概念

如上图所看到的,原始样本数据线性不可分,即无法用一条直线或分离超平面将两类分开。

可是对原始数据採用非线性变换?(x),非线性变换将原始数据从低维映射到高维,高维上数据就可能变得线性可分。

步骤:首先使用非线性变换将原始数据集映射到新空间中。称为特征空间,在特征空间中数据将变的线性可分,然后採用线性支持向量机的方法训练分离超平面參数。

但在高维上计算量会急剧增大。会造成维数灾难,自然引入核技巧(kernal trick)。

3.2 核技巧

观察线性支持向量机的对偶问题为:

上述目标函数中。仅仅包括原始数据的内积形式<x(i),x(j)>=(x(i))T(x(j))。

由上述分析,仅仅须要找到一个合适的非线性变换?(x),将原始数据x(i)映射到高维特征空间?(x(i))中。内积形式变为为<?(x(i)),?(x(j))>。

定义核函数K(x,z)=?(x)T?(z)。表示两个原始数据x,z分别变换到特征空间中的内积值。

核技巧的方法即不用构造非线性映射?(x)而直接给定一个核函数K(x,z),降低了计算量。如以下样例一个核函数等于两个非线性变换的内积:

Eg:x,z∈Rn, K(x,z)=(xTz)2=∑i,j=1n(xixj)(zizj),对应?(x)=(x1x1,x1x2...,x1xn,x2x1,...xnxn)T

经常使用几个核函数:

多项式核函数:K(x,z)=(xTz+1)q,q>0

高斯核函数:K(x,z)=exp(?||x?z||22σ2),称为高斯径向基函数分类器,即上面图中採用方法

双曲正切函数:K(x,z)=tanh(βxTz+γ)。为满足Mercer定理,一组可能的參数β=2,γ=1

4.SVM后验概率输出

SVM分类器中判决函数y^=sign(f(x))=sign(wTx+b)。能够採用f(x)与sigmoid函数结合。把f(x)=wTx+b解释成y=1的对数几率,SVM分类器概率输出(Platt 2000):

p(y^=1|x)=σ(Af(x)+B)

參数A,B通过最大释然的方法求解,为防止过拟合。求解A,B參数的样本数据应独立于训练分类的样本。因为在训练分类器阶段,没有考虑后验概率的问题,因此SVM后验概率结果不可靠。

5.几种损失函数的比較

如图:0-1损失是二分类问题的真正损失函数,合页损失与logistic损失是对0-1的损失函数的近似。最小二乘损失强化了分类点在正确分类边界处。

5.1合页损失函数

对于线性支持向量机。目标函数是最小化12||w||2+C∑mi=1ξi,当中ξi为每一个样本支付的代价;能够定义ξi=[1?y(i)(wTx(i)+b)]+;下标’+’表示取正值函数。假设z>0,[z]+=z;否则[z]+=0,因此目标函数能够定义为:

minw,b ∑i=1m[1?y(i)(wTx(i)+b)]++λ||w||2

第一项关于被称为经验损失,定义z=y(i)(wTx(i)+b);损失函数为E(z)=[1?z]+。如上图所看到的,因为图形像一个合页,被称为合页损失。

上述目标函数中。当λ=12C时。等价于原目标函数12||w||2+C∑i=1mξi

5.2logistic回归损失

为了方便叙述,改变一下标记方法。记原始样本数据为(xi,ti)。t∈[1,?1],模型预測值为y(xi)=wTxi+b。结合sigmoid函数。能够把y(xi)带入sigmoid函数中,后验概率输出。

即p(t=1|y)=σ(y),则p(t=?1|y)=1?σ(y)=σ(?y)。综上两种情况p(t|y)=σ(ty)。

採用最大似然函数:

目标函数能够定义为对数似然的负数。同一时候加上一个二次正则化因子。

∑i=1mln[1+exp(?yiti)]+λ||w||2

第一项即为logistic回归损失函数ELR(yt)=ln[1+exp(?yt)]

5.3最小二乘损失

与线下回归相似,能够採用最小二乘损失作为目标函数:

∑i=1m(yi?ti)2+λ||w||2

6.SVM多分类问题

1.one-versus-the-rest

对于K个类别的问题。在训练样本上,採用SVM训练出K个分类器。每一个分类器将训练样本分成Ki类与非Ki类,然后採用SVM训练出模型。如上图所看到的,每一个分类器仅仅能回答是否属于Ki的答案。此种方法会造成一个样本数据属于多个类别的情况,上左图阴影部分。

也能够採用:y(x)=maxk yk(x),即採用最大的函数间隔的那个类别。但不同的分类器有可能尺度不同样,函数距离自然不能作为推断标准。

同一时候,训练样本的不平衡也可能造成分类器有误差。

2.one-versus-one

在K分类的情况下,训练出K(K?1)2个分类器,即每两个类别训练出一个分类器,然后依据K(K?1)2个分类器的结果,採用投票方法给出预測结果。

此种方法依旧造成部分数据不属于不论什么类的问题,上右图阴影部分所看到的。

3.其它方法

1.一次训练K分类的SVM。

參数多。复杂度高;(Weston and Watkins 1999)

2.DAGSVM ;(Platt 2000)

參考:

1. PRML

2. MLAPP

3. CS 229-Andrew Ng

时间: 2024-10-06 09:20:32

【机器学习具体解释】SVM解二分类,多分类,及后验概率输出的相关文章

【机器学习详解】SVM解二分类,多分类,及后验概率输出

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885 CSDN?勿在浮沙筑高台 支持向量机(Support Vector Machine)曾经在分类.回归问题中非常流行.支持向量机也称为最大间隔分类器,通过分离超平面把原始样本集划分成两部分. 首先考虑最简单的情况:线性可分支持向量机,即存在一个超平面可以把训练样本分开. 1.线性可分支持向量机 1.考虑一个线性二分类的问题:如下左图,在二维平面上有二种样本点x,目

SVM《二、软分类与目标函数的推导》

原文地址:https://www.cnblogs.com/winslam/p/10203296.html

机器学习经典算法详解及Python实现--基于SMO的SVM分类器

原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector machine,简称SVM.通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解. (一)理解SVM基本原理 1,SVM的本质--分类 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些

机器学习经典算法详解及Python实现---朴素贝叶斯分类及其在文本分类、垃圾邮件检测中的应用

摘要: 朴素贝叶斯分类是贝叶斯分类器的一种,贝叶斯分类算法是统计学的一种分类方法,利用概率统计知识进行分类,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率(即该对象属于某一类的概率),然后选择具有最大后验概率的类作为该对象所属的类.总的来说:当样本特征个数较多或者特征之间相关性较大时,朴素贝叶斯分类效率比不上决策树模型:当各特征相关性较小时,朴素贝叶斯分类性能最为良好.另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算.本文详述了朴素贝叶斯分类的统计学

【机器学习详解】SVM解回归问题

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51121767 CSDN?勿在浮沙筑高台 对于SVM解分类二分类问题,及多分类问题,在上一篇文章已经详述http://blog.csdn.net/luoshixian099/article/details/51073885.本文将对SVM解回归问题,进行分析. 1.方法分析 在样本数据集(xn,tn)中,tn不是简单的离散值,而是连续值.如在线性回归中,预测房价的问题.与线性回

机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树

摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree),本文介绍了CART用于离散标签分类决策和连续特征回归时的原理.决策树创建过程分析了信息混乱度度量Gini指数.连续和离散特征的特殊处理.连续和离散特征共存时函数的特殊处理和后剪枝:用于回归时则介绍了回归树和模型树的原理.适用场景和创建过程.个人认为,回归树和模型树

七月算法--12月机器学习在线班-第十二次课笔记—支持向量机(SVM)

七月算法-12月机器学习在线班--第十二次课笔记-支持向量机(SVM) 七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com ? 复习的内容: 对偶问题 KKT条件 ? SVM 1.1三类数据类型 线性可分支持向量机 线性支持向量机 非线性支持向量机 ? 1.2 线性分类 1.2.1 样本到分类面的距离的意义 点到直线的距离,ABC是归一化的."+"正类别,"-"负类别 因此距离可以直接用AX+BY+c=f(x,

机器学习经典算法详解及Python实现--线性回归(Linear Regression)算法

(一)认识回归 回归是统计学中最有力的工具之一.机器学习监督学习算法分为分类算法和回归算法两种,其实就是根据类别标签分布类型为离散型.连续性而定义的.顾名思义,分类算法用于离散型分布预测,如前面讲过的KNN.决策树.朴素贝叶斯.adaboost.SVM.Logistic回归都是分类算法:回归算法用于连续型分布预测,针对的是数值型的样本,使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签. 回归的目的就是建立一个回归方程用来预测目

支持向量机(SVM)(二)-- 拉格朗日对偶(Lagrange duality)

简介: 1.在之前我们把要寻找最优的分割超平面的问题转化为带有一系列不等式约束的优化问题.这个最优化问题被称作原问题.我们不会直接解它,而是把它转化为对偶问题进行解决. 2.为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点.即拉格朗日函数,再通过这个函数来寻找最优点. 3.约束条件可以分成不等式约束条件和等式约束条件,只有等式约束条件的问题我们在高等数学课