Para los clasificadores lineales, ¿los coeficientes más grandes implican características más importantes?

15

Soy un ingeniero de software que trabaja en aprendizaje automático. Según tengo entendido, la regresión lineal (como OLS) y la clasificación lineal (como la regresión logística y SVM) hacen una predicción basada en un producto interno entre los coeficientes entrenados y las variables de característica :wx

y^=f(wx)=f(iwixi)

Mi pregunta es: después de que el modelo haya sido entrenado (es decir, después de que se hayan calculado los coeficientes ), ¿es el caso que los coeficientes serán más grandes para las variables de características que son más importantes para que el modelo prediga con mayor precisión?wi

En otras palabras, estoy preguntando si las magnitudes relativas de los coeficientes se pueden usar para la selección de características simplemente ordenando las variables por valor de coeficiente y luego seleccionando las características con los coeficientes más altos. Si este enfoque es válido, ¿por qué no se menciona para la selección de características (junto con los métodos de envoltura y filtro, etc.).

La razón por la que pregunto esto es porque me encontré con una discusión sobre la regularización L1 vs. L2 . Hay una propaganda que dice:

La selección de funciones incorporadas se menciona con frecuencia como una propiedad útil de la norma L1, que la norma L2 no hace. Esto es en realidad el resultado de la norma L1, que tiende a producir coeficientes dispersos (explicados a continuación). Supongamos que el modelo tiene 100 coeficientes, pero solo 10 de ellos tienen coeficientes distintos de cero, lo que efectivamente significa que "los otros 90 predictores son inútiles para predecir los valores objetivo".

Leyendo entre líneas, supongo que si un coeficiente es cercano a 0, entonces la variable característica con ese coeficiente debe tener poco poder predictivo.

EDITAR : también estoy aplicando la escala z a mis variables numéricas.

stackoverflowuser2010
fuente
1
Tenga en cuenta que el código subyacente a los análisis LASSO (norma L1) y de regresión de cresta (norma L2) debe preescalar las variables predictoras antes del análisis, incluso si el código transforma los coeficientes nuevamente en las escalas variables originales. Aquellos que usan un código que no escala previamente terminan con los problemas señalados en la respuesta de @josliber si están haciendo OLS, LASSO o Ridge.
EdM
3
Creo que algo que vale la pena mencionar es que, cuando reflexionas sobre lo que estás tratando de expresar con la frase "entonces la variable característica con ese coeficiente debe tener poco poder predictivo", ¿puedes explicar con precisión lo que realmente significa? Sin embargo, descubrí por experiencia que el concepto de "poder predictivo" de una variable individual en un modelo multivariante no tiene una base conceptual generalmente acordada.
Matthew Drury
44
Creo que el error en ese tipo de pensamiento es que probablemente no estás limitado a producir un modelo de una variable. Si lo es, y desea proporcionar un modelo con la mejor precisión, seguro, eso es algo razonable. Si no es así, es decir, si va a producir un modelo multivariado, entonces, como responde @EdM, el concepto de importancia variable es muy, muy resbaladizo y carece de una base conceptual firme. No es del todo obvio que el poder predictivo en un modelo univariante se considere relevante en un entorno multivariante.
Matthew Drury
1
@MatthewDrury: No estoy seguro de por qué estás haciendo un gran problema con las funciones múltiples. Existe un campo completo de "selección de características" (por ejemplo, métodos de envoltura) que existe; ¿Está sugiriendo que este campo carece de una base conceptual firme?
stackoverflowuser2010
1
@ stackoverflowuser2010 Sí, probablemente soy un caso atípico en mi opinión aquí, pero esa sería una descripción algo precisa de mi perspectiva.
Matthew Drury

Respuestas:

24

De ningún modo. La magnitud de los coeficientes depende directamente de las escalas seleccionadas para las variables, que es una decisión de modelado algo arbitraria.

Para ver esto, considere un modelo de regresión lineal que predice el ancho del pétalo de un iris (en centímetros) dada su longitud del pétalo (en centímetros):

summary(lm(Petal.Width~Petal.Length, data=iris))
# Call:
# lm(formula = Petal.Width ~ Petal.Length, data = iris)
# 
# Residuals:
#      Min       1Q   Median       3Q      Max 
# -0.56515 -0.12358 -0.01898  0.13288  0.64272 
# 
# Coefficients:
#               Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  -0.363076   0.039762  -9.131  4.7e-16 ***
# Petal.Length  0.415755   0.009582  43.387  < 2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.2065 on 148 degrees of freedom
# Multiple R-squared:  0.9271,  Adjusted R-squared:  0.9266 
# F-statistic:  1882 on 1 and 148 DF,  p-value: < 2.2e-16

Nuestro modelo alcanza un valor R ^ 2 ajustado de 0.9266 y asigna un valor de coeficiente 0.415755 a la variable Petal.Length.

Sin embargo, la elección de definir Pétalo. Longitud en centímetros fue bastante arbitraria, y podríamos haber definido la variable en metros:

