Immagino che maggiore è un coefficiente su una variabile, maggiore è la capacità del modello di "oscillare" in quella dimensione, offrendo una maggiore opportunità di adattamento al rumore. Anche se penso di avere un ragionevole senso della relazione tra la varianza nel modello e i coefficienti elevati, non ho la stessa idea del perché si verifichino nei modelli di overfit. È errato affermare che sono un sintomo di eccesso di adattamento e la riduzione del coefficiente è più una tecnica per ridurre la varianza nel modello? La regolarizzazione tramite il restringimento dei coefficienti sembra funzionare secondo il principio che i coefficienti elevati sono il risultato di un modello sovradimensionato, ma forse sto fraintendendo la motivazione alla base della tecnica.
La mia intuizione che i coefficienti di grandi dimensioni siano generalmente un sintomo di overfitting deriva dal seguente esempio:
Diciamo che volevamo inserire punti che si trovano tutti sull'asse x. Possiamo facilmente costruire un polinomio le cui soluzioni sono questi punti: . Supponiamo che i nostri punti siano . Questa tecnica fornisce tutti i coefficienti> = 10 (tranne un coefficiente). Man mano che aggiungiamo più punti (e quindi aumentiamo il grado del polinomio) l'entità di questi coefficienti aumenterà rapidamente.f ( x ) = ( x - x 1 ) ( x - x 2 ) . . . . ( x - x n - 1 ) ( x - x n ) x = 1 , 2 , 3 , 4
Questo esempio è come sto attualmente collegando la dimensione dei coefficienti del modello con la "complessità" dei modelli generati, ma sono preoccupato che questo caso sia sterile per essere davvero indicativo del comportamento nel mondo reale. Ho deliberatamente costruito un modello sovradimensionato (un OLS polinomiale di decimo grado si adattava ai dati generati da un modello di campionamento quadratico) e sono rimasto sorpreso nel vedere coefficienti per lo più piccoli nel mio modello:
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
Forse il take-away di questo esempio è che due terzi dei coefficienti sono inferiori a 1 e rispetto agli altri coefficienti , ci sono tre coefficienti insolitamente grandi (e le variabili associate a questi coefficienti sono anche quelle più vicine in relazione al vero modello di campionamento).
La regolarizzazione (L2) è solo un meccanismo per ridurre la varianza in un modello e quindi "smussare" la curva per adattarsi meglio ai dati futuri, o sta sfruttando un euristico derivato dall'osservazione che i modelli sovrastampati tendono a presentare coefficienti elevati? È un'affermazione accurata che i modelli sovradimensionati tendono a presentare coefficienti elevati? Se è così, qualcuno può forse spiegare un po 'il meccanismo alla base del fenomeno e / o indirizzarmi verso qualche letteratura?