Для линейных классификаторов, большие коэффициенты подразумевают более важные особенности?


15

Я инженер-программист, работающий над машинным обучением. Насколько я понимаю, линейная регрессия (например, OLS) и линейная классификация (например, логистическая регрессия и SVM) делают прогноз на основе внутреннего произведения между обучаемыми коэффициентами и характеристическими переменными :весИкс

Y^знак равное(весИкс)знак равное(ΣявесяИкся)

Мой вопрос: после обучения модели (то есть после вычисления коэффициентов ), имеет ли место значение, когда коэффициенты будут больше для характерных переменных, которые для модели важнее прогнозировать более точно?веся

Другими словами, я спрашиваю, можно ли использовать относительные величины коэффициентов для выбора признаков , просто упорядочив переменные по значению коэффициента, а затем выбрав элементы с наивысшими коэффициентами? Если этот подход верен, то почему он не упоминается для выбора функции (наряду с методами оболочки и фильтра и т. Д.).

Причина, по которой я спрашиваю об этом, заключается в том, что я столкнулся с обсуждением регуляризации L1 и L2 . Существует реклама, которая говорит:

Выбор встроенных функций часто упоминается как полезное свойство L1-нормы, чего нет в L2-норме. Это на самом деле результат L1-нормы, которая имеет тенденцию производить разреженные коэффициенты (объяснено ниже). Предположим, что модель имеет 100 коэффициентов, но только 10 из них имеют ненулевые коэффициенты, это фактически говорит о том, что «остальные 90 предикторов бесполезны в прогнозировании целевых значений».

Читая между строк, я бы предположил, что если коэффициент близок к 0, то переменная объекта с этим коэффициентом должна иметь небольшую предсказательную силу.

РЕДАКТИРОВАТЬ : я также применяю z-scaling к моим числовым переменным.


1
Обратите внимание, что код, лежащий в основе анализа LASSO (L1-норма) и регрессионного гребня (L2-норма), должен предварительно масштабировать переменные предиктора до анализа, даже если код затем преобразует коэффициенты обратно в исходные переменные шкалы. Те, кто использует код без предварительного масштабирования, сталкиваются с проблемами, отмеченными в ответе @josliber, независимо от того, используют ли они OLS, LASSO или ridge.
EdM

3
Я думаю, что стоит упомянуть, когда вы размышляете над тем, что пытаетесь выразить фразой «тогда переменная свойства с этим коэффициентом должна иметь небольшую предсказательную силу», можете ли вы точно изложить, что это на самом деле означает? Однако я обнаружил, что понятие «предсказательная сила» отдельной переменной в многомерной модели не имеет общепринятого концептуального обоснования.
Мэтью Друри

4
Я думаю, что ошибка в этом типе мышления заключается в том, что вы, вероятно, не ограничены созданием модели с одной переменной. Если вы и хотите предоставить модель с максимальной точностью, они уверены, что это разумное решение. Если это не так, т. Е. Если вы собираетесь создать многомерную модель, то, как отвечает @EdM, концепция переменной важности очень, очень скользкая и не имеет прочной концептуальной основы. Совсем не очевидно, что предсказательная сила в одномерной модели должна рассматриваться как актуальная в многомерной среде.
Мэтью Друри

1
@MatthewDrury: я не уверен, почему вы делаете большое дело из мультифункциональности. Существует целое поле «выбора функций» (например, методы-оболочки); Вы предлагаете, чтобы в этой области не было прочной концептуальной основы?
stackoverflowuser2010

1
@ stackoverflowuser2010 Да, я, вероятно, выделяюсь здесь, на мой взгляд, но это было бы несколько точным описанием моей точки зрения.
Мэтью Друри,

Ответы:


24

Не за что. Величина коэффициентов напрямую зависит от шкал, выбранных для переменных, что является несколько произвольным решением моделирования.

Чтобы увидеть это, рассмотрим модель линейной регрессии, предсказывающую ширину лепестка радужки (в сантиметрах) по длине лепестка (в сантиметрах):

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

Наша модель достигает скорректированного значения R ^ 2 0,9266 и присваивает значение коэффициента 0,415755 переменной Petal.Length.

Однако выбор определения Petal.Length в сантиметрах был совершенно произвольным, и мы могли бы вместо этого определить переменную в метрах:

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

Конечно, это никак не влияет на подобранную модель - мы просто присвоили коэффициенту Petal.Length.Meters в 100 раз больше, чем Petal.Length (0.415755). Все остальные свойства модели (скорректированные R ^ 2, t-статистика, p-значения и т. Д.) Идентичны.

Как правило, при подборе регуляризованных линейных моделей сначала необходимо нормализовать переменные (например, иметь среднее значение 0 и единичную дисперсию), чтобы избежать предпочтения одних переменных над другими на основе выбранных шкал.

Предполагая нормализованные данные

