回顾一下岭回归,岭回归的目的是学习得到特征和因变量之间的映射关系,由于特征可能很高维,所以需要正则化

岭回归的目标函数是

$$ \sum_{i=1}^n \left\|y-X\beta\right\|^2+\lambda\beta^T\beta $$

由于数据可能是非线性的,单纯的线性回归效果可能不是很好,因此可以把数据映射到一个核空间,使得数据在这个核空间里面线性可分。

设核函数为$\Phi_i=\Phi(x_i)$,$\Phi_i$是一个$d$维空间中的向量,通常$d$比原来的维数高,甚至可以到无穷维。可以认为$\Phi_i$是核空间中$x_i$的一组特征,我们在核空间里对这组特征进行线性回归,原理和岭回归是一样的,因此可以直接套用岭回归的目标函数

$$ \sum_{i=1}^n \left\|y-\Phi\beta\right\|^2+\lambda\beta^T\beta $$

由正规方程解得$\beta=(\Phi^T\Phi+\lambda I_d)^{-1}\Phi^Ty$

由于$\Phi_i$可能达到无穷维,直接求逆比较困难,且效率较低。因此需要用到下面的小技巧

$$ (P^{-1}+B^TR^{-1}B)^{-1}B^TR^{-1}=PB^T(BPB^T+R)^{-1}$$

上式中,令$B=\Phi,P=\frac{1}{\lambda}I_d,R=I_n$,则有

$$\begin{align*} \beta &= \frac{1}{\lambda}\Phi^T(\frac{1}{\lambda}\Phi\Phi^T+I_n)^{-1}y\\&=\frac{1}{\lambda}\Phi(\frac{1}{\lambda}[\Phi\Phi^T+\lambda I_n])^{-1}y\\&=\frac{1}{\lambda}\Phi^T(\frac{1}{\lambda})^{-1}(\Phi\Phi^T+\lambda I_n)^{-1}y\\&=\Phi^T(\Phi\Phi^T+\lambda I_n)^{-1}y \end{align*}$$

令$\alpha=(\Phi\Phi^T+\lambda I_n)^{-1}y\quad\in\mathbb{R}^{n\times 1}$,则$\beta=\Phi^T\alpha=[\Phi_1,\Phi_2,...,\Phi_n]\alpha=\sum_{i=1}^n \alpha_i\Phi_i$

$K=\Phi\Phi^T\in\mathbb{R}^{n\times n}$称为gram矩阵,且$K_{ij}=\Phi_i^T\Phi_j$。

$$ y_i=\beta^T\Phi_i=y^T(K+\lambda I_n)^{-1}\Phi\Phi_i = y^T(K+\lambda I_n)^{-1}K_i $$

其中$K_i$是$K$的第$i$列

Kernel Ridge Regression的更多相关文章

  1. support vector regression与 kernel ridge regression

    前一篇,我们将SVM与logistic regression联系起来,这一次我们将SVM与ridge regression(之前的linear regression)联系起来. (一)kernel r ...

  2. Kernel ridge regression(KRR)

    作者:桂. 时间:2017-05-23  15:52:51 链接:http://www.cnblogs.com/xingshansi/p/6895710.html 一.理论描述 Kernel ridg ...

  3. 机器学习技法笔记:Homework #6 AdaBoost&Kernel Ridge Regression相关习题

    原文地址:http://www.jianshu.com/p/9bf9e2add795 AdaBoost 问题描述 程序实现 # coding:utf-8 import math import nump ...

  4. Ridge Regression and Ridge Regression Kernel

    Ridge Regression and Ridge Regression Kernel Reference: 1. scikit-learn linear_model ridge regressio ...

  5. Jordan Lecture Note-4: Linear & Ridge Regression

    Linear & Ridge Regression 对于$n$个数据$\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\},x_i\in\mathbb{R}^d,y ...

  6. Ridge Regression(岭回归)

    Ridge Regression岭回归 数值计算方法的"稳定性"是指在计算过程中舍入误差是可以控制的. 对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这 ...

  7. Kernel Methods (3) Kernel Linear Regression

    Linear Regression 线性回归应该算得上是最简单的一种机器学习算法了吧. 它的问题定义为: 给定训练数据集\(D\), 由\(m\)个二元组\(x_i, y_i\)组成, 其中: \(x ...

  8. Kernel Logestic Regression

    一.把 soft margin svm 看做 L2 Regression 模型 先来一张图回顾一下之前都学了些什么: 之前我们是通过拉格朗日乘子法来进行soft Margin Svm的转化问题,现在换 ...

  9. Probabilistic SVM 与 Kernel Logistic Regression(KLR)

    本篇讲的是SVM与logistic regression的关系. (一) SVM算法概论 首先我们从头梳理一下SVM(一般情况下,SVM指的是soft-margin SVM)这个算法. 这个算法要实现 ...

随机推荐

  1. TCP学习(一)

    协议分层 可以看到 物理层, 链路层,网络层是所有网络设备共有的, 而传输层, 会话层, 表示层, 应用层 是存在于主机上的 各设备实现的协议层次 IP地址的表示 ​ 为什么会出现ip地址?是为了在一 ...

  2. 四、jdbctemplate使用

    这里使用mysql数据库,省略数据库创建过程 1.添加依赖 <!--jdbc--> <dependency> <groupId>org.springframewor ...

  3. Google安装postman插件

    1.保证网上商店可用 http://jingyan.baidu.com/article/48a42057ea53a1a9242504c1.html

  4. spring 代理

    java动态代理实现 1. Java自带的动态代理,反射生成字节码 2. Cglib调用asm生成子类 spring 中代理实现 1. 如果类实现了接口,使用java动态代理 2. 没有实现接口,使用 ...

  5. mockito測試框架

    1. code package com.springinaction.knights; import static org.mockito.Mockito.*; import org.junit.Te ...

  6. Python入门-函数进阶

    昨天我们简单的了解了函数的定义,调用,以及传参,其实还有一个更重要的传参:动态传参,让我们继续昨天没有说完的,以及今天我要分享的东西. 一.动态传参 之前我们说过了传参,如果我们需要给一个函数传参,而 ...

  7. JSTL数据格式化

    日期表示 <fmt:formatDate value="${DATE1}" pattern="yyyy-MM-dd hh:mm:ss" type=&quo ...

  8. arcgis api for javascript - 最基本的地图加载

    为大家贴贴最基本的地图加载: 一. API 根据Dom树上节点的 ID 确定 Map 的显示位置; 二. setBasemap 方法可得到一些ArcGIS制作好的底图,例如: "street ...

  9. VC添加文件到工程出错问题--FileTool.dll

    原文:http://blog.csdn.net/bingdianlanxin/article/details/45112737 在我们的软件开发中,经常需要导入其他文件到我们的工程. 一般,我们会选择 ...

  10. 基于Vue的WebApp项目开发(二)

    利用webpack解析和打包.vue组件页面 相关知识: vue项目中的每个页面其实都是一个.vue的文件,这种文件,Vue称之为组件页面,必须借助于webpack的vue-loader才能运行,所以 ...