การเขียนโปรแกรมกำลังสองและ Lasso


11

ฉันพยายามทำการ lasso ถดถอยซึ่งมีแบบฟอร์มต่อไปนี้:

ย่อขนาดใน( Y - X w ) ′ ( Y - X w ) + λw(Y−Xw)′(Y−Xw)+λ|w|1

ได้รับฉันแนะนำให้หาดีที่สุดด้วยความช่วยเหลือของการเขียนโปรแกรมกำลังสองซึ่งใช้รูปแบบต่อไปนี้:wλw

ย่อในโดยขึ้นอยู่กับ1xx≤ข12x′Qx+c′xAx≤b.

ตอนนี้ฉันรู้แล้วว่าควรเปลี่ยนเป็นเทอมซึ่งค่อนข้างตรงไปตรงมา อย่างไรก็ตามฉันไม่เห็นว่าฉันจะถ่ายโอนเทอมแรกของสมการแรกไปสู่เทอมแรกของสมการที่สองได้อย่างไร ฉันหาอะไรเกี่ยวกับมันไม่ได้ในเน็ตฉันเลยตัดสินใจถามที่นี่A x ≤ bλAx≤b

คำตอบ:


10

โปรดทราบว่าเรากำลังทำงานกับเป็นตัวแปร ' ' ในรูปแบบมาตรฐานขยายและรวบรวมคำศัพท์ในและในและและค่าคงที่x ( Y - X w ) ′ ( Y - X w ) w ′wx(Y−Xw)′(Y−Xw)w ′ ww′[something]ww′w

อธิบายว่าทำไมคุณสามารถเพิกเฉยต่อค่าคงที่ได้

อธิบายว่าทำไมคุณสามารถรวมคำศัพท์และ ww′w


เนื่องจาก BananaCode ได้คิดออกมาพร้อมกับผู้นำบางคนตามเส้นทางคุณสามารถเขียนและหรือมากกว่านั้นง่ายๆคุณสามารถเขียนและ (ตั้งแต่และมี argmin เดียวกันสำหรับการใด ๆ )c = - 2 X ′ Y Q = X ′ X c = - X ′ Y f ( x ) k f ( x ) k > 0Q=2X′Xc=−2X′Y Q=X′Xc=−X′Yf(x)kf(x)k>0


ค่าคงที่สามารถถูกละเว้นได้เพราะถ้า x_ น้อยที่สุดถึง f (x) ดังนั้น x_ + c คือค่าต่ำสุดของ f (x) + c ดังนั้นเราสามารถละเว้นค่าคงที่ c ฉันจะแก้ไขคำถามของฉันเพื่อแสดงว่าฉันติดอยู่ที่ไหน
— spurra

BananaCode คำอธิบายของคุณมีข้อบกพร่องหลายประการ หากโดย "คือค่าต่ำสุดที่ " คุณหมายถึง "คืออาร์กิวเมนต์ที่ย่อขนาดเล็กสุด" คุณพูดบางสิ่งเช่น "คือของ " แต่ข้อสรุปของคุณมีข้อผิดพลาด หากคุณเพิ่มเป็นคุณจะไม่ต้องเพิ่มลงใน argmin f ( x ) x ∗ argmin f c f cf(x)f(x)x∗argminfcfc
— Glen_b -Reinstate Monica

ดูว่าฉันเขียนในคำตอบของฉันหรือไม่ อะไรคือสิ่งที่ตอนนี้คุณมีระหว่างและที่ด้านล่างของคำถามของคุณ ?? w ′ ww′[something]ww′w
— Glen_b -Reinstate Monica

ใช่ฉันหมายถึงเป็นของฉคุณสามารถยกตัวอย่างที่ข้อสรุปของฉันผิดหรือเปล่า? เป็นเมทริกซ์ฉันพยายามที่จะรูปแบบ ถ้าผมขยายฉันได้รับw'X'Y ส่วนแรกจะเป็นตัวแทนของรูปแบบของเมทริกซ์ แต่ฉันไม่สามารถได้รับการกำจัดของระยะที่สอง-w'X'Yx∗argminf[something]Qw′(X′Xw−X′Y)w′X′Xw−w′X′YQ−w′X′Y
— spurra

1
@ AD.Net ข้อ จำกัด ส่วนใหญ่จะกล่าวถึงในคำตอบอื่น ๆ
— Glen_b -Reinstate Monica

11

ฉันต้องการเพิ่มวิธีแก้ปัญหาการแปลงข้อ จำกัดเป็นรูปแบบที่ใช้งานได้สำหรับการเขียนโปรแกรมกำลังสองเนื่องจากมันไม่ตรงไปตรงมาตามที่ฉันคิด มันเป็นไปไม่ได้ที่จะหาเมทริกซ์ตัวจริงซึ่ง .W ≤ s ↔ Σ | W ฉัน| ≤ s∑|wi|≤sAAw≤s↔∑|wi|≤s

wiwwi+wi−wi=wi+−wi−wi≥0wi+=wiwi−=0wi−=|wi|wi+=0wi+=|wi|+wi2wi−=|wi|−wi2.wi−wi+|wi|=wi++wi−

12(w+−w−)TQ(w+−w−)+cT(w+−w−)wi++wi−≤s,wi+,wi−≥0

Qc

สิ่งนี้จะต้องถูกแปลงเป็นรูปแบบที่ใช้งานได้เช่นเราต้องการเวกเตอร์หนึ่งอัน วิธีนี้ทำได้ในวิธีต่อไปนี้:

12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]

ภายใต้

[IDID−I2D][w+w−]≤[sD02D]

IDDsDDs0D2∗D|wi|=wi++wi−≤swi+,wi−≥0w+w−ssw=w+−w−

แหล่งที่มาและการอ่านเพิ่มเติม: การแก้ปัญหาการเขียนโปรแกรมสมการกำลังสองด้วยข้อ จำกัด เชิงเส้นที่มีค่าสัมบูรณ์


2D(w+,w−)w+w−w0

เมทริกซ์และเวกเตอร์ในนิพจน์สุดท้ายนั้นเรียบง่ายขึ้นและถูกต้องมากขึ้น แทนที่จะเป็น [Id Id] [w + w−] '≤ Sd คุณสามารถใส่ [1 1 .... 1] 1] [w + w-]' ≤ s นี่คืออักษรที่เทียบเท่ากับ ∑ | wi | = ∑ (wi + + wi−) ≤ s
— Marko
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.