Quadratische Programmierung und Lasso

11

Ich versuche eine Lasso-Regression durchzuführen, die folgende Form hat:

Minimiere inw(YXw)(YXw)+λ|w|1

Bei einem wurde mir geraten, das optimale mit Hilfe der quadratischen Programmierung zu finden, die die folgende Form annimmt:λw

Minimiere in , vorbehaltlichx12xQx+cxAxb.

Jetzt ist mir klar, dass der Term in den Constraint-Term , was ziemlich einfach ist. Ich sehe jedoch irgendwie nicht, wie ich den ersten Term der ersten Gleichung in den ersten Term der zweiten übertragen könnte. Ich konnte im Internet nicht viel darüber finden, also habe ich beschlossen, hier zu fragen.λAxb

spurra
quelle

Antworten:

10

Wenn man bedenkt , dass wir arbeiten mit als ' ' Variable in der Standardform, erweitern und collect Begriffe in und in und und Konstanten.wx(YXw)(YXw)w[something]www

Erklären Sie, warum Sie die Konstanten ignorieren können.

Erklären Sie, warum Sie die Begriffe und kombinieren können .ww


Wie BananaCode inzwischen herausgefunden hat, können einige entweder und oder einfacher und (da und für jedes das gleiche Argmin haben ).c = - 2 X ' Y.Q=2XXc=2XY Q=XXc=XYf(x)kf(x)k>0

Glen_b - Monica neu starten
quelle
Die Konstanten können ignoriert werden, denn wenn x_ das Minimum von f (x) ist, dann ist x_ + c das Minimum von f (x) + c, daher können wir die Konstante c ignorieren. Ich werde meine Frage bearbeiten, um zu zeigen, wo ich stecken geblieben bin.
Spurra
BananaCode Ihre Erklärung hat mehrere Mängel. Wenn mit "ist das Minimum für " Sie meinen "ist das Argument, bei dem f ( x ) minimiert wird", sagen Sie etwas wie " x ist das Argument von f ". Aber Ihre Schlussfolgerung dort ist falsch. Wenn Sie c zu f hinzufügen , fügen Sie dem argmin kein c hinzu. f(x)f(x)xargminfcfc
Glen_b -State Monica
Sehen Sie, wo ich in meiner Antwort? Was ist das,wasSie jetzt zwischen dem w ' und dem w am Ende Ihrer Frage haben? w[something]www
Glen_b -State Monica
Ja, ich meinte, ist das a r g m i n von f . Können Sie ein Beispiel geben, bei dem meine Schlussfolgerung falsch ist? Das [ s o m e t h i n g ] ist die Q- Matrix, die ich zu bilden versuche. Wenn ich w ' ( X ' X w - X ' Y ) ausdehne , bekomme ich w ' X ' X w - w ' X 'xargminf[something]Qw(XXwXY) . Der erste Teil würde die Form der Q- Matrix darstellen, aber ich kann den zweiten Term - w ' X ' Y nicht loswerden. wXXwwXYQwXY
Spurra
1
@ AD.Net Die Einschränkungen werden meistens in der anderen Antwort behandelt.
Glen_b -State Monica
11

Ich wollte hinzufügen, wie man die Transformation der Einschränkungen löst in eine verwendbare Form für die quadratische Programmierung, da es nicht ganz so einfach ist, wie ich dachte. Es ist nicht möglich, eine reelle Matrix A zu finden, so dass A w s | ist w i | s .|wi|sAAws|wi|s

Der Ansatz, den ich benutzte, bestand darin, die Elemente des Vektors w in w + i und w - i aufzuteilen , so dass w i = w + i - w - i . Wenn w i0 ist , haben Sie w + i = w i und w - i = 0 , sonst haben Sie w - i = | w i | und wwiwwi+wiwi=wi+wiwi0wi+=wiwi=0wi=|wi|. Oder mathematischer ausgedrückt,w + i =| wi| +wiwi+=0 undw - i =| wi| -wiwi+=|wi|+wi2Sowohlw - i als auchw + i sind nicht negative Zahlen. Die Idee hinter der Aufteilung der Zahlen ist, dass Sie jetzt| haben wi| =w + i +w - i , wodurch die absoluten Werte effektiv beseitigt werden.wi=|wi|wi2.wiwi+|wi|=wi++wi

Die zu optimierende Funktion wird zu: , vorbehaltlich w + i +w - is,12(w+w)TQ(w+w)+cT(w+w)wi++wis,wi+,wi0

Wobei und c wie oben von Glen_b angegeben sindQc

Dies muss in eine verwendbare Form umgewandelt werden, dh wir benötigen einen Vektor. Dies geschieht folgendermaßen:

12[w+w]T[QQQQ][w+w]+[cTcT][w+w]

vorbehaltlich

[IDIDI2D][w+w][sD02D]

Wobei die D- dimensionale Einheitsmatrix ist, s D ein D- dimensionaler Vektor, der nur aus dem Wert s und 0 D a 2 D -dimensionaler Nullvektor besteht. Die erste Hälfte sorgt für | w i | = w + i + w - is , das zweite w + i , w - i0 Jetzt ist es in einer verwendbaren Form, nach quadratischer Programmierung zu suchenIDDsDDs0D2D|wi|=wi++wiswi+,wi0 und w - , gegeben s . Sobald dies geschehen ist, Ihre optimalen Parameter in Bezug auf s sind w = w + - w - .w+wssw=w+w

Quelle und weiterführende Literatur: Lösung eines quadratischen Programmierproblems mit linearen Einschränkungen, die absolute Werte enthalten

spurra
quelle
Angenommen, wir haben einen optimalen dimensionalen Vektor ( w + , w - ) gefunden . Was stellt sicher, dass w + und w - tatsächlich die positiven und negativen Teile eines Vektors w sind , dh ihre 0 Eintrittspositionen stimmen überein? 2D(w+,w)w+ww0
Myath
Matrix und Vektor im endgültigen Ausdruck können einfacher und tatsächlich korrekter sein. Anstelle von [Id Id] [w + w−] '≤ Sd können Sie einfach [1 1 .... 1] [w + w-]' ≤ s setzen. Dies ist buchstäblich äquivalent zu ∑ | wi | = ∑ (wi + + wi−) ≤ s.
Marko