1. 程式人生 > >最小角回歸 LARS算法包的用法以及模型參數的選擇

最小角回歸 LARS算法包的用法以及模型參數的選擇

dr

Lasso回歸模型,是常用線性回歸的模型,當模型維度較高時,Lasso算法通過求解稀疏解對模型進行變量選擇。Lars算法則提供了一種快速求解該模型的方法。Lars算法的基本原理有許多其他文章可以參考,這裏不過多贅述, 這裏主要簡介如何在R中利用lars算法包求解線性回歸問題以及參數的選擇方法。

以下的的一些用法參照lars包的幫助文件,再加上自己的使用心得。所用的示例數據diabetes是Efron在其論文中“Least Angle Regression”中用到的,可以在加載lars包後直接獲得

[html] view plain copy
library(lars)
data(diabetes)

attach(diabetes)
該數據中含有三個變量x,x2,y, 其中x是一個有422X10維的矩陣,y是一422維個向量 ,x2是由x得到的 422X64維矩陣(compressive).

  1. 求解路徑solution path

lars(x, y, type = c("lasso", "lar", "forward.stagewise", "stepwise"), trace = FALSE, normalize = TRUE, intercept = TRUE, Gram, eps = .Machine$double.eps, max.steps, use.Gram = TRUE)

該函數提供了通過回歸變量x和因變量y求解其回歸解路徑的功能。其中,

type ---- 表示所使用的回歸方法,包括(lasso, lar, forward.stagewise, stepwise),選擇不同的回歸方法將得到不同的解路徑;

normalize ---- 表示是否對變量進行歸一化,當為TRUE時,程序將對x和y進行L2正則化;

intercept ---- 表示是否對變量進行中心化,當為TRUE時,程序將對x和y分別減去其均值。

最小角回歸 LARS算法包的用法以及模型參數的選擇