変数の係数が大きいほど、モデルはその次元で「スイング」する能力が大きくなり、ノイズに適合する機会が増えると思います。モデルの分散と大きな係数との関係については合理的な意味を持っていると思いますが、オーバーフィットモデルでそれらが発生する理由についてはあまり意味がありません。それらが過剰適合の症状であり、係数の収縮はモデルの分散を減らすための技術であると言うのは間違っていますか?係数の縮小による正則化は、大きな係数は過剰適合モデルの結果であるという原則に基づいているようですが、おそらくこの手法の背後にある動機を誤解しているのでしょう。
大きな係数は一般に過剰適合の症状であるという私の直感は、次の例から得られます。
すべてがx軸上にある点をフィットさせたいとしましょう。これらの点がある多項式を簡単に構築できます。私たちのポイントがでているとしましょう。この手法は、10以上のすべての係数を提供します(1つの係数を除く)。さらにポイントを追加すると(したがって、多項式の次数が増加します)、これらの係数の大きさは急速に増加します。f (x )= (x − x 1)(x − x 2)。。。。(X - X N - 1)(X - X N)のx = 1 、2 、3 、4
この例は、現在、モデル係数のサイズと生成されたモデルの「複雑さ」をどのように結びつけているのかを示していますが、実際の動作を実際に示すためにこのケースが不毛になることを心配しています。私は意図的にオーバーフィットモデル(2次サンプリングモデルから生成されたデータにフィットする10次多項式OLS)を構築し、私のモデルでほとんど小さな係数を見ることに驚きました:
set.seed(123)
xv = seq(-5,15,length.out=1e4)
x=sample(xv,20)
gen=function(v){v^2 + 7*rnorm(length(v))}
y=gen(x)
df = data.frame(x,y)
model = lm(y~poly(x,10,raw=T), data=df)
summary(abs(model$coefficients))
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 0.000001 0.003666 0.172400 1.469000 1.776000 5.957000
data.frame(sort(abs(model$coefficients)))
# model.coefficients
# poly(x, 10, raw = T)10 7.118668e-07
# poly(x, 10, raw = T)9 3.816941e-05
# poly(x, 10, raw = T)8 7.675023e-04
# poly(x, 10, raw = T)7 6.565424e-03
# poly(x, 10, raw = T)6 1.070573e-02
# poly(x, 10, raw = T)5 1.723969e-01
# poly(x, 10, raw = T)3 6.341401e-01
# poly(x, 10, raw = T)4 8.007111e-01
# poly(x, 10, raw = T)1 2.751109e+00
# poly(x, 10, raw = T)2 5.830923e+00
# (Intercept) 5.956870e+00
この例から得られることは、係数の3分の2が1未満であり、他の係数と比較して、異常に大きい3つの係数があることです(これらの係数に関連付けられている変数も、最も近いものです真のサンプリングモデルに関連しています)。
(L2)正則化は、モデルの分散を小さくし、それにより将来のデータにより良く適合するように曲線を「滑らかにする」メカニズムですか、それとも過剰なモデルが大きな係数を示す傾向があるという観測から得られた発見的手法を利用していますか?過剰適合モデルは大きな係数を示す傾向があるというのは正確な記述ですか?もしそうなら、誰もがおそらく現象の背後にあるメカニズムを少し説明したり、いくつかの文献に私を導くことができますか?