zoukankan      html  css  js  c++  java
  • ridge regression(转)

    ridge regression可以用来处理下面两类问题:一是数据点少于变量个数;二是变量间存在共线性。

    当变量间存在共线性的时候,最小二乘回归得到的系数不稳定,方差很大。这是因为系数矩阵X与它的转置矩阵相乘得到的矩阵不能求得其逆矩阵,而ridge regression通过引入参数lambda,使得该问题得到解决。在R语言中,MASS包中的函数lm.ridge()可以很方便的完成。它的输入矩阵X始终为n x p 维,不管是否包含常数项。下面分别介绍包含和不包含常数项时的输出:

    当包含常数项时,该函数对y进行中心化,以y的均值作为因子;对x进行中心化和归一化,以x中各个变量的均值和标准差作为因子。这样对x和y处理后,x和y的均值为0,这使得回归平面经过原点,即常数项为0.因此,虽然指定了包含常数项,它给出的系数(lmridgecoef)使xy使lmridge(lmridgecoef)不一样,因为它是针对没有归一化和中心化的数据的,在预测的时候可以直接使用该系数,不需要对数据进行归一化和中心化。

    当指定模型不包含常数项时,因为要强制通过原点,该模型假设各个变量的均值为0,因此不对x和y进行中心化,但是对x进行归一化,而且归一化因子也是假设变量均值为0计算出来的该变量的标准差。在进行预测的时候,如果使用lmridge$coef的系数,那么需要对数据进行归一化;如果使用lmridge直接给出的系数,只需要直接相乘。

    ridge regression中lambda的选择:
    可以使用select(lmridge)进行自动选择,一般使用GCV最小的值,lambda的范围是大于0即可以。





    http://blog.sciencenet.cn/blog-54276-375345.html 

  • 相关阅读:
    string与wstring之间的转换
    QTableWidget去除选中虚边框
    在新机器部署Qt+mysql程序
    Qt文件路径分隔符
    MySQL通过增加用户实现远程连接数据库
    Qt 配置文件QSettings读取以及中文问题
    git config proxy
    ubuntu14.04 us sources.list
    How to keep Environment Variables when Using SUDO
    ubuntu hash sum mismatch error
  • 原文地址:https://www.cnblogs.com/burness/p/3328463.html
Copyright © 2011-2022 走看看