Lasso กับ Lasso ที่ปรับตัวได้


12

LASSO และการปรับตัว LASSO เป็นสองสิ่งที่แตกต่างใช่มั้ย (สำหรับฉันบทลงโทษนั้นดูแตกต่างออกไป แต่ฉันแค่ตรวจสอบว่าฉันพลาดอะไรไปหรือเปล่า)

เมื่อคุณพูดถึงมุ้งยืด LASSO หรือ LASSO ที่ปรับตัวได้นั้นเป็นกรณีพิเศษหรือไม่?

แพคเกจ glmnet ใดที่คุณเลือกถ้าคุณเลือก alpha = 1

Adaptive LASSO ทำงานบนสภาพที่รุนแรงขึ้นใช่ไหม? ทั้งคู่มีคุณสมบัติพยากรณ์ในข้อมูลที่เหมาะสมใช่ไหม

คำตอบ:


15

คำตอบสั้น ๆ สำหรับคำถามของคุณ:

  • Lasso และ Lasso ที่ปรับตัวได้นั้นแตกต่างกัน (ตรวจสอบZou (2006)เพื่อดูว่า Lasso แบบปรับได้นั้นแตกต่างจาก Lasso มาตรฐานอย่างไร)
  • Lasso เป็นกรณีพิเศษของตาข่ายยืดหยุ่น (ดูZou & Hastie (2005) )
    Lasso แบบอะแดปทีฟไม่ใช่กรณีพิเศษของตาข่ายยืดหยุ่น
    อีลาสติกเน็ตไม่ใช่กรณีพิเศษของบ่วงบาศหรือบ่วงบาศแบบปรับตัว
  • ฟังก์ชั่นglmnetใน "glmnet" แพคเกจในการวิจัยดำเนินการ (เชือกไม่ได้ปรับตัว) alpha=1เชือกสำหรับ
  • เชือกทำงานในสภาวะที่รุนแรงน้อยกว่าเชือกเชือกแบบปรับตัวหรือไม่? ฉันไม่สามารถตอบคำถามนี้ (ควรตรวจสอบข้อมูลเชิงลึกของZou (2006) )
  • เฉพาะเชือกแบบปรับตัว (แต่ไม่ใช่เชือกเชือกหรือยางยืด) มีคุณสมบัติพยากรณ์น้ำ (ดูZou (2006) )

อ้างอิง:


12

โซลูชั่น LASSO เป็นโซลูชั่นที่ลดลง

Q(β|X,y)=12n||yXβ||2+λj|βj|

Lasso ที่ปรับตัวได้นั้นจะเพิ่มน้ำหนักให้กับสิ่งนี้เพื่อพยายามที่จะแก้ไขปัญหาที่เป็นที่ทราบกันดีว่าการประเมิน LASSO นั้นลำเอียง

Qa(β|X,y,w)=12n||yXβ||2+λjwj|βj|

wj=1/β~jβ~jβλ

wj(λ)=w(β~j(λ))
glmnetpenalty.factorglmnet

คุณลืมที่จะรับค่าสัมบูรณ์ในเงื่อนไขการลงโทษ
Richard Hardy

|β|γγβ

ดังนั้นโดยทั่วไปแล้ว glmnet จะทำการ LASSO หรือ elastic net โดยปริยาย แต่คุณสามารถเปลี่ยนมันเป็น LASSO (หรือ EN) แบบปรับตัวได้โดยระบุน้ำหนักที่เหมาะสม? หากเป็นกรณีนี้ขอขอบคุณหนึ่งล้าน!
Mr Validation

@MrValidation โปรดทราบว่าผู้เขียนวิธีการใหม่เช่นเชือกปรับตัวอาจมีรหัสสำหรับวิธีการในเว็บไซต์ของพวกเขา (บางครั้งพวกเขาเพียงแค่ให้การอ้างอิงถึงแพคเกจ R ที่พวกเขาเขียนเอง)
Richard Hardy

1
ฉันคิดว่าอาร์กิวเมนต์น้ำหนักใน glmnet หมายถึงน้ำหนักสำหรับการสังเกตและไม่ใช่น้ำหนักสำหรับบทลงโทษ
jmb

