Saya membayangkan bahwa semakin besar koefisien pada suatu variabel, semakin besar kemampuan model untuk "berayun" dalam dimensi itu, memberikan peluang yang lebih besar untuk menyesuaikan kebisingan. Meskipun saya pikir saya punya perasaan yang wajar tentang hubungan antara varians dalam model dan koefisien besar, saya tidak memiliki alasan yang baik mengapa mereka terjadi dalam model pakaian luar. Apakah salah untuk mengatakan bahwa itu adalah gejala overfitting dan koefisien penyusutan lebih merupakan teknik untuk mengurangi varians dalam model? Regularisasi melalui penyusutan koefisien tampaknya beroperasi pada prinsip bahwa koefisien besar adalah hasil dari model overfitted, tapi mungkin saya salah menafsirkan motivasi di balik teknik ini.
Intuisi saya bahwa koefisien besar umumnya merupakan gejala overfitting berasal dari contoh berikut:
Katakanlah kita ingin memasukkan poin yang semuanya terletak pada sumbu x. Kita dapat dengan mudah membuat polinomial yang solusinya adalah: . Katakanlah poin kita adalah . Teknik ini memberikan semua koefisien> = 10 (kecuali untuk satu koefisien). Ketika kita menambahkan lebih banyak poin (dan dengan demikian meningkatkan derajat polinomial) besarnya koefisien ini akan meningkat dengan cepat.f ( x ) = ( x - x 1 ) ( x - x 2 ) . . . . ( x - x n - 1 ) ( x - x n ) x = 1 , 2 , 3 , 4
Contoh ini adalah bagaimana saya saat ini menghubungkan ukuran koefisien model dengan "kompleksitas" dari model yang dihasilkan, tetapi saya khawatir bahwa kasus ini adalah steril untuk benar-benar menjadi indikasi perilaku dunia nyata. Saya sengaja membangun model overfitted (tingkat polinomial OLS 10 derajat pada data yang dihasilkan dari model sampling kuadratik) dan terkejut melihat sebagian besar koefisien kecil dalam model saya:
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
Mungkin kesimpulan dari contoh ini adalah bahwa dua pertiga dari koefisien kurang dari 1, dan relatif terhadap koefisien lainnya , ada tiga koefisien yang luar biasa besar (dan variabel yang terkait dengan koefisien ini juga merupakan yang paling dekat). terkait dengan model pengambilan sampel yang benar).
Apakah (L2) regularisasi hanya sebuah mekanisme untuk mengurangi varians dalam suatu model dan dengan demikian "memperlancar" kurva agar lebih sesuai dengan data masa depan, atau apakah memanfaatkan heuristik yang diperoleh dari pengamatan bahwa model-model overfiited cenderung menunjukkan koefisien yang besar? Apakah ini pernyataan akurat bahwa model overfitted cenderung menunjukkan koefisien yang besar? Jika demikian, adakah yang bisa menjelaskan mekanisme di balik fenomena sedikit dan / atau mengarahkan saya ke beberapa literatur?