机器学习从原理到应用Chp6-支持向量机_第1页
机器学习从原理到应用Chp6-支持向量机_第2页
机器学习从原理到应用Chp6-支持向量机_第3页
机器学习从原理到应用Chp6-支持向量机_第4页
机器学习从原理到应用Chp6-支持向量机_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章

支持向量机(SupportVectorMachine,SVM)大纲最大间隔分类器软间隔SVMSVM的对偶问题核化SVM支持向量回归(SVR)Sklearn中的SVM的APISVM应用案例间隔

两个线性分类器均能将所有训练样本分对分类器的决策面过于接近蓝色样本集合,间隔小

如果遇到一个离原来集合稍远的样本,很有可能会判断错误分类器的决策面位于两个点集正中间位置,远离正负两类样本集合,间隔大离两类样本集合都较远,给每个类的数据分布更多的浮动空间,降低犯错的风险,因而该分类器能更好地泛化到测试数据。分类器的决策面过于接近蓝色样本集合

SVM:从几何出发的最大间隔分类器

xxp0

最大间隔原则:最大化两个类最近点之间的距离这个距离被称为间隔(margin)我们先假设分类器是线性可分的间隔

间隔

xxp0

代入得到:当x=0时,原点到分类面的距离:间隔

xxp0

线性判别函数

SVM符号表示

bw

SupportVector

SupportVectorSupportVectorSupportVector

间隔计算

SVM:最大间隔

大纲最大间隔分类器软间隔SVMSVM的对偶问题核化SVM支持向量回归(SVR)Sklearn中的SVM的APISVM应用案例在实际问题中,数据不一定完全线性可分。数据不完全线性可分被错分的样本或者数据完全线性可分,但完全分开训练样本的分类器间隔小。数据可完全线性可分,但间隔小样本被完全分对,但间隔小少量样本被错分,但间隔大

C-SVM

C-SVM

数据不完全线性可分:松弛变量

bw

SupportVectorSupportVectorMisclassifiedpoint

>1

<1

=0

C-SVM

合页损失(HingeLoss)

将合页损失代入C-SVM的目标函数对比一般机器学习模型的目标函数形式相同。C-SVM:合页损失+L2正则注意:SVM也可扩展到采用合页损失+L1正则。

小练习1:硬间隔SVM决策边界只与支持向量的位置有关(√)离间隔更远的正确一侧的其他点不会改变决策边界(√)小练习2:软间隔SVM

小练习3:

:硬间隔SVM

vs.软间隔SVM给定线性可分的数据集,我们训练一个硬间隔SVM,发现间隔太小,以至于模型容易过拟合。你如何解决过拟合问题?我们可以通过使用软间隔SVM来选择更大的间隔,以使得模型泛化性能更好。

大纲最大间隔分类器软间隔SVMSVM的对偶问题核化SVM支持向量回归(SVR)Sklearn中的SVM的APISVM应用案例C-SVM的目标函数为为带不等式约束的优化问题。带不等式约束的优化问题可采用拉格朗日乘子变成非约束的优化问题,再进一步变成对偶问题(dualproblem)。通过求解与原问题等价的对偶问题(dualproblem)得到原始问题的最优解。优点

1.对偶问题往往更容易求解

2.可以自然的引入核函数,进而推广到非线性模型SVM分类模型

C-SVM原问题目标函数:写成标准的不等式约束问题:对应的广义拉格朗日函数:拉格朗日乘子法

一般地,原问题:

广义拉格朗日函数:对偶性(

Duality)

对偶性

对偶性注意:和原问题相比,对偶问题交换了max和min的顺序。

对偶性

对偶性

对偶性

SVM的对偶问题

SVM的对偶问题

SVM的对偶问题

w,b

的计算

SVM的对偶问题

α的稀疏性

α的稀疏性

bw

SupportVectorSupportVectorMisclassifiedpoint

>1

<1

=0

大纲最大间隔分类器软间隔SVMSVM的对偶问题核化SVM支持向量回归(SVR)Sklearn中的SVM的APISVM应用案例前面我们用超平面(线性模型)来分开不同类的训练样本。但在实际任务中,原始样本空间也许并不存在一个超平面能将训练样本分开。例如:对这类问题,我们可以将原始空间映射到一个更高维特征空间,使得在这个特征空间数据线性可分。核方法

核方法

核方法——对偶

核技巧(KernelTrick)

核技巧(KernelTrick)

构造核函数

另一种可选的方式是直接定义核函数。此时需保证函数是有效核。在显式定义特征映射的情况下,核函数为特征空间(可能为无限维)中的内积。构造核函数

