Ich habe zwei verschiedene Implementierungen von ridge
in MATLAB. Eins ist einfach
(wie auf der Grat-Regressionsseite von Wikipedia zu sehen ), wobei die Identitätsmatrix der Größenspalten ( ) Spalten ( ) ist undA × A.
Ich nenne Matlab einfach "Grat" mit
x = ridge(A, b, lambda)
Mein Problem ist, dass beide unterschiedliche Ergebnisse liefern. (1) gibt die gewünschten Ergebnisse zurück (ich weiß das, indem ich die Ergebnisse mit anderen Personen vergleiche), aber warum gibt (2) nicht dieselben Ergebnisse zurück?
Meine Matrix ist spärlich, sie ist mit 1% 1 und 99% 0 gefüllt. Einige Spalten enthalten fast keine Einsen. Der größte Unterschied scheint zu sein, dass der Koeffizient für Spalten mit sehr wenigen Einsen sehr nahe bei 0 in (1) liegt, aber ziemlich weit von 0 in (2) entfernt sein kann.
Hat jemand eine Idee, warum es anders ist und wie ich den Aufruf in (2) ändern kann, um die gleichen Ergebnisse wie in (1) zu erzielen?
ridge
ridge
(gemäß MATLAB-Dokumentation) Folgendes anzeigt (standardmäßig): Standardmäßig wird b berechnet, nachdem die Prädiktoren zentriert und skaliert wurden, um einen Mittelwert zu erhalten 0 und Standardabweichung 1. Das Modell enthält keinen konstanten Term, und X sollte keine Spalte von 1s enthalten. .