Даже если вы нормализовали все переменные, переменные с более высокими коэффициентами могут все еще не быть такими полезными в прогнозах, потому что независимые переменные редко устанавливаются (имеют низкую дисперсию). В качестве примера рассмотрим набор данных с зависимой переменной Z и независимыми переменными X и Y, принимающими двоичные значения

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)

По построению, коэффициент для Y примерно в два раза больше, чем коэффициент для X, когда оба используются для предсказания Z с помощью линейной регрессии:

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

Тем не менее, X объясняет больше дисперсии в Z, чем Y (модель линейной регрессии, предсказывающая Z с помощью X, имеет значение R ^ 2 0,2065, в то время как модель линейной регрессии, предсказывающая Z с помощью Y, имеет значение 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

против:

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

Случай мультиколлинеарности

Третий случай, когда большие значения коэффициента могут быть обманчивыми, был бы в случае значительной мультиколлинеарности между переменными. В качестве примера рассмотрим набор данных, где X и Y сильно коррелированы, но W не сильно коррелирует с двумя другими; мы пытаемся предсказать 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

Эти переменные в значительной степени имеют одинаковое среднее значение (0) и дисперсию (~ 1), а линейная регрессия присваивает гораздо более высокие значения коэффициента (в абсолютном значении) X (примерно 15) и Y (примерно -16), чем W ( примерно 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

Тем не менее, среди трех переменных в модели W является наиболее важным: если вы удаляете W из полной модели, R ^ 2 падает с 0,833 до 0,166, в то время как если вы отбрасываете X или Y, то R ^ 2 практически не изменяется.


1
(+1) Я думаю, что это хороший ответ, и этот момент должен быть сделан. С другой стороны, я верю, что можно многое сказать даже тогда, когда переменные стандартизированы (и, следовательно, являются единичными), поэтому есть место для еще нескольких ответов.
Мэтью Друри

Спасибо за ответ. Хотя ваше письмо длинное, оно не очень тщательное, потому что вы делаете выводы из небольших синтетических данных. Кроме того, R ^ 2 характерен для линейной регрессии. Я считаю, что более подходящей метрикой ошибки является RMSE или точность / F1 для задач классификации.
stackoverflowuser2010

1
НО, если вы масштабируете данные в последнем примере, у вас есть, что единственная значимая переменная - это W
marcodena

11

«Важность особенности» - это очень скользкая концепция, даже когда все предикторы настроены на общую шкалу (что само по себе является нетривиальной проблемой во многих практических приложениях, включающих категориальные переменные или искаженные распределения). Поэтому, если вы избежите проблем с масштабированием, указанных в ответе @josliber, или проблемы с низким показателем прогнозирования, поднятой @dsaxton, у вас все еще будут дополнительные проблемы.

Например, более полезным показателем важности признака может быть отношение его коэффициента к предполагаемой ошибке его коэффициента. Высокий коэффициент с большой оценочной ошибкой не обязательно поможет при прогнозировании. Таким образом, одна только величина коэффициента, даже в предварительно масштабированной ситуации, не является хорошим ориентиром для «важности».

Тем не менее, предиктор может быть важен, даже если отношение его коэффициента к ошибке является низким (то есть он не является «статистически значимым»). Линейные модели обеспечивают возможность одновременного учета нескольких переменных предикторов, поэтому включение в модель «несущественного» предиктора может улучшить общую производительность, обеспечиваемую объединенным набором предикторов.

Кроме того, попытки выбрать «важные» переменные предиктора имеют тенденцию сильно зависеть от конкретной выборки данных и часто не распространяются на другие выборки, особенно если переменные коррелированы. Вы можете убедиться в этом сами, повторив выбор функций на нескольких выборках начальной загрузки одного и того же набора данных. Фрэнк Харрелл в этом ответе показывает, как использовать свой rmsпакет в R для ранжирования важности функций, и отмечает в этом ответе, как использовать загрузчик для получения доверительных интервалов для рангов. Начальная загрузка может служить предостережением для тех, кто придает слишком большое значение «важности функций».

Этот вопрос почти 3 года назад, на который указал @amoeba, также подробно описывает трудности, связанные с важностью функций в моделях множественной регрессии.


Коэффициент оценочной ошибки. Это известно как «стандартизированный коэффициент»?
HelloWorld,

@StudentT « стандартизированный коэффициент » - это коэффициент регрессии, когда все независимые и зависимые переменные масштабированы для получения единичной дисперсии. Это не включает информацию о предполагаемой ошибке в коэффициенте. Соотношение, которое я описываю, является квадратным корнем статистики Вальда, используемой Харреллом в качестве показателя переменной важности в первой из моих ссылок.
EdM

6

Просто чтобы добавить к предыдущему ответу, сам коэффициент также не в состоянии отразить, насколько изменчивость демонстрирует предиктор, что оказывает большое влияние на то, насколько он полезен при прогнозировании. Рассмотрим простую модель

Е(Yя)знак равноα+βИкся

Икся(п)п0β

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.