核函数

多项式核

RBF核

例:金棕榈奖(Palmed‘Or)电影预测RBF核IMDB评分预算通过计算观测样本与训练样本/支持向量的相似性,将输入变换到无穷维空间例:金棕榈奖(Palmed‘Or)电影预测RBF核IMDB评分预算通过计算观测样本与训练样本“PulpFiction”的相似性,得到第1维特征例:金棕榈奖(Palmed‘Or)电影预测RBF核IMDB评分预算通过计算观测样本与训练样本“BlackSwan”的相似性,得到第2维特征例:金棕榈奖(Palmed‘Or)电影预测RBF核IMDB评分预算通过计算观测样本与训练样本“Transformer”的相似性,得到第3维特征例:金棕榈奖(Palmed‘Or)电影预测RBF核IMDB评分预算对第1维特征创建一个高斯函数

对第2维特征创建一个高斯函数

对第3维特征创建一个高斯函数例:金棕榈奖(Palmed‘Or)电影预测RBF核IMDB评分预算

例:金棕榈奖(Palmed‘Or)电影预测RBF核

(IMDB评分)(预算)例:金棕榈奖(Palmed‘Or)电影预测RBF核IMDB评分预算RBF:核函数的宽度

核的闭包性质:令

k1

k2

为定义在X*X核,则下列表示也是核:更多核函数例:RBF核

Source:/stable/auto_examples/svm/plot_rbf_parameters.html

在鸢尾花分类任务上(只取了前2维特征),不同参数值的RBF核SVM分类器的交叉验证精度例:RBF核Source:/stable/auto_examples/svm/plot_rbf_parameters.html在鸢尾花分类任务上(只取了前2维特征),不同参数值的RBF核SVM分类器的交叉验证精度

模型越复杂模型越复杂

核函数编码特征相似度的先验信息。核函数的参数需要通过交叉验证选择或通过学习得到

。非线性核有时能极大提高分类器的性能。非线性核通常计算繁重(训练和预测)。小结:核方法小练习4:核SVM

大纲最大间隔分类器软间隔SVMSVM的对偶问题核化SVM支持向量回归(SVR)Sklearn中的SVM的APISVM应用案例

支持向量回归(Support

Vector

Regression,SVR)

问题:最小化SVR目标函数也等价于MAP?先验?似然?

松弛变量

与SVM类似,SVR的拉格朗日函数为:拉格朗日函数

SVR的对偶问题

SVR的对偶问题

SVR模型

KKT条件之二为:SVR的支持向量

大纲最大间隔分类器软间隔SVMSVM的对偶问题核化SVM支持向量回归(SVR)Sklearn中的SVM的APISVM应用案例sklearn.svm模块提供支持向量机算法,可用于分类、回归和异常值检测。分类实现有三种方式

LinearSVC基于liblinear实现线性SVM,比基于libsvm实现的线性SVC/NuSVC更快,同时可采用更多正则选择(L1/L2)和损失函数选择

L1正则可以得到特征系数稀疏的效果适用于样本数更多的情况

SVC和NuSVC类似,都是基于libsvm实现的C-SVM,二者在参数方面有细微不同(NuSVC有参数nu控制训练误差的上限和支持向量的下限)

SGDClassifier(不在sklearn.svm模块,在sklearn.linear_model)实现了基于随机梯度下的线性SVM分类。回归实现方式同分类类似。

SVM还支持非监督的异常值检测:OneClassSVMScikit-Learn中的SVM实现支持两种正则:L2正则和L1正则,正则参数为:penalty、C支持两种损失函数:

标准的合页损失‘hinge’和合页损失的平方‘squared_hinge’支持不同类别的样本权重设置:class_weightLinearSVCclass

