Проблема лассо имеет решение в закрытой форме: \ beta_j ^ {\ text {lasso}} = \ mathrm {sgn} (\ beta ^ {\ text {LS}} _ j) (| \ beta_j ^ {\ text {LS }} | - \ alpha) ^ +
если X имеет ортонормированные столбцы. Это было показано в этой теме: Вывод лассо раствора в закрытой форме .
βlasso=argminβ∥y−Xβ∥22+α∥β∥1
βlassoj=sgn(βLSj)(|βLSj|−α)+
X
Однако я не понимаю, почему вообще нет решения в закрытой форме. Используя субдифференциалы, я получил следующее.
( X является матрицей n×p )
f(β)=∥y−Xβ∥22+α∥β∥1
=∑i=1n(yi−Xiβ)2+α∑j=1p|βj|
(
Xi - это i-я строка в
X )
=∑i=1ny2i−2∑i=1nyiXiβ+∑i=1nβTXTiXiβ+α∑j=1p|βj|
⇒∂f∂βj=−2∑i=1nyiXij+2∑i=1nX2ijβj+∂∂βj(α|βj|)
= \ begin {case} -2 \ sum_ {i = 1} ^ ny_i X_ {ij} + 2 \ sum_ {i = 1} ^ n X_ {ij} ^ 2 \ beta_j + \ alpha \ text {for} \ beta_j > 0 \\ -2 \ sum_ {i = 1} ^ ny_i X_ {ij} + 2 \ sum_ {i = 1} ^ n X_ {ij} ^ 2 \ beta_j - \ alpha \ text {for} \ beta_j <0 \\ [-2 \ sum_ {i = 1} ^ ny_i X_ {ij} - \ alpha, -2 \ sum_ {i = 1} ^ ny_i X_ {ij} + \ alpha] \ text {for} \ beta_j = 0 \ end { case}=⎧⎩⎨⎪⎪−2∑ni=1yiXij+2∑ni=1X2ijβj+α for βj>0−2∑ni=1yiXij+2∑ni=1X2ijβj−α for βj<0[−2∑ni=1yiXij−α,−2∑ni=1yiXij+α] for βj=0
При
∂f∂βj=0 мы получаем
βj=⎧⎩⎨⎪⎪(2(∑ni=1yiXij)−α)/2∑ni=1X2ij(2(∑ni=1yiXij)+α)/2∑ni=1X2ij0for ∑ni=1yiXij>αfor ∑ni=1yiXij<−α for ∑ni=1yiXij∈[−α,α]
Кто-нибудь видит, где я ошибся?
Ответ:
Если мы напишем задачу в терминах матриц, мы очень легко увидим, почему решение в замкнутой форме существует только в ортонормированном случае с XTX=I :
f(β)=∥y−Xβ∥22+α∥β∥1
=yTy−2βTXTy+βTXTXβ+α∥β∥1
⇒∇f(β)=−2XTy+2XTXβ+∇(α|β∥1)
(здесь я предпринял много шагов одновременно. Однако, до этого момента это полностью аналог получения решения наименьших квадратов. Таким образом, вы должны быть в состоянии найти пропущенные шаги там.)
⇒∂f∂βj=−2XTjy+2(XTX)jβ+∂∂βj(α|βj|)
С ∂f∂βj=0 мы получаем
2(XTX)jβ=2XTjy−∂∂βj(α|βj|)
⇔2(XTX)jjβj=2XTjy−∂∂βj(α|βj|)−2∑i=1,i≠jp(XTX)jiβi
Теперь мы можем видеть, что наше решение для одного зависит от всех остальных поэтому не ясно, как действовать дальше. Если ортонормирован, мы имеем поэтому в этом случае, безусловно, существует решение в замкнутой форме.βjβi≠jX2(XTX)jβ=2(I)jβ=2βj
Спасибо Гудмундуру Эйнарссону за его ответ, который я подробно изложил здесь. Надеюсь, на этот раз это правильно :-)
Ответы:
Обычно это делается с использованием регрессии с наименьшим углом, вы можете найти статью здесь .
Извините за мою путаницу в начале, я собираюсь сделать еще одну попытку в этом.
Так что после расширения вашей функции вы получитеf(β)
Затем вы вычисляете частную производную по . Меня интересует, как вы вычисляете частную производную последнего слагаемого перед 1-нормой, то есть квадратичного слагаемого. Давайте рассмотрим это дальше. У нас есть это:βj
Так что теперь ваша задача не так легко упрощается, потому что у вас есть все коэффициенты присутствующие в каждом уравнении.β
Это не отвечает на ваш вопрос о том, почему не существует закрытого решения Лассо, я мог бы добавить кое-что позже.
источник