精华内容
下载资源
问答
  • 支持向量回归

    2014-03-20 13:41:19
    支持向量回归是在支持向量机上进一步的应用,使用支持向量回归可拟合函数
  • 支持向量机SVM、支持向量回归SVR详细推导

    万次阅读 多人点赞 2019-06-30 09:31:52
    文章详细介绍了支持向量机SVM及其拓展,支持向量回归SVR.并从线性分类和非线性分类的角度出发,详细推导了硬间隔、软间隔和核函数的支持向量机。

    目录


    一、SVM简介

    简介:SVM的英文全称是Support Vector Machines,中文叫支持向量机。支持向量机是我们用于分类的一种算法。支持向量也可以用于回归,此时叫支持向量回归(Support Vector Regression,简称SVR)。

    发展历史:1963年,ATE-T Bell实验室研究小组在Vanpik的领导下,首次提出了支持向量机(SVM)理论方法。但在当时,SVM在数学上不能明晰地表示,人们对模式识别问题的研究很不完善,因此SVM的研究没有得到进一步的发展与重视。 1971年,Kimeldorf提出了使用线性不等约束重新构造SV的核空间,使一部分线性不可分的问题得到了解决。20世纪90年代,一个比较完善的理论体系——统计学习理论(Statistical Learning Theory,SLT)形成了,此时一些新兴的机器学习方法(如神经网络等)的研究遇到了一些重大的困难,比如欠学习与过学习问题、如何确定网络结构的问题、局部极小点问题等,这两方面的因素使得SVM迅速发展和完善,并在很多问题的解决中表现出许多特有优势,而且能够推广应用到函数拟合等其他机器学习问题中,从此迅速发展了起来,目前已经成功地在许多领域里得到了成功应用。

    思想:SVM的主要思想可以概括为如下两点:
    (1)它是针对线性可分的情况进行分析的。对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间,使其线性可分,从而使得在高维特征空间中采用线性算法对样本的非线性特征进行线性分析成为可能。
    (2)它基于结构风险最小化理论,在特征空间中构建最优分类面,使得学习器能够得到全局最优化,并且使整个样本空间的期望风险以某个概率满足一定上界。
      从上面的两点基本思想来看,SVM没有使用传统的推导过程,简化了通常的分类和回归等问题;少数的支持向量确定了SVM 的最终决策函数,计算的复杂性取决于支持向量,而不是整个样本空间,这就可以避免“维数灾难”。少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。

    数学基础:拉格朗日乘子法、对偶问题、KKT条件

    应用:人脸检测、验证和识别,说话人/语音识别,文字/手写体识别 ,图像处理等等

    二、推导过程

    SVM有三宝:间隔、对偶、核技巧。
    遇到的问题大致可以分为线性可分和线性不可分的情况,因此,我将分开介绍:

    1.线性可分

    1.1 硬间隔

    1. 基本模型

    训练样本集D={(x1,y1),(x1,y1),(xm,ym)},yi=1yi=1D=\{(x_{1},y_{1}),(x_{1},y_{1}),……,(x_{m},y_{m})\},y_{i}=1或y_{i}=-1,分类学习的思想:找一个划分超平面,将不同类别的样本分开。

    在这里插入图片描述
    划分的超平面很多,我们去找哪一个?直观上看,我们应该找位于两类训练样本“正中间”的超平面。

    在样本空间中,划分超平面可通过如下线性方程来描述:wTx+b=0{\color{Red} w^{T}x+b=0}
    w=(w1;w2;;wd)w=(w_{1};w_{2};…;w_{d})为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。
    显然,划分超平面可被法向量w和位移b确定,下面我们将其记为(w,b)。 样本空间中任意点x到超平面(w,b)的距离可写为r=wTx+bw{\color{Red} r=\frac{\left | w^{T}x+b \right |}{\left \| w \right \|}}
    假设超平面(w,b)能将训练样本正确分类,即对(xi,yi)D(x_{i},y_{i} )\in D,若yi=+1y_{i}=+1,则wTxi+b>0w^{T}x_{i}+b>0.否则:wTxi+b<0w^{T}x_{i}+b<0,令
    在这里插入图片描述
    对应如下:
    在这里插入图片描述
    问题只与投影方向有关,一旦方向定了,通过缩放w和b,总能使上式成立。所以,求超平面的问题转化为求w和b的问题。

    如下图所示,距离超平面最近的这几个训练样本点使上式的等号成立,它们被称为“支持向量”(support vector),两个异类支持向量机到超平面的距离之和为 :r=wTx+bw{\color{Red} r=\frac{\left | w^{T}x+b \right |}{\left \| w \right \|}}
    在这里插入图片描述
    上图中,两条虚线之间的距离为:γ=2w\gamma =\frac{2}{\left \| w \right \|},将其称之为间隔。欲找到具有“最大间隔”(maximum margin)的划分超平面,也就是找到参数w和b,使得γ最大,即:
    在这里插入图片描述
    上面的约束等价于如下约束:
    在这里插入图片描述
    即支持向量机(Support Vector Machine,简称SVM)的基本型。

    2. 模型求解

    上式中,其中w和b是模型参数。注意到上式本身是一个凸二次规划问题,能直接用现成的优化计算包求解,但我们可以有更高效的办法,可以求出闭式解。
    对式使用拉格朗日乘子法可得到其“对偶问题”(dual problem):
    在这里插入图片描述
    其中α=(α1;α2;;αm)\alpha =(\alpha _{1};\alpha _{2};…;\alpha _{m}),令L(w,b,α)L(w,b,\alpha)对w和b的偏导数等于零得:
    在这里插入图片描述
    将第一个式代入L,即可将L(w,b,α)L(w,b,α)中的w和b消去,再考虑第二个式的约束,就得到对偶问题:
    在这里插入图片描述
    解出α后,求出w和b即可得到模型:
    在这里插入图片描述
    从对偶问题解出的αiα_i是拉格朗日乘子,它恰对应着训练样本(xi,yi)(x_i,y_i)。注意到支持向量机最优化问题中有不等式约束,因此上述过程需满足KKT条件,即要求:
    在这里插入图片描述
    最后一个条件,对任意训练样本(xi,yi)(x_i,y_i),总有αi=0\alpha _{i}=0yif(xi)=1y_{i}f(x_{i})=1.
    则有以下两种情况:
    (1) 若αi=0α_i=0,则该样本将不会在求和中出现,不会对f(x)有任何影响;
    (2) 若αi>0α_i>0,则必有yif(xi)=1y_i f(x_i )=1,位于最大间隔边界上,是一个支持向量。
    在这里插入图片描述
    这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关.

    如何求解αiα_i:二次规划问题,通过SMO算法求解。
    基本思路:每次选择两个变量α_i和α_j,并固定其他参数。这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:
    (1) 选取一对需更新的变量αiα_iαjα_j
    (2) 固定αiα_iαjα_j以外的参数,求解式获得更新后的αiα_iαjα_j.

    分析:KKT条件违背的程度越大,则变量更新后可能导致的且标函数值减幅越大。
    第一个变量:SMO先选取违背KKT条件程度最大的变量。
    第二个变量:应选择一个使且标函数值减小最快的变量,使选取的两变量所对应样本之间的间隔最大。

    为什么更新两个,而非一个?原因是,若仅选择一个,则其可有其他变量导出。因此更新两个。
    在这里插入图片描述
    SMO算法之所以高效,是由于在固定其他参数后,仅优化两个参数的过程能做到非常高效
    之前的优化问题:
    在这里插入图片描述
    仅考虑αiα_iαjα_j时,式中的约束可重写为:
    在这里插入图片描述
    其中c是使i=0mαiyi=0∑_{i=0}^mα_i y_i=0成立的常数。用αiyi+αjyj=cα_i y_i+α_j y_j=c消去上式中的变量αjα_j,则得到一个关于αiα_i的单变量二次规划问题,仅有的约束是αi0α_i≥0
    不难发现,这样的二次规划问题具有闭式解,于是不必调用数值优化算法即可高效地计算出更新后的αiα_iαjα_j.

    确定偏移项b
    対任意支持向量(xi,yk)(x_i,y_k) 都有ysf(xs)=1y_s f(x_s )=1,即
    在这里插入图片描述
    其中S={iαi>0,i=1,2,,m}S=\{i|α_{i}>0,i=1,2,…,m\} 为所有支持向量的下标集,但现实任务中常采用一种更鲁棒的做法:使用所有支持向量求解的平均值
    在这里插入图片描述

    1.2 软间隔

    在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分。
    缓解该问题的一个办法是允许支持向量机在一-些样本上出错.为此,要引入“软间隔”的概念,如图所示:
    在这里插入图片描述
    在最大化间隔的同时,不满足约束的样本应尽可能少.于是,优化目标可写为:
    在这里插入图片描述
    即,在间隔上加一个损失,允许错分,但是损失应该尽量小。

    (1)0/1损失函数
    在这里插入图片描述
    显然,当C为无穷大时,迫使所有样本均满足约束,于是等价于经典支持向量机方法;
    当C取有限值时,允许一些样本不满足约束。
    然而,l0/1l_{0/1}非凸、非连续,不易直接求解。人们通常用其他一些函数来代替l0/1l_{0/1},称为“替代损失”(surrogate loss),通常是凸的连续函数且是l0/1l_{0/1}的上界。

    (2)hinge损失函数
    若采用hinge损失,则代价函数变成:
    在这里插入图片描述
    引入“松弛变量”(slack variables)ξi0ξ_i≥0,可将重写为:
    在这里插入图片描述
    这就是常用的“软间隔支持向量机”。
    (3)其他损失函数

    在这里插入图片描述
    损失函数:
    在这里插入图片描述
    标准:>0时,尽可能小,<0时,尽可能大。从而保证分类的准确性。

    2.线性不可分(核函数)

    我们假设训练样本是线性可分的,超平面能将训练样本正确分类。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。例如图中的“异或”问题就不是线性可分的.
    在这里插入图片描述
    对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

    例如在图中,若将原始的二维空间映射到一个合适的三维空间,就能找到一个合适的划分超平面。
    在这里插入图片描述
    如何映射?有没有通用的办法?

    幸运的是,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。 令∅(x)表示将x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为:
    在这里插入图片描述
    其中w和b是模型参数。
    问题转化为:
    在这里插入图片描述
    其对偶问题是:
    在这里插入图片描述
    求解式涉及到计算ϕ(xi)Tϕ(xj)ϕ(x_i )^T ϕ(x_j ),这是样本xix_ixjx_j映射到特征空间之后的内积。
    由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算ϕ(xi)Tϕ(xj)ϕ(x_i )^T ϕ(x_j )通常是困难的。
    为了避开这个障碍,可以设想这样一个函数:
    在这里插入图片描述
    xix_ixjx_j在特征空间的内积等于它们在原始样本空间中通过函数κ(∙,∙ )计算的结果。

    有了这样的函数,我们就不必直接去计算高维甚至无穷维特征空间中的内积。

    于是式可重写为:
    在这里插入图片描述
    于是,求解后即可得到:
    在这里插入图片描述
    这里的函数κ(∙,∙ )就是“核函数”(kernel function)。上式显示出模型最优解可通过训练样本的核函数展开,这一展式亦称“支持向量展式”(support vector expansion)。

    问题:显然,若已知合适映射ϕ(∙)的具体形式,则可写出核函数κ(∙,∙ ),但在现实任务中我们通常不知道ϕ(∙)是什么形式。

    合适的核函数是否一定存在呢?什么样的函数能做核函数呢?
    答案是肯定的。

    定理(核函数) 令χ为输入空间,κ(∙,∙ )是定义在χ×χχ×χ上的对称函数,则κ是核函数当且仅当对于任意数据D={x1,x2,,xm}D=\{x_{1},x_{2},…,x_{m}\},“核矩阵”(kernel matrix)K总是半正定的:
    在这里插入图片描述
    定理表明,只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。

    在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的,“核函数选择”成为支持向量机的最大变数。

    通常,可选择如下核函数,选择性能最优者作为某一问题的核函数:
    在这里插入图片描述
    注意:当d=1时,高斯核也成为径向基核函数(RBF)核。

    此外,还可通过函数组合得到,例如:
    (1) 若κ_1和κ_2为核函数,则对于任意正数γ1γ2γ_1、γ_2,其线性组合也是核函数:
    γ1κ1+γ2κ2γ_1 κ_1+γ_2 κ_2

    (2) 若κ_1和κ_2为核函数,则核函数的直积也是核函数;
    κ1κ2(x,z)=κ1(x,z)κ2(x,z)κ_1 ⊗κ_2 (x,z)=κ_1 ( x,z)κ_2 (x,z)

    (3) 若κ_1为核函数,则对于任意函数g(x),也是核函数;
    κ(x,z)=g(x)κ1(x,z)g(z)κ(x,z)=g(x)κ_1 (x,z)g (z)

    3.SVR支持向量回归

    给定训练样本D={(x1,y1),(x1,y1),(xm,ym)},yiRD=\{(x_{1},y_{1}),(x_{1},y_{1}),……,(x_{m},y_{m})\},y_{i}∈R,希望学得一个回归模型,使得f(x)f(x)yy尽可能接近,wwbb是待确定的模型参数。
    在这里插入图片描述
    假设我们能容忍f(x)f(x)yy之间最多有ϵϵ的偏差,即仅当f(x)f(x)yy之间的差别绝对值大于ϵϵ时才计算损失.

    于是,SVR问题可形式化为:
    在这里插入图片描述
    其中C为正则化常数,lϵl_ϵ是图中所示的ϵ -不敏感损失(ϵ -insensitive loss)函数:
    在这里插入图片描述
    引入松弛变量ξiξ_i(ξi)(ξ_i ),可将式重写为:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190630091142826.png
    在这里插入图片描述
    引入拉格朗日乘子μiμ_i
    在这里插入图片描述
    再令L(w,b,α,α^,ξ,ξ^,μ,μ^)L(w,b,\alpha ,\hat{\alpha },\xi ,\hat{\xi },\mu ,\hat{\mu })wwbbξiξ_iξi^\hat{ξ_i } 的偏导为零可得:
    在这里插入图片描述
    上述过程中需满足KKT条件,即要求:
    在这里插入图片描述
    SVR的解形如
    在这里插入图片描述
    能使式中的(αi^αi)0(\hat{\alpha_i}-α_i )\neq 0的样本即为SVR的支持向量,它付必落在ϵ-同隔带之外.显然, SVR的支持向量仅是训练样本的一部分,即其解仍具有稀疏性.

    0&lt;αi&lt;C0&lt;α_i&lt;C,则必有ξi=0ξ_i=0
    在这里插入图片描述
    实践中常采用一中更鲁棒的办法:迭取多个满足条件0&lt;αi&lt;C0&lt;α_i&lt;C的样本求解b后取平均値。

    若考虑特征映射形式,则:
    在这里插入图片描述
    则SVR可表示为:
    在这里插入图片描述
    其中K(xiTx)=(xi)T(xj)K(x_i^T x)=∅(x_i )^T∅(x_j )为核函数。

    展开全文
  • 根据《Pattern Recognition and Machine Learning》这本书的第7章(稀疏核机)的7.1节,介绍了样本数据线性可分的线性可分支持向量机和样本数据重叠的线性支持向量机,以及支持向量回归。详细介绍了公式的推导过程,...
  • 支持向量回归问题。 在支持向量回归中,最后的决定系数alpha等于0,表示不是支持向量,在epsilon带内。大于0小于C表示在epsilon带上,大于C表示在带外。但是我做的过程中发展,会有微小差别,比如alpha等于0应该在带...
  • 在ε-支持向量回归和粗糙v-支持向量回归模型的基础上,研究了新的粗糙ε-支持向量回归模型.利用固定对称边界粗糙ε-不敏感损失函数,得到粗糙ε-不敏感管,构造固定对称边界粗糙ε-支持向量回归模型;利用固定非对称边界...
  • ε距离加权支持向量回归
  • 特权多目标支持向量回归
  • 支持向量回归代码

    2014-04-18 12:26:41
    关于支持向量回归的代码,支持向量分类和回归问题
  • 无偏置支持向量回归优化问题
  • 光滑CHKS孪生支持向量回归
  • 提出一种用于支持向量回归的网络优化策略.学习策略分为两个阶段:首先训练支持向量机, 得到支持向量回归的初始结构和参数,构造一个无阈值的支持向量回归网络;然后通过带有遗忘因子的递归最小二乘算法, 优化计算支持...
  • 随着训练实例数量的增加,支持向量回归机的训练时间大大增加。 在本文中,我们基于支持向量的目标值通常是局部极值或接近极值的观察结果,开发了一种减少训练时间的方法来减少训练时间。 所提出的方法首先从完整的...
  • 基于支持向量回归和线性回归的航班延误组合预测
  • 支持向量回归的递归有限牛顿算法
  • 线性规划支持向量回归的学习错误
  • 使用支持向量回归(SVR)来预测logP。 分子的输入结构特征是摩根指纹,输出是logP。代码示例:#导入依赖库import numpy as npfrom rdkit import Chemfrom rdkit.Chem.Crippen import MolLogPfrom rdkit import Chem, ...

    RDKit一个用于化学信息学的python库。使用支持向量回归(SVR)来预测logP。 分子的输入结构特征是摩根指纹,输出是logP。


    代码示例:


    1. #导入依赖库

    2. import numpy as np

    3. from rdkit import Chem

    4. from rdkit.Chem.Crippen import MolLogP

    5. from rdkit import Chem, DataStructs

    6. from rdkit.Chem import AllChem

    7. from sklearn.svm import SVR

    8. from sklearn.metrics import mean_squared_error, r2_score

    9. from scipy import stats

    10. import matplotlib.pyplot as plt

    载入smile分子库,计算morgan指纹和logP

    1. num_mols = 5000

    2. f = open('smiles.txt', 'r')

    3. contents = f.readlines()

    4. fps_total = []

    5. logP_total = []

    6. for i in range(num_mols):

    7. smi = contents[i].split()[0]

    8. m = Chem.MolFromSmiles(smi)

    9. fp = AllChem.GetMorganFingerprintAsBitVect(m,2)

    10. arr = np.zeros((1,))

    11. DataStructs.ConvertToNumpyArray(fp,arr)

    12. fps_total.append(arr)

    13. logP_total.append(MolLogP(m))

    14. fps_total = np.asarray(fps_total)

    15. logP_total = np.asarray(logP_total)

    划分训练集和测试集

    1. num_total = fps_total.shape[0]

    2. num_train = int(num_total*0.8)

    3. num_total, num_train, (num_total-num_train)

    1. fps_train = fps_total[0:num_train]

    2. logP_train = logP_total[0:num_train]

    3. fps_test = fps_total[num_train:]

    4. logP_test = logP_total[num_train:]

    将SVR模型用于回归模型

    https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html

    1. _gamma = 5.0

    2. clf = SVR(kernel='poly', gamma=_gamma)

    3. clf.fit(fps_train, logP_train)

    完成训练后,应该检查预测的准确性。对于评估,将使用r2和指标的均方误差。

    1. logP_pred = clf.predict(fps_test)

    2. r2 = r2_score(logP_test, logP_pred)

    3. mse = mean_squared_error(logP_test, logP_pred)

    4. r2, mse

    模型结果可视化

    1. slope, intercept, r_value, p_value, std_error = stats.linregress(logP_test, logP_pred)

    2. yy = slope*logP_test+intercept

    3. plt.scatter(logP_test, logP_pred, color='black', s=1)

    4. plt.plot(logP_test, yy, label='Predicted logP = '+str(round(slope,2))+'*True logP + '+str(round(intercept,2)))

    5. plt.xlabel('True logP')

    6. plt.ylabel('Predicted logP')

    7. plt.legend()

    8. plt.show()

    4dcb7861e38e69e06a1ff06b7fbf6771.png

    参考:

    https://github.com/SeongokRyu/CH485---Artificial-Intelligence-and-Chemistry

    https://blog.csdn.net/zb123455445/article/details/78354489

    展开全文
  • 02-36 支持向量回归

    2020-02-28 22:13:24
    文章目录支持向量回归支持向量回归学习目标支持向量回归详解支持向量机目标函数优化问题回顾支持向量回归损失度量函数支持向量回归目标函数优化问题支持向量回归目标函数对偶形式支持向量回归模型系数的稀疏性核支持...

    支持向量回归

    在这里插入图片描述

      传统回归模型如线性回归,对于样本(x,y)(x,y)是直接基于模型,通过预测值f(xi)yf(x_i){y}和真实值yy之间的差别计算损失,并且当f(xi)y=yf(x_i){y}=y时损失才为零。

      支持向量回归(support vector regression, SVR)则可以容忍f(xi)yf(x_i){y}yy之间有最多ϵ\epsilon的偏差,即当f(xi)yy>ϵ|f(x_i){y}-y|>\epsilon的时候才计算损失,这相当于以f(xi)yf(x_i){y}为中心,构建了一个宽度为2ϵ2\epsilon的间隔带,如果样本落入间隔带,则他的分类就是正确的。

    支持向量回归学习目标

    1. 支持向量机和支持向量回归的优化问题
    2. 支持向量回归目标函数的对偶形式
    3. 支持向量回归模型系数的稀疏性
    4. 核支持向量回归
    5. 支持向量机的优缺点

    支持向量回归详解

    支持向量机目标函数优化问题回顾

      线性可分SVM目标函数优化问题为
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & \underbrace{…
      线性SVM由于在目标函数中加入了松弛因子ξi>0\xi_i>0,目标函数优化问题为
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & \underbrace{…

    支持向量回归损失度量函数

      支持向量回归由于有一个间隔带,因此它的损失度量函数为
    l(f(xi),yi)={0,iff(xi)yiϵf(xi)yiϵ,iff(xi)yi>ϵ l(f(x_i),y_i) = \begin{cases} 0, & if\,|f(x_i)-y_i|\leq\epsilon \\ |f(x_i)-y_i|-\epsilon, & if\,|f(x_i)-y_i|>\epsilon \\ \end{cases}

    支持向量回归目标函数优化问题

      由于SVR的间隔带是自己引入的,所以SVR的目标函数变为
    minω,b12ω2+Ci=1ml(f(xi)yi) \underbrace{\min}_{\omega,b}\,{\frac{1}{2}}{||\omega||}^2 + C\sum_{i=1}^ml(f(x_i)-y_i)
      如果和线性SVM一样引入松弛因子,但是由于我们的误差度量中的f(xi)yiϵ|f(x_i)-y_i|\leq\epsilon是绝对值小于,因此这个不等式其实是两个不等式,则SVR需要引入两个松弛因子ξi\xi_iξi^\hat{\xi_i},则SVR的优化问题将变成
    minω,b,ξi,ξi^12w2+Ci=1m(ξi+ξi^) \underbrace{\min}_{\omega,b,\xi_i,\hat{\xi_i}}{\frac{1}{2}}||w||^2+C\sum_{i=1}^m(\xi_i+\hat{\xi_i})
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ s.t. & f(x_i)-…
      对SVR的优化问题引入拉格朗日乘子μi0,μi^0,αi0,αi^0\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0,通过拉格朗日乘子法即可得到拉格朗日函数
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & L(w,b,\alpha…

    支持向量回归目标函数对偶形式

      通过拉格朗日即可得到支持向量回归目标函数的原始形式
    minw,b,ξi,ξi^maxμi0,μi^0,αi0,αi^0L(w,b,α,α^,ξ,ξ^,μ,μ^) \underbrace{min}_{w,b,\xi_i,\hat{\xi_i}} \quad \underbrace{max}_{\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0} L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu})
      可以发现支持向量回归的目标函数的原始形式也满足KTT条件,即可以通过拉格朗日对偶将我们的问题转化为等价的对偶问题,即
    maxμi0,μi^0,αi0,αi^0minw,b,ξi,ξi^L(w,b,α,α^,ξ,ξ^,μ,μ^) \underbrace{max}_{\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0} \quad \underbrace{min}_{w,b,\xi_i,\hat{\xi_i}}L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu})
      首先求优化函数对让w,b,ξi,ξi^{w,b,\xi_i,\hat{\xi_i}}的极小值,再求拉格朗日乘子μi,μi^,αi,αi^{\mu_i,\hat{\mu_i},\alpha_i,\hat{\alpha_i}}的极大值,即先得到拉格朗日函数L(w,b,α,α^,ξ,ξ^,μ,μ^)L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu})分别对w,b,ξi,ξi^w,b,\xi_i,\hat{\xi_i}求偏导为0可得
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & w = \sum_{i=…
      将拉格朗日函数对w,b,ξi,ξi^w,b,\xi_i,\hat{\xi_i}的偏导代入拉格朗日函数,即可得SVR的对偶问题
    maxα,α^i=1myi(αi^αi)ϵ(αi^+αi)12i=1mj=1m(αi^αi)(αi^αj)xiTxj \underbrace{max}_{\alpha,\hat{\alpha}} \sum_{i=1}^my_i(\hat{\alpha_i}-\alpha_i)-\epsilon(\hat{\alpha_i}+\alpha_i) - \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_i}-\alpha_j)x_i^Tx_j
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ s.t. & \sum_{i…
      对于上述SVR的目标函数的对偶形式取对数,即可变成最小化目标函数的优化问题,即
    minα,α^i=1myi(αi^αi)+ϵ(αi^+αi)+12i=1mj=1m(αi^αi)(αi^αj)xiTxj \underbrace{min}_{\alpha,\hat{\alpha}} -\sum_{i=1}^my_i(\hat{\alpha_i}-\alpha_i)+\epsilon(\hat{\alpha_i}+\alpha_i) + \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_i}-\alpha_j)x_i^Tx_j
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ s.t. & \sum_{i…
      对于这个目标函数,依然可以使用SMO算法求出对应的αi,αi^\alpha_i,\hat{\alpha_i},进而求出回归模型的w,bw,b

    支持向量回归模型系数的稀疏性

    在这里插入图片描述

      在对支持向量回归的目标函数优化的时候,我们假设该目标函数满足KKT条件,该KKT条件为
    {αi(f(xi)yiϵξi)=0,αi^(yif(xi)ϵξi^)=0,αiαi^=0,ξiξi^=0,(Cαi)ξi=0,(Cαi^ξi^=0 \begin{cases} \alpha_i(f(x_i)-y_i-\epsilon-\xi_i)=0, \\ \hat{\alpha_i}(y_i-f(x_i)-\epsilon-\hat{\xi_i})=0, \\ \alpha_i\hat{\alpha_i}=0,\xi_i\hat{\xi_i}=0, \\ (C-\alpha_i)\xi_i=0,(C-\hat{\alpha_i}\hat{\xi_i}=0 \end{cases}
      从上式可以看出,只有当f(xi)yiϵξi=0f(x_i)-y_i-\epsilon-\xi_i=0的时候αi\alpha_i才可以为非0解,并且只有当yif(xi)ϵξi^=0y_i-f(x_i)-\epsilon-\hat{\xi_i}=0的时候αi^\hat{\alpha_i}才可以为非0解。

      首先根据松弛变量的定义,如果f(xi)yiϵξi<ϵ|f(x_i)-y_i-\epsilon-\xi_i|<\epsilon,则样本点落在间隔带中,则ξi=0,ξi^=0\xi_i=0,\hat{\xi_i}=0,既可以得到f(xi)yiϵξi0,yif(xi)ϵξi^0f(x_i)-y_i-\epsilon-\xi_i\neq0,y_i-f(x_i)-\epsilon-\hat{\xi_i}\neq0,则可以得到αi=0,αi^=0\alpha_i=0,\hat{\alpha_i}=0,则αi^αi=0\hat{\alpha_i}-\alpha_i=0

      即只有样本点(xi,yi)(x_i,y_i)不落入间隔带中才能使得相应的αi\alpha_iαi^\hat{\alpha_i}为非0解,并且由于样本点既不能同时在分隔超平面的两边,即f(xi)yiϵξi=0f(x_i)-y_i-\epsilon-\xi_i=0yif(xi)ϵξi^=0y_i-f(x_i)-\epsilon-\hat{\xi_i}=0不能同时存在,即αi\alpha_iαi^\hat{\alpha_i}至少有一个为0并且不能同时为0,则αi^αi0\hat{\alpha_i}-\alpha_i\neq0

      假设αi\alpha_i已经通过SMO算法得到,则可以得到w=i=1m(αi^αi)xiw=\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i,即可得SVR的分离超平面为
    f(x)=i=1m(αi^αi)xiTx+b f(x) = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+b
      从上式可以看出当样本点落在间隔带,由于αi^αi=0\hat{\alpha_i}-\alpha_i=0,即w=0w=0,则ww不受这些间隔带内点的影响,对于间隔带外的样本点,则会对ww造成影响,即这些点为SVR的支持向量。并且由于SVR的支持向量仅仅是训练样本的一部分,所以SVR的解ww具有稀疏性。

      SVR对于bb的求解类似于SVM,由于能得到多个bb值,所以最后对bb取平均值。

    核支持向量回归

    在这里插入图片描述

      上一节得到了SVR的分离超平面为
    f(x)=i=1m(αi^αi)xiTx+b f(x) = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+b
      如果我们使用和SVM一样的核技巧,即对SVR训练数据做一个样本映射,即另ϕ(x)\phi(x)表示xx映射后的特征向量。则分离超平面可以变为
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ f(x) & = \sum_…
    其中k(x,xi)k(x,x_i)为核函数。

    小结

      SVR除了可以支持回归问题外,其他方面和SVM差不多,由于SVR也算作是SVM的一个分支,此处不多说什么,参考SVM即可。

    展开全文
  • 机器学习算法,支持向量回归,SVR回归,就是找到一个回归平面,让一个集合的所有数据到该平面的距离最近。
  • 为了使数据集的内在分布更好地影响训练模型, 提出一种密度加权孪生支持向量回归机算法. 该算法通过?? 近邻算法计算获得每个数据点基于数据密度分布的密度加权值, 并将密度加权值引入到标准孪生支持向量回归机算法中....
  • 在ν-支持向量回归的基础上,本文提出一种基于不等式约束的Beta噪声支持向量回归(BN-SVR)的新模型,并将其应用于短期风速预报中.实验结果说明,模型BN-SVR是有效可行的,且较经典支持向量回归模型获得更好的性能.
  • 支持向量回归的类似Bagging的度量学习
  • 支持向量回归实现

    2014-03-20 13:43:11
    采用何种手段才能实现支持向量回归呢,当然有很多现成的工具和库函数,但libsvm和lssvm是较为好用的两种工具
  • 针对煤层底板突水问题的小样本、非线性特点,采用支持向量回归算法对突水量进行预测,避免了定性分析的局限性。利用遗传算法全局搜索能力的优势,提出了基于遗传算法的支持向量回归参数寻优方法,并建立煤层底板突水量...
  • 支持向量回归法控制两轮自平衡机器人

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,065
精华内容 2,026
关键字:

支持向量回归