较高的系数是否等于较高的特征重要性?

数据挖掘 scikit-学习 逻辑回归
2022-03-01 11:20:20

在这篇博文中表示,特征系数越高,特征越重要。

但是作者没有提到为什么更高的系数等于更高的重要性,这让我很困惑。

1个回答

声称“更高”系数本身等同于更重要是不正确的。原因是数据的规模在线性模型中很重要。

df = data.frame(y=c(1,1,1,0,0,0),x1=c(10,11,12,5,4,6), x2=c(11310,12520,10110,6010,5020,4010))

logit1 <- glm(y ~ x1 + x2, data = df, family = "binomial")
summary(logit1)


df$x2_alt = df$x2 / 1000
df$x2_alt

logit2 <- glm(y ~ x1 + x2_alt, data = df, family = "binomial")
summary(logit2)

逻辑 1:

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept) -7.274e+01  1.679e+05       0        1
x1           4.561e+00  1.072e+05       0        1
x2           4.450e-03  1.019e+02       0        1

逻辑 2:

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept)    -72.743 167870.599       0        1
x1               4.561 107247.232       0        1
x2_alt           4.450 101948.329       0        1

如您所见,线性变换x2更改上面我的虚拟示例中的估计系数。

为了比较线性模型中的系数,所有x需要在相同的范围内(有时称为 beta 回归)。x需要有一个标准差我摔倒x被缩放,您可以声称“更高”的系数对y(“高”的变化更大x系数与更强的变化有关y与“低”相比x系数)。

但是,这不一定与“特征重要性”相同,这意味着某些人的“高预测能力”x.

在 Logit 模型的上下文中,您将使用“Lasso”或“Ridge”(或 Elastic Net)来“缩小”在进行预测时不是很有用的系数。ISL,Ch。6.2.2 . 在这些模型中,一个额外的“惩罚项”用于“缩小”贡献很小(或比其他人少)的系数。在 OLS 的情况下,这看起来像:

在此处输入图像描述

sklearn.linear_model.LogisticRegression默认情况下使用 l2 惩罚(选项penalty),即“Ridge”。

所以总的来说,你可以使用 Ridge/Lasso 来选择特征(有些人认为这是特征的重要性)。然而,“更大的系数”本身“更重要”的说法是不正确的。