Para classificadores lineares, coeficientes maiores implicam recursos mais importantes?

15

Sou engenheiro de software trabalhando em aprendizado de máquina. Pelo meu entendimento, regressão linear (como OLS) e classificação linear (como regressão logística e SVM) fazem uma previsão com base em um produto interno entre coeficientes treinados variáveis ​​de recurso x :Wx

y^=f(Wx)=f(EuWEuxEu)

A minha pergunta é: Depois que o modelo foi treinado (isto é, após os coeficientes ter ser computadas), é o caso de que os coeficientes serão maiores para as variáveis de recursos que são mais importantes para o modelo para prever com mais precisão?WEu

Em outras palavras, estou perguntando se as magnitudes relativas dos coeficientes podem ser usadas para a seleção de características , apenas ordenando as variáveis ​​pelo valor do coeficiente e selecionando as características com os coeficientes mais altos. Se essa abordagem for válida, por que não é mencionada na seleção de recursos (junto com os métodos de invólucro e filtro, etc.).

A razão pela qual pergunto isso é porque me deparei com uma discussão sobre regularização L1 vs. L2 . Há uma sinopse que diz:

A seleção de recursos internos é frequentemente mencionada como uma propriedade útil da norma L1, que a norma L2 não possui. Na verdade, isso é resultado da norma L1, que tende a produzir coeficientes esparsos (explicados abaixo). Suponha que o modelo tenha 100 coeficientes, mas apenas 10 deles tenham coeficientes diferentes de zero, isso significa efetivamente que "os outros 90 preditores são inúteis na previsão dos valores-alvo".

Lendo nas entrelinhas, acho que, se um coeficiente for próximo de 0, a variável de recurso com esse coeficiente deverá ter pouco poder preditivo.

EDIT : Eu também estou aplicando z-scaling para minhas variáveis ​​numéricas.

stackoverflowuser2010
fonte
1
Observe que o código subjacente às análises LASSO (norma L1) e regressão de crista (norma L2) deve pré-dimensionar as variáveis ​​preditoras antes da análise, mesmo se o código transformar os coeficientes de volta nas escalas variáveis ​​originais. Aqueles que usam código que não é pré-dimensionado acabam com os problemas observados na resposta do @josliber, estejam eles usando OLS, LASSO ou ridge.
EdM
3
Acho que vale a pena mencionar que, quando você reflete sobre o que está tentando expressar com a frase "então a variável de recurso com esse coeficiente deve ter pouco poder preditivo", você pode explicar exatamente o que isso realmente significa? Descobri, no entanto, que o conceito de "poder preditivo" de uma variável individual em um modelo multivariado não tem, geralmente, concordância sobre os fundamentos conceituais.
Matthew Drury
4
Eu acho que o erro nesse tipo de pensamento é que você provavelmente não está confinado a produzir um modelo de uma variável. Se você é e deseja fornecer um modelo com a melhor precisão, com certeza, isso é uma coisa razoável a se fazer. Se você não é, ou seja, se deseja produzir um modelo multivariado, então, como o @EdM responde, o conceito de importância variável é muito, muito escorregadio e carece de uma base conceitual firme. Não é de todo óbvio que o poder preditivo em um modelo univariado seja visto como relevante em um cenário multivariado.
Matthew Drury
1
@ MatthewDrury: Não sei por que você está fazendo um grande negócio com vários recursos. Existe todo um campo de "seleção de recurso" (por exemplo, métodos de invólucro) que existe; você está sugerindo que esse campo carece de uma base conceitual firme?
stackoverflowuser2010
1
@ stackoverflowuser2010 Sim, provavelmente sou um discrepante na minha opinião aqui, mas isso seria uma descrição um pouco precisa da minha perspectiva.
Matthew Drury

Respostas:

24

De modo nenhum. A magnitude dos coeficientes depende diretamente das escalas selecionadas para as variáveis, o que é uma decisão de modelagem um tanto arbitrária.

