Sei A die Matrix unabhängiger Variablen und B die entsprechende Matrix der abhängigen Werte. In ridge regression, definieren wir einen Parameter so dass: . Nun sei [usv] = svd (A) und diagonaler Eintrag von 's'. wir definieren Freiheitsgrade (df) = . Die Ridge-Regression verkleinert die Koeffizienten von Komponenten mit geringer Varianz, und daher steuert der Parameter die Freiheitsgrade. Also für; & λDies ist bei normaler Regression der Fall, df = n, und daher werden alle unabhängigen Variablen berücksichtigt. Das Problem, mit dem ich konfrontiert bin, besteht darin, den Wert von bei 'df' und der Matrix 's' zu finden. Ich habe versucht, die obige Gleichung neu anzuordnen, aber keine Lösung in geschlossener Form erhalten. Bitte geben Sie hilfreiche Hinweise.
quelle
Antworten:
Ein Newton-Raphson / Fisher-Scoring / Taylor-Reihen-Algorithmus wäre dafür geeignet.
Sie müssen die Gleichung für lösen mit Ableitung Sie erhalten dann: h ( λ ) = p ∑ i = 1 d 2 iλ
∂h
Neuanordnung für Sie: Hiermit wird die iterative Suche eingerichtet. Nehmen Sie für anfängliche Startwerte in der Summation an, dann erhalten Sie .λ = λ ( 0 ) - [ ∂ hλ
Dies "geht" in die richtige Richtung ( erhöhen, wenn die Summation zu groß ist, verringern, wenn es zu klein ist) und dauert normalerweise nur wenige Iterationen, um gelöst zu werden. Ferner ist die Funktion monoton (eine Zunahme / Abnahme von verringert / erhöht immer die Summation), so dass sie eindeutig konvergiert (keine lokalen Maxima).λ λ
quelle
Hier ist der kleine Matlab-Code, der auf der Formel basiert, die durch Wahrscheinlichkeitslogik bewiesen wurde:
quelle
while ( abs(diff)>threshold )
.while( abs(diff) > threshold )