python 最小二乘回归 高斯核_机器学习技法6-(支持向量回归)

一.核岭回归

v2-a6b7e1a2ed6c72b9b1e94ca779e5852c_b.jpg

线性分类模型加入了L2正则化以后,最佳解是w关于z的线性组合,因此带有L2正则化的线性分类模型能引入核函数,也就是把线性模型变成核函数的形式。

在线性回归模型中,损失函数为:

v2-3aa6922610da49f6e0e9acecbf957509_b.jpg

当给线性回归模型加入L2正则化以后得到的解是解析解,且解是w关于z的线性组合,此时的回归是岭回归。

v2-69de20d8b764c1d7a060d24c24f6817d_b.jpg

因此我们可以引入核函数,把岭回归中解w变为解

,从而得到核岭回归,最终优化目标为:

v2-220919cc2a5d56c7d0fa934d3c5d1380_b.jpg

可以采用梯度下降法来求解。

求出

的梯度:

v2-51826859ffc90e7b4a48232a005ec966_b.png

要使得损失最小,则令∇Eaug(β) = 0则有解析解:

v2-5a6cc193e49d4406baf76c79abd3e537_b.jpg

由于K 是半正定的,因此公式中的逆矩阵一定存在。

核岭回归的时间复杂度为

,比线性岭回归费时。

v2-1549374481458422cf0781ee63603152_b.jpg

从上图可以看出,使用线性岭回归的时候得到的拟合曲线是线性的,采用核岭回归的时候拟合曲线是非线性的,但是线性岭回归在计算时间上的开销比核岭回归小。当数据量大的时候不适合采用核岭回归。核函数的引入增加了模型选择的余地,但是增加了计算量。

二.支持向量回归

v2-76e34b7164af59dd24b0da773f69cd2e_b.jpg

现在分别采用soft-margin SVM和核岭回归对同一个数据集分类,上图是分类的结果,方框框起来的是支撑向量,我们发现采用LSSVM(最小平方SVM,也就是核岭回归)时候每个样本点都是suport vectors,尽管两个模型得到的分类面相似,但是由于LSSVM有更多的支持向量,就导致了解出来的

是稠密的,很少为0,使得模型复杂,计算量大,在核逻回归中也是一样,而采用soft-margin SVM时解出来的
是稀疏的,也就是很多为0.

该怎么做才能使得LSSVM解出来的

是稀疏的呢?

tube 回归

v2-033e4f721651c1494e3c2ecfc0638056_b.jpg

由于我们在做回归分析,我们希望找到一个能够很好的拟合数据集的拟合曲线,因此假设这个拟合曲线是一个tube(隧道),落入tube中的样本点,我们视而不见,认为没有拟合出错,认为落入tube外的样本点是犯错了,我们的拟合曲线没能很好的拟合。

现在假设上图中的tube的高度为

,则可定义一个损失函数:计算出所有样本点与tube之间的距离,然后取出距离tube最远的距离作为误差。

v2-724d57cf6b629fd7bc2e37465f11c6d1_b.jpg

通常称该损失函数为insensitive error,也就是说对落入tube内的样本点‘漠不关心’。

我们可以采用L2正则化的tube回归来获得稀疏的

v2-823242b5082997e5e1bf9891825e9aea_b.jpg

比较tube 回归误差与最小平方误差,可以发现当两者误差小时,两者的误差几乎一样,而且tube不那么受到异常值的影响。因此可用tube回归误差代替最小平方误差。

我们希望tube误差最小,则有,优化目标为:

v2-fb13d7ba5764225267962eae01bad6bd_b.png

由于tube回归误差存在不可微分的点,因此不能用梯度下降算法,采用引入核函数的解法不能保证得到稀疏解,因此我们采用模仿标准SVM:

v2-42d75901643a6a10942fbe0e3b6b85df_b.jpg

去掉max,

v2-ade6a22f9c0d836402548f63d369bc4c_b.jpg

去掉绝对值符号,这就是SVR:

v2-5df300a63b86a0c5bb574db2d1f223ed_b.jpg

分类时的效果:

v2-ed5f2fac06bea8ad52c894d7667da10d_b.jpg

参数C:重视正则化还是重视tube 回归的误差

参数

:tube的宽度

这是一个QP问题,一共有

个参数,
个条件。

为了去掉限制条件,因此引入了拉格朗日函数。

三.支持向量回归的对偶问题

KKT条件

写出拉格朗日函数L,然后求出L对w的导数并令其为0,则有:

v2-11466558ffe6897fcac1603962802b4c_b.jpg

求出L对b的导数,并令其为0,则有:

v2-f8f90b1cf8f58f2fb15d3807597db7a4_b.jpg

v2-31dae43538c83d16c8263c8d6630a4a5_b.jpg

经过推导最终可以得到SVR的对偶问题:

v2-12881dde02c351da9942698360c50e6e_b.jpg

我们将岭回归改进为LSSVM的原因是希望得到更加复杂的模型,但是又不会有太差的泛化能力,但是在LSSVM中,我们求出的参数

是稠密的,因此我们引入了tube回归,而tube回归与LSSVM类似,引入了tube回归后,为了得到稀疏解,我们对tube按照SVM的做法得到了SVR,这一些做法都是希望得到的回归模型的参数
是稀疏的,下面来看看参数
是否是稀疏的。

v2-d4e4d5ad40e2b01cc749fadd3dadc5f4_b.jpg

当样本点落在tube中,则

经过进一步的推导我们有:在tube中的样本点对应的
为0,在tube边界和tube外的样本点的
不为0,因此
是稀疏的。

四.核模型总结

v2-e2056447f4f0324175c4a5f2d2797a1d_b.jpg

第二排可用LIBLINEAR。

v2-f43c412a82098cce60c8159ea73a4b01_b.jpg

第一排由于表现不怎么好,所以不经常使用;第三排由于求得的参数

不是稀疏解,因此不经常使用。

核函数:多项式核函数、高斯核函数,如果自己设计核函数,那么要使得设计的核函数满足 Mercer’s condition。

最近迷恋上了python全栈,一个大坑,浪费了很多时间,使得听课出现了脱节,感觉掌握的不够深,需要重新刷两遍视频。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值