Para ver isso, considere um modelo de regressão linear que preveja a largura da pétala de uma íris (em centímetros), considerando seu comprimento (em 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

Nosso modelo atinge um valor de R ^ 2 ajustado de 0,9266 e atribui o valor do coeficiente 0,415755 à variável Petal.Length.

No entanto, a escolha de definir Petal.Length em centímetros foi bastante arbitrária, e poderíamos ter definido a variável em 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

Obviamente, isso realmente não afeta o modelo ajustado - simplesmente atribuímos um coeficiente 100x maior a Petal.Length.Meters (41.57554) do que ao Petal.Length (0.415755). Todas as outras propriedades do modelo (R ^ 2 ajustado, estatística t, valores p, etc.) são idênticas.

Geralmente, ao ajustar modelos lineares regularizados, primeiro normalizamos as variáveis ​​(por exemplo, para ter média 0 e variação unitária) para evitar favorecer algumas variáveis ​​em detrimento de outras com base nas escalas selecionadas.

Assumindo Dados Normalizados

Mesmo se você normalizou todas as variáveis, as variáveis ​​com coeficientes mais altos ainda podem não ser tão úteis nas previsões, porque as variáveis ​​independentes raramente são definidas (apresentam baixa variação). Como exemplo, considere um conjunto de dados com a variável dependente Z e as variáveis ​​independentes X e Y assumindo valores binários

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 construção, o coeficiente para Y é aproximadamente duas vezes maior que o coeficiente para X quando ambos são usados ​​para prever Z via regressão linear:

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

Ainda assim, X explica mais da variação em Z do que Y (o modelo de regressão linear que prevê Z com X tem valor de R ^ 2 0,2065, enquanto o modelo de regressão linear que prevê Z com Y tem valor de 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

O caso da multicolinearidade

Um terceiro caso em que grandes valores de coeficiente podem enganar seria no caso de multicolinearidade significativa entre variáveis. Como exemplo, considere um conjunto de dados em que X e Y são altamente correlacionados, mas W não é altamente correlacionado aos outros dois; nós estamos tentando prever 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

Essas variáveis ​​têm praticamente a mesma média (0) e variância (~ 1), e a regressão linear atribui valores de coeficiente muito mais altos (em valor absoluto) a X (aproximadamente 15) e Y (aproximadamente -16) do 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

Ainda assim, entre as três variáveis ​​no modelo W é a mais importante: se você remover W do modelo completo, o R ^ 2 cairá de 0,833 para 0,166, enquanto que se você soltar X ou Y, o R ^ 2 permanecerá praticamente inalterado.

josliber
fonte
1
(+1) Acho que essa é uma boa resposta, e esse ponto deve ser feito. Por outro lado, acredito que há muito a dizer, mesmo quando as variáveis ​​foram padronizadas (e são, portanto, sem unidades), então há espaço para mais algumas respostas.
Matthew Drury
Obrigado pela resposta. Enquanto sua escrita é longa, não é muito completa, porque você está tirando conclusões de pequenos dados sintéticos. Além disso, R ^ 2 é específico para regressão linear. Acredito que a métrica de erro mais apropriada seja RMSE, ou exatidão / F1 para problemas de classificação.
stackoverflowuser2010
1
MAS se você dimensionar os dados no último exemplo, você tem que a única variável significativa é W
marcodena
11

"Importância do recurso" é um conceito muito escorregadio, mesmo quando todos os preditores foram ajustados para uma escala comum (que por si só é um problema não trivial em muitas aplicações práticas que envolvem variáveis ​​categóricas ou distribuições distorcidas). Portanto, se você evitar os problemas de dimensionamento indicados na resposta por @josliber ou o problema de baixa variação de preditores levantado por @dsaxton, você ainda terá problemas adicionais.

Por exemplo, uma medida mais útil da importância do recurso pode ser a razão de seu coeficiente para o erro estimado de seu coeficiente. Um alto coeficiente com um grande erro estimado não seria necessariamente útil nas previsões. Portanto, somente a magnitude do coeficiente, mesmo na situação pré-escalada, não é um bom guia para a "importância".

No entanto, um preditor pode ser importante, mesmo que a razão de magnitude do erro do coeficiente seja baixa (ou seja, não é "estatisticamente significativa"). Os modelos lineares fornecem a capacidade de levar em consideração várias variáveis ​​preditoras simultaneamente, portanto, incluir um preditor "não significativo" em um modelo pode melhorar o desempenho geral fornecido pela coleção combinada de preditores.

Além disso, as tentativas de selecionar variáveis ​​preditivas "importantes" tendem a ser altamente dependentes da amostra de dados específica e geralmente não se estendem bem a outras amostras, principalmente se as variáveis ​​estiverem correlacionadas. Você pode ver isso por si mesmo repetindo a seleção de recursos em várias amostras de inicialização do mesmo conjunto de dados. Frank Harrell, nesta resposta, mostra como usar seu rmspacote no R para classificar a importância dos recursos e observa nesta resposta como usar o autoinicializador para obter intervalos de confiança para as fileiras. O bootstrapping pode servir como cautela para aqueles que colocam muita importância em "importância de recurso".

Essa pergunta de quase três anos atrás, apontada por @amoeba, também entra em detalhes detalhados sobre dificuldades com importância de recurso em vários modelos de regressão.

EdM
fonte
Proporção de erro estimado. Isso é conhecido como "coeficiente padronizado"?
HelloWorld 24/11
@StudentT um " coeficiente padronizado " é um coeficiente de regressão quando todas as variáveis ​​independentes e dependentes foram escaladas para ter variação unitária. Isso não inclui informações sobre o erro estimado no coeficiente. A razão que descrevo é a raiz quadrada da estatística Wald usada por Harrell como uma medida de importância variável no primeiro dos meus links.
Edm
6

Apenas para adicionar à resposta anterior, o coeficiente em si também falha em capturar quanta variabilidade um preditor exibe, o que tem um grande efeito sobre a utilidade em fazer previsões. Considere o modelo simples

E(YEu)=α+βXEu

XEu(p)p0 0β

dsaxton
fonte