R实战 您所在的位置:网站首页 回归中的rss R实战

R实战

2023-09-26 07:04| 来源: 网络整理| 查看: 265

R实战 | Lasso回归模型建立及变量筛选 LASSO.jpg

Tibshirani(1996) 引入了 LASSO (Least Absolute Shrinkage and Selection Operator)模型,用于参数的选择和收缩。当我们分析大数据时,这个模型非常有用。在这篇文章中,我们学习如何使用R包glmnet 包建立LASSO 模型。

原文:https://mp.weixin.qq.com/s/Q-76vY6hr81Sh9Zs5KYcCg

这些回归模型被称为正则化或惩罚回归模型。Lasso可以用于变量数量较多的大数据集。传统的线性回归模型无法处理这类大数据。

虽然线性回归估计器 (linear regression estimator)在偏-方差权衡关系方面是无偏估计器,但正则化或惩罚回归,如Lasso, Ridge承认一些减少方差的偏倚。这意味着后者的最小化问题有两个组成部分:均方误差(linear regression estimator)和惩罚参数()。Lasso的L1惩罚使变量选择和收缩成为可能,而Ridge的L2惩罚使变量收缩成为可能。

[图片上传失败...(image-af3b85-1651640667147)]

关于正则化详见:零基础"机器学习"自学笔记|Note8:正则化

X变量应该用均值零和单位方差进行标准化,因为变量的尺度差异往往会使惩罚分配不均。

由上式可知,第一部分是残差平方和(Residual Sum of Squares,RSS),第二部分是惩罚项。该罚项由超参数 λ 调整。超参数由用户通过人工搜索或交叉验证的方式外源性给出。

当Lasso中包含了某些变量,但RSS值的降低很小,可以忽略不计时,收缩惩罚的影响就会增加。这意味着这个变量的系数是零(Lasso)或接近零(Ridge)。

本教程提供了一个循序渐进的例子,如何在R中执行套索回归。

[TOC]

22

LASSO 示例数据准备及预处理 # install.packages('glmnet') library(glmnet) graphics.off() # clear all graphs rm(list = ls()) # 示例数据准备 N = 500 # 观测数 p = 20 # 变量数 # X variable X = matrix(rnorm(N*p), ncol=p) # 计算标准化前的均值和标准差 colMeans(X) # mean apply(X,2,sd) # standard deviation # 标准化 X = scale(X,center = T,scale = T) # 计算标准化后的均值和标准差 colMeans(X) # mean apply(X,2,sd) # standard deviation #——————————————- # Y variable #——————————————- beta = c( 0.15, -0.33, 0.25, -0.25, 0.05,rep(0, p/2-5), -0.25, 0.12, -0.125, rep(0, p/2-3)) # Y variable, standardized Y y = X%*%beta + rnorm(N, sd=0.5) y = scale(y)

注:对实际数据,只需分别对X,y进行标准化即可,即scale()。

LASSO 模型建立 # Model # 当lambda = 0.01 lambda


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有