Me imagino que cuanto mayor es el coeficiente de una variable, más capacidad tiene el modelo para "oscilar" en esa dimensión, lo que brinda una mayor oportunidad de ajustar el ruido. Aunque creo que tengo un sentido razonable de la relación entre la varianza en el modelo y los coeficientes grandes, no tengo un buen sentido de por qué ocurren en los modelos sobreajustados. ¿Es incorrecto decir que son un síntoma de sobreajuste y la reducción del coeficiente es más una técnica para reducir la varianza en el modelo? La regularización a través de la reducción del coeficiente parece funcionar según el principio de que los coeficientes grandes son el resultado de un modelo sobreajustado, pero tal vez estoy malinterpretando la motivación detrás de la técnica.
Mi intuición de que los coeficientes grandes son generalmente un síntoma de sobreajuste proviene del siguiente ejemplo:
Digamos que queríamos ajustar puntos que todos se sientan en el eje x. Podemos construir fácilmente un polinomio cuyas soluciones son estos puntos: f ( x ) = ( x - x 1 ) ( x - x 2 ) . . . . ( x - x n - 1 ) ( x - x n ) . Digamos que nuestros puntos están en x = 1 , 2 , 3 , 4. Esta técnica proporciona todos los coeficientes> = 10 (excepto un coeficiente). A medida que agreguemos más puntos (y así aumentemos el grado del polinomio), la magnitud de estos coeficientes aumentará rápidamente.
Este ejemplo es cómo actualmente estoy conectando el tamaño de los coeficientes del modelo con la "complejidad" de los modelos generados, pero me preocupa que este caso sea estéril para ser realmente indicativo del comportamiento del mundo real. Deliberadamente construí un modelo sobreajustado (un ajuste OLS polinomial de décimo grado en los datos generados a partir de un modelo de muestreo cuadrático) y me sorprendió ver coeficientes en su mayoría pequeños en mi modelo:
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
Quizás la conclusión de este ejemplo es que dos tercios de los coeficientes son menores que 1, y en relación con los otros coeficientes , hay tres coeficientes que son inusualmente grandes (y las variables asociadas con estos coeficientes también son las más cercanas relacionado con el verdadero modelo de muestreo).
¿Es la regularización (L2) solo un mecanismo para disminuir la varianza en un modelo y, por lo tanto, "suavizar" la curva para que se ajuste mejor a los datos futuros, o se está aprovechando de una heurística derivada de la observación de que los modelos sobreajustados tienden a exhibir coeficientes grandes? ¿Es una afirmación precisa de que los modelos sobreajustados tienden a exhibir coeficientes grandes? Si es así, ¿alguien puede explicar un poco el mecanismo detrás del fenómeno y / o dirigirme a alguna literatura?