2016-06-20 27 views
1

誰かがMatlabのリッジ回帰関数のスケーリング係数を説明できますか?私は、値をスケールするために使用された式に関連する投稿を見つけましたが、どういう仕組みがよく分からないのか分かりません。私はそれを0に設定すると、典型的な数値が得られますが、傍受のために1の列を持たないX-行列を入力する必要があります。 1の列を含めると、返されたb行列は1行が多すぎるため、乗算できません。一方、スケーリング係数を1に設定すると、私は完全に不合理な値になります。誰かが何が起こっているのか、どうやってそれを修正することができるのか説明できますか?Matlabリッジ回帰次元

b = ridge(Y,X,lambda,0); 
size(Y) = 
      444205  1 
size(X) = 
      444205  4 
size(b) = 
       5  1 

答えて

1

ridge()自動的中心とXスケール(各機能のために、平均減算し、標準偏差で除算)、およびyセンタ。 XsX,ysの中央/縮尺バージョンを示し、yの中心バージョンを示し、bridge()によって戻される重みを示します。

scaledフラグが1に設定されている場合、bXsからysを予測するための重みを与えます。 ysの予測値はXs * bで与えられる。 Xsysが中央に配置されているため、定数項は必要ありません。

scaledフラグが0に設定されている場合、bXからyを予測するための重みを与えます。 bの最初の要素には定数項が含まれています(Xyには0以外の意味があります)。 yの予測値は、X * b(2:end) + b(1)で与えられます。

この現象の詳細については、documentationを参照してください。

+0

これについて説明します。どうもありがとうございます! – Schmax

関連する問題