3

Adaptive LASSO ใช้สำหรับการเลือกตัวแปรที่สอดคล้องกัน ปัญหาที่เราพบเมื่อใช้ LASSO สำหรับการเลือกตัวแปรคือ:

  • พารามิเตอร์การหดตัวจะต้องใหญ่กว่าการเลือกมากกว่าการทำนาย
  • พารามิเตอร์ที่ไม่ใช่ศูนย์ขนาดใหญ่จะเล็กเกินไปดังนั้นอคตินั้นใหญ่เกินไป
  • พารามิเตอร์ที่ไม่ใช่ศูนย์ขนาดเล็กไม่สามารถตรวจพบได้อย่างสม่ำเสมอ
  • สหสัมพันธ์สูงระหว่างตัวทำนายนำไปสู่ประสิทธิภาพการเลือกที่ไม่ดี

ดังนั้น LASSO จึงมีความสอดคล้องกันสำหรับการเลือกตัวแปรภายใต้เงื่อนไขบางประการเกี่ยวกับพารามิเตอร์การหดตัวพารามิเตอร์ (เงื่อนไขเบต้า - นาที) และสหสัมพันธ์ (เงื่อนไขที่ไม่สามารถอธิบายได้) ดูหน้า 101-106 ของวิทยานิพนธ์ปริญญาโทของฉันสำหรับคำอธิบายรายละเอียด

LASSO มักจะมีตัวแปรมากเกินไปเมื่อเลือกพารามิเตอร์การปรับแต่งสำหรับการคาดการณ์ แต่โมเดลที่แท้จริงน่าจะเป็นชุดย่อยของตัวแปรเหล่านี้ สิ่งนี้แนะนำให้ใช้ขั้นตอนที่สองของการประมาณค่าเช่น LASSO ที่ปรับได้ซึ่งควบคุมความเอนเอียงของการประมาณ LASSO โดยใช้พารามิเตอร์การปรับที่เหมาะสมที่สุดในการทำนาย สิ่งนี้นำไปสู่การเลือกที่สอดคล้องกัน (หรือคุณสมบัติ oracle) โดยไม่มีเงื่อนไขที่กล่าวถึงข้างต้น

คุณสามารถใช้ glmnet เพื่อการปรับตัว LASSO ขั้นแรกคุณต้องมีการประมาณค่าเริ่มต้นไม่ว่าจะเป็นสี่เหลี่ยมจัตุรัสริดจ์หรือแม้แต่ LASSO ประมาณอย่างน้อยที่สุดเพื่อคำนวณน้ำหนัก จากนั้นคุณสามารถปรับใช้ LASSO แบบปรับตัวได้โดยการปรับเมทริกซ์ X นี่คือตัวอย่างโดยใช้การประมาณค่าเริ่มต้นกำลังสองน้อยที่สุดสำหรับข้อมูลการฝึกอบรม:

# get data
y <- train[, 11]
x <- train[, -11]
x <- as.matrix(x)
n <- nrow(x)

# standardize data
ymean <- mean(y)
y <- y-mean(y)  
xmean <- colMeans(x)
xnorm <- sqrt(n-1)*apply(x,2,sd)
x <- scale(x, center = xmean, scale = xnorm)

# fit ols 
lm.fit <- lm(y ~ x)
beta.init <- coef(lm.fit)[-1] # exclude 0 intercept

# calculate weights
w  <- abs(beta.init)  
x2 <- scale(x, center=FALSE, scale=1/w)  

# fit adaptive lasso
require(glmnet)
lasso.fit <- cv.glmnet(x2, y, family = "gaussian", alpha = 1, standardize = FALSE, nfolds = 10)
beta <- predict(lasso.fit, x2, type="coefficients", s="lambda.min")[-1]

# calculate estimates
beta <- beta * w / xnorm # back to original scale
beta <- matrix(beta, nrow=1)
xmean <- matrix(xmean, nrow=10)
b0 <- apply(beta, 1, function(a) ymean - a %*% xmean) # intercept
coef <- cbind(b0, beta)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.