sklearn.svm.LinearSVC(penalty=’l2’,

loss=’squared_hinge’,

dual=True,

tol=0.0001,

C=1.0,

multi_class=’ovr’,

fit_intercept=True,

intercept_scaling=1,

class_weight=None,

verbose=0,

random_state=None,

max_iter=1000)LinearSVC的参数参数说明备注penalty惩罚函数/正则函数,支持L2正则和L1正则,默认:L2loss损失函数,支持标准的合页损失‘hinge’和合页损失的平方‘squared_hinge’。dual原问题(primal)还是对偶问题求解。默认:True当样本数n_samples>特征数目n_features时,原问题求解更简单。tol迭代终止判据的误差范围。默认:1e-4C损失函数项的系数。默认:1multi_class多类分类处理策略,可为‘ovr’,‘crammer_singer’。‘ovr’为1对多,将多类分类转化为多个两类分类问题,‘crammer_singer’是一起优化多个分类的目标函数。缺省:‘ovr’‘crammer_singer’理论上看起来很好,实际上很少用,因为分类效果没有更好但计算量大。LinearSVC的参数参数说明备注fit_intercept是否在决策函数中加入截距项。缺省:True如果数据已经中心化,可以不用。intercept_scaling截距缩放因子,当fit_intercept为True且时,输入为[x,

ercept_scaling],即对输入特征加入1维常数项增加的常数项系数也受到l1/l2正则的惩罚,所以要适当增大常数项。class_weight不同类别样本的权重,用户指定每类样本权重或‘balanced’(每类样本权重与该类样本出现比例成反比)。缺省:None在损失计算中,对不同类别的样本施加相应的权重。verbose是否详细输出random_state随机种子。如果随机种子相同,每次洗牌得到的结果一样。可设置为某个整数max_iter最大迭代次数。缺省:1000LinearSVC的属性属性说明备注coef_回归系数/权重,与特征维数相同。intercept_截距项。LinearSVC的方法方法说明fit(X,

y[,

sample_weight])predict(X)返回X对应的预测值(类别标签)decision_function(X)预测的置信度(样本到分类超平面的带符号距离)score(X,

y[,

sample_weight])评估模型预测性能,返回模型预测的正确率。densify()如果之前将系数矩阵变成了稀疏模式,再将其变回稠密模式(fit函数的格式)sparsify()将系数矩阵变成了稀疏模式注意:LinearSVC不能像Logistic回归那样得到每个类别的概率。支持L2正则支持多种核函数:‘linear’,‘poly’,‘rbf’,‘sigmoid’,‘precomputed’

和自定义核函数支持多类分类实现:一对一‘ovo’支持不同类别的样本权重设置:class_weightSVCclass

sklearn.svm.SVC(C=1.0,

kernel=’rbf’,

degree=3,

gamma=’auto’,

coef0=0.0,

shrinking=True,

probability=False,

tol=0.001,

cache_size=200,

class_weight=None,

verbose=False,

max_iter=

-1,

decision_function_shape=’ovr’,

random_state=None)SVC的参数参数说明备注C损失函数项的系数。默认:1kernel核函数。支持

‘linear’,‘poly’,‘rbf’,‘sigmoid’,‘precomputed’oracallable.

默认:

‘‘rbf’

。degree多项式核的多项式阶数gamma核函数(‘poly’,‘rbf’,‘sigmoid’)系数。coef0核函数(‘poly’,‘sigmoid’)参数。shrinking是否收缩probability是否支持概率估计。支持概率估计会降低速度,需在模型训练(fit)之前设置。tol迭代终止判据的误差范围。默认:1e-3cache_size核的cache的大小(单位:MB)SVC的参数参数说明备注class_weight不同类别样本的权重,用户指定每类样本权重或‘balanced’(每类样本权重与该类样本出现比例成反比)。缺省:None在损失计算中,对不同类别的样本施加相应的权重。verbose是否详细输出max_iter最大迭代次数。缺省:-1,没有限制decision_function_shape决策函数的形式,可为‘ovo’,‘ovr’。‘ovr’为1对多,将多类分类转化为多个两类分类问题。‘ovo’为libsvm原始决策函数形式,1对1,每两个类之间有一个分类面。缺省:‘ovr’random_state随机种子。如果随机种子相同,每次洗牌得到的结果一样。可设置为某个整数。用于概率估计的数据重排时的伪随机数生成器的种子SVC的属性属性说明备注coef_原问题的系数/权重(线性核有效),与特征维数相同。intercept_截距项。support_支持向量的索引support_vectors_支持向量n_support_每个类的支持向量的数目dual_coef_注意:LinearSVC没有支持向量等属性。

SVC的常用方法方法说明fit(X,

y[,

sample_weight])predict(X)返回X对应的预测值(类别标签)decision_function(X)预测的置信度(样本到分类超平面的带符号距离)score(X,

y[,

sample_weight])评估模型预测性能,返回模型预测的正确率。predict_log_proba(X)返回X对应的预测值(每个类别对应的概率的log值)predict_proba(X)返回X对应的预测值(每个类别对应的概率)注意:如果参数probability被设为True,则可以得到属于每个类别的概率估计(predict_proba和predict_log_proba方法可用)

核函数参数

多类别分类SVC中的decision_function方法对每

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论