0

私は Matlab を使用して、最小二乗法とリッジの両方を使用してモデルの係数を計算しています。私のコーディングはすべて正しいと確信していました。

しかし、1 つのデータセット (ボストンの住宅) では、リッジ係数が最小二乗係数よりも大きくなっています。これは実際に可能ですか?どういう意味ですか?または、コーディング エラーが発生しましたか? .....

4

1 に答える 1

1

全然問題なさそうです…。

1) 典型的な最小二乗問題では、最小化するベータ ベクトルを選択する必要があります。

||yX*ベータ||^2

2) 関連する別の問題 (なげなわ問題として知られている) は、最小化するベータ ベクトルを見つけることです。

||yX*ベータ||^2 + ラムダ*||ベータ||

3) 最後に、リッジ回帰では、問題は最小化するベータ ベクトルを見つけることです。

||yX*ベータ||^2 + ラムダ*||ベータ||^2

上記の問題 (2) では、[beta_i] のサイズに特にペナルティを課していることは明らかです。

一方、上記の問題 (3) では、betas_i のサイズの違いにペナルティを課しています。ベクトル beta に小さな beta_i と大きな beta_i がある場合、コストは依然として大きくなります。問題 (1) でベクトル beta=[0.1;0.0001] を想像してください。問題 (2) の両方の beta_is を「比例的に」減らすことは良い解決策のようですが、問題 (3) では同じことは起こりません。 beta_1 のサイズ = 0.1。

したがって、問題 (3) の matlab ソリューションで beta_i のサイズがより似ている場合は、うまくいっているように見えます。

私が助けてくれることを願っていますが、これまでこの種の回帰を実行したことはなく、ここにも matlab がありません。

于 2013-03-21T05:08:49.543 に答える