Misalkan A menjadi matriks variabel independen dan B menjadi matriks dari nilai-nilai dependen. Dalam regresi ridge, kita mendefinisikan parameter sehingga: . Sekarang mari [usv] = svd (A) dan entri diagonal 's'. kita mendefinisikan derajat kebebasan (df) = . Regresi Ridge menyusut koefisien komponen varians rendah dan karenanya parameter mengontrol derajat kebebasan. Jadi untukn × 1 λ ß = ( A T A + λ I ) - 1 A T B d i = i t h Σ n i = 1 ( d i ) 2 λλ=0, yang merupakan kasus regresi normal, df = n, dan karenanya semua variabel independen akan dipertimbangkan. Masalah yang saya hadapi adalah menemukan nilai diberikan 'df' dan matriks 's'. Saya telah mencoba mengatur ulang persamaan di atas tetapi tidak mendapatkan solusi bentuk tertutup. Harap berikan petunjuk bermanfaat.
sumber
Jawaban:
Algoritma Newton-Raphson / Fisher-scoring / Taylor-series akan cocok untuk ini.
Anda memiliki persamaan untuk dipecahkan untuk dengan turunan Anda kemudian mendapatkan: h ( λ ) = p ∑ i = 1 d 2 iλ
mengatur ulang untuk Anda dapatkan: Ini mengatur pencarian berulang. Untuk nilai awal awal, asumsikan dalam penjumlahan, maka Anda mendapatkan .λ = λ ( 0 ) - [ ∂ hλ d 2 i =1λ(0)=p-df
Ini "berjalan" ke arah yang benar (meningkatkan ketika penjumlahan terlalu besar, kurangi ketika terlalu kecil), dan biasanya hanya membutuhkan beberapa iterasi untuk menyelesaikannya. Lebih lanjut fungsinya adalah monoton (peningkatan / penurunan akan selalu mengurangi / menambah penjumlahan), sehingga akan menyatu secara unik (tidak ada maxima lokal).λλ λ
sumber
Berikut adalah kode Matlab kecil berdasarkan rumus yang dibuktikan oleh probabilityislogic:
sumber
while ( abs(diff)>threshold )
.while( abs(diff) > threshold )
karena toleransi untuk perbedaan harus dapat dicapai dari kiri dan kanan. Misalnya misalkan diff = dan threshold = maka kondisi loop salah, tetapi jelas solusinya belum konvergen. 1 e - 16