Tentukan perkiraan lasso ß λ = arg min ß ∈ R p 1
Kita tahu bahwa untuk , laso estimasi ß λ=0. (Lihat, misalnya,ruang lingkup parameter tuning Lasso dan Ridge.) Dalam notasi lain, ini menyatakan bahwaλmaks=1. Perhatikan bahwaKita dapat melihat ini secara visual dengan gambar berikut ini menampilkan jalur solusi laso:
Perhatikan bahwa pada jauh sisi kanan plot, semua koefisien adalah nol. Hal ini terjadi pada titik dijelaskan di atas.
Dari plot ini, kami juga melihat bahwa di jauh sisi kiri, semua koefisien adalah nol: apa nilai di mana setiap komponen ß λ awalnya nol? Yaitu, apa itu λ min = min ∃ jsama untuk, sebagai fungsi dariXdany? Saya tertarik pada solusi formulir tertutup. Secara khusus, saya tidak tertarik pada solusi algoritmik, seperti, misalnya, menyarankan bahwa LARS dapat menemukan simpul melalui perhitungan.
Terlepas dari minat saya, sepertinya mungkin tidak tersedia dalam bentuk tertutup, karena, jika tidak, paket komputasi laso kemungkinan akan memanfaatkannya ketika menentukan kedalaman parameter tuning selama validasi silang. Mengingat hal ini, saya tertarik pada apa pun yang secara teoritis dapat ditampilkan tentang λ m i n dan (masih) sangat tertarik pada bentuk tertutup.
sumber
Jawaban:
Perkiraan laso yang dijelaskan dalam pertanyaan adalah persamaan pengali lagrange dari masalah optimisasi berikut:
Optimizazion ini memiliki representasi geometris untuk menemukan titik kontak antara bola multidimensi dan polytope (direntang oleh vektor X). Permukaan polytope mewakilig(β) . Kuadrat jari-jari bola mewakili fungsi f(β) dan diminimalkan ketika permukaan kontak.
Gambar di bawah ini memberikan penjelasan grafis. Gambar memanfaatkan masalah sederhana berikut dengan vektor dengan panjang 3 (untuk kesederhanaan agar dapat membuat gambar):
Gambar menunjukkan:
Kami menampilkan tiga gambar:
Kisarant atau λ yang kita miliki memiliki kasus pertama dan ketiga dapat dengan mudah dihitung karena representasi geometrisnya yang sederhana.
Kasus 1: Hanyaβi tunggal yang bukan nol
The non-nolβi adalah salah satu yang vektor terkait xi memiliki nilai absolut tertinggi dari kovarians dengan y^ adalah titik parrallelotope yang paling dekat dengan solusi OLS). Kita dapat menghitung pengali Lagrange λmax bawah ini yang kita miliki setidaknya β nol dengan mengambil turunan dengan ±βi (tanda tergantung pada apakah kita meningkatkan βi dalam arah negatif atau positif):
yang mengarah ke
which equals the||XTy||∞ mentioned in the comments.
where we should notice that this is only true for the special case in which the tip of the polytope is touching the sphere (so this is not a general solution, although generalization is straightforward).
Case 3: Allβi are non-zero.
In this case that a facet of the polytope is touching the sphere. Then the direction of change of the lasso path is normal to the surface of the particular facet.
The polytope has many facets, with positive and negative contributions of thexi . In the case of the last lasso step, when the lasso solution is close to the ols solution, then the contributions of the xi must be defined by the sign of the OLS solution. The normal of the facet can be defined by taking the gradient of the function ||β(r)||1 , the value of the sum of beta at the point r , which is:
and the equivalent change of beta for this direction is:
which after some algebraic tricks with shifting the transposes (ATBT=[BA]T ) and distribution of brackets becomes
we normalize this direction:
To find theλmin below which all coefficients are non-zero. We only have to calculate back from the OLS solution back to the point where one of the coefficients is zero,
,and at this point we evaluate the derivative (as before when we calculateλmax ). We use that for a quadratic function we have q′(x)=2q(1)x :
Images
a point of the polytope is touching the sphere, a singleβi is non-zero:
a ridge (or differen in multiple dimensions) of the polytope is touching the sphere, manyβi are non-zero:
a facet of the polytope is touching the sphere, allβi are non-zero:
Code example:
note: those last three lines are the most important
Written by StackExchangeStrike
sumber