iris$Petal.Length.Meters <- iris$Petal.Length / 100
summary(lm(Petal.Width~Petal.Length.Meters, data=iris))
# Call:
# lm(formula = Petal.Width ~ Petal.Length.Meters, data = iris)
# 
# Residuals:
#      Min       1Q   Median       3Q      Max 
# -0.56515 -0.12358 -0.01898  0.13288  0.64272 
# 
# Coefficients:
#                     Estimate Std. Error t value Pr(>|t|)    
# (Intercept)         -0.36308    0.03976  -9.131  4.7e-16 ***
# Petal.Length.Meters 41.57554    0.95824  43.387  < 2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.2065 on 148 degrees of freedom
# Multiple R-squared:  0.9271,  Adjusted R-squared:  0.9266 
# F-statistic:  1882 on 1 and 148 DF,  p-value: < 2.2e-16

Por supuesto, esto realmente no afecta el modelo ajustado de ninguna manera: simplemente asignamos un coeficiente 100 veces más grande a Petal.Length.Meters (41.57554) que a Petal.Length (0.415755). Todas las demás propiedades del modelo (R ^ 2 ajustado, estadísticas t, valores p, etc.) son idénticas.

Generalmente, al ajustar modelos lineales regularizados, primero se normalizarán las variables (por ejemplo, para tener una media de 0 y una varianza unitaria) para evitar favorecer algunas variables sobre otras en función de las escalas seleccionadas.

Asumiendo datos normalizados

Incluso si hubiera normalizado todas las variables, las variables con coeficientes más altos podrían no ser tan útiles en las predicciones porque las variables independientes rara vez se establecen (tienen una varianza baja). Como ejemplo, considere un conjunto de datos con la variable dependiente Z y las variables independientes X e Y que toman valores binarios

set.seed(144)
dat <- data.frame(X=rep(c(0, 1), each=50000),
                  Y=rep(c(0, 1), c(1000, 99000)))
dat$Z <- dat$X + 2*dat$Y + rnorm(100000)

Por construcción, el coeficiente de Y es aproximadamente el doble que el coeficiente de X cuando ambos se usan para predecir Z mediante regresión lineal:

summary(lm(Z~X+Y, data=dat))
# Call:
# lm(formula = Z ~ X + Y, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -4.4991 -0.6749 -0.0056  0.6723  4.7342 
# 
# Coefficients:
#              Estimate Std. Error t value Pr(>|t|)    
# (Intercept) -0.094793   0.031598   -3.00   0.0027 ** 
# X            0.999435   0.006352  157.35   <2e-16 ***
# Y            2.099410   0.031919   65.77   <2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.9992 on 99997 degrees of freedom
# Multiple R-squared:  0.2394,  Adjusted R-squared:  0.2394 
# F-statistic: 1.574e+04 on 2 and 99997 DF,  p-value: < 2.2e-16

Aún así, X explica más de la varianza en Z que Y (el modelo de regresión lineal que predice Z con X tiene un valor R ^ 2 0.2065, mientras que el modelo de regresión lineal que predice Z con Y tiene un valor R ^ 2 0.0511):

summary(lm(Z~X, data=dat))
# Call:
# lm(formula = Z ~ X, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -5.2587 -0.6759  0.0038  0.6842  4.7342 
# 
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 1.962629   0.004564   430.0   <2e-16 ***
# X           1.041424   0.006455   161.3   <2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 1.021 on 99998 degrees of freedom
# Multiple R-squared:  0.2065,  Adjusted R-squared:  0.2065 
# F-statistic: 2.603e+04 on 1 and 99998 DF,  p-value: < 2.2e-16

versus:

summary(lm(Z~Y, data=dat))
# Call:
# lm(formula = Z ~ Y, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -5.0038 -0.7638 -0.0007  0.7610  5.2288 
# 
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept) -0.09479    0.03529  -2.686  0.00724 ** 
# Y            2.60418    0.03547  73.416  < 2e-16 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 1.116 on 99998 degrees of freedom
# Multiple R-squared:  0.05114, Adjusted R-squared:  0.05113 
# F-statistic:  5390 on 1 and 99998 DF,  p-value: < 2.2e-16

El caso de la multicolinealidad

Un tercer caso donde los valores de coeficientes grandes pueden ser engañosos sería en el caso de una multicolinealidad significativa entre variables. Como ejemplo, considere un conjunto de datos donde X e Y están altamente correlacionados pero W no está altamente correlacionado con los otros dos; estamos tratando de predecir Z:

set.seed(144)
dat <- data.frame(W=rnorm(100000),
                  X=rnorm(100000))
dat$Y <- dat$X + rnorm(100000, 0, 0.001)
dat$Z <- 2*dat$W+10*dat$X-11*dat$Y + rnorm(100000)
cor(dat)
#              W             X             Y          Z
# W 1.000000e+00  5.191809e-05  5.200434e-05  0.8161636
# X 5.191809e-05  1.000000e+00  9.999995e-01 -0.4079183
# Y 5.200434e-05  9.999995e-01  1.000000e+00 -0.4079246
# Z 8.161636e-01 -4.079183e-01 -4.079246e-01  1.0000000

Estas variables tienen más o menos la misma media (0) y varianza (~ 1), y la regresión lineal asigna valores de coeficientes mucho más altos (en valor absoluto) a X (aproximadamente 15) e Y (aproximadamente -16) que a W ( aproximadamente 2):

summary(lm(Z~W+X+Y, data=dat))
# Call:
# lm(formula = Z ~ W + X + Y, data = dat)
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -4.1886 -0.6760  0.0026  0.6679  4.2232 
# 
# Coefficients:
#               Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  1.831e-04  3.170e-03   0.058    0.954    
# W            2.001e+00  3.172e-03 630.811  < 2e-16 ***
# X            1.509e+01  3.177e+00   4.748 2.05e-06 ***
# Y           -1.609e+01  3.177e+00  -5.063 4.13e-07 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 1.002 on 99996 degrees of freedom
# Multiple R-squared:  0.8326,  Adjusted R-squared:  0.8326 
# F-statistic: 1.658e+05 on 3 and 99996 DF,  p-value: < 2.2e-16

Aún así, entre las tres variables en el modelo W está la más importante: si elimina W del modelo completo, el R ^ 2 cae de 0.833 a 0.166, mientras que si cae X o Y, el R ^ 2 prácticamente no cambia.

josliber
fuente
1
(+1) Creo que esta es una buena respuesta, y este punto debe hacerse. Por otro lado, creo que hay mucho que decir incluso cuando las variables se han estandarizado (y, por lo tanto, no tienen unidades), por lo que hay espacio para algunas respuestas más.
Matthew Drury
Gracias por la respuesta. Si bien su escritura es larga, no es muy exhaustiva porque está sacando conclusiones de pequeños datos sintéticos. Además, R ^ 2 es específico para la regresión lineal. Creo que la métrica de error más adecuada es RMSE, o precisión / F1 para problemas de clasificación.
stackoverflowuser2010
1
PERO si escala los datos en el último ejemplo, tiene que la única variable significativa es W
marcodena
11

La "importancia de la característica" es un concepto muy resbaladizo incluso cuando todos los predictores se han ajustado a una escala común (que en sí mismo es un problema no trivial en muchas aplicaciones prácticas que involucran variables categóricas o distribuciones sesgadas). Entonces, si evita los problemas de escalamiento indicados en la respuesta de @josliber o el problema de baja varianza del predictor planteado por @dsaxton, todavía tiene problemas adicionales.

Por ejemplo, una medida más útil de la importancia de la característica puede ser la relación entre su coeficiente y el error estimado de su coeficiente. Un coeficiente alto con un gran error estimado no necesariamente sería útil en las predicciones. Por lo tanto, la magnitud del coeficiente por sí sola, incluso en la situación preescalada, no es una buena guía de "importancia".

Sin embargo, un predictor puede ser importante incluso si la relación de magnitud y error de su coeficiente es baja (es decir, no es "estadísticamente significativa"). Los modelos lineales proporcionan la capacidad de tener en cuenta múltiples variables predictoras simultáneamente, por lo que incluir un predictor "no significativo" en un modelo puede mejorar el rendimiento general proporcionado por la colección combinada de predictores.

Además, los intentos de seleccionar variables predictoras "importantes" tienden a depender en gran medida de la muestra de datos en particular y, a menudo, no se extienden bien a otras muestras, particularmente si las variables están correlacionadas. Puede ver esto usted mismo repitiendo la selección de funciones en múltiples muestras de arranque del mismo conjunto de datos. Frank Harrell, en esta respuesta muestra cómo usar su rmspaquete en R para clasificar la importancia de la característica, y señala en esta respuesta cómo usar el bootstrap para obtener intervalos de confianza para los rangos. Bootstrapping puede servir como una advertencia para aquellos que le dan demasiada importancia a la "importancia de la característica".

Esta pregunta de hace casi 3 años, señalada por @amoeba, también entra en detalles sobre las dificultades con importancia de características en los modelos de regresión múltiple.

EdM
fuente
Ratio de error estimado. ¿Es esto conocido como "coeficiente estandarizado"?
HelloWorld
@StudentT un " coeficiente estandarizado " es un coeficiente de regresión cuando las variables independientes y dependientes se han escalado para tener una varianza unitaria. Eso no incluye información sobre el error estimado en el coeficiente. La relación que describo es la raíz cuadrada de la estadística de Wald utilizada por Harrell como una medida de importancia variable en el primero de mis enlaces.
EdM
6

Solo para agregar a la respuesta anterior, el coeficiente en sí mismo también falla al capturar cuánta variabilidad exhibe un predictor, lo que tiene un gran efecto sobre la utilidad de hacer predicciones. Considere el modelo simple

mi(Yyo)=α+βXyo

dónde Xyo es un Bernoulli(pag)variable aleatoria. Tomandopag0 0 también podemos enviar la utilidad de este predictor a cero, pero el coeficiente siempre será β.

dsaxton
fuente