我在这篇博文中表示,特征系数越高,特征越重要。
但是作者没有提到为什么更高的系数等于更高的重要性,这让我很困惑。
我在这篇博文中表示,特征系数越高,特征越重要。
但是作者没有提到为什么更高的系数等于更高的重要性,这让我很困惑。
声称“更高”系数本身等同于更重要是不正确的。原因是数据的规模在线性模型中很重要。
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
如您所见,线性变换更改上面我的虚拟示例中的估计系数。
为了比较线性模型中的系数,所有需要在相同的范围内(有时称为 beta 回归)。即需要有一个标准差。我摔倒被缩放,您可以声称“更高”的系数对(“高”的变化更大系数与更强的变化有关与“低”相比系数)。
但是,这不一定与“特征重要性”相同,这意味着某些人的“高预测能力”.
在 Logit 模型的上下文中,您将使用“Lasso”或“Ridge”(或 Elastic Net)来“缩小”在进行预测时不是很有用的系数。见ISL,Ch。6.2.2 . 在这些模型中,一个额外的“惩罚项”用于“缩小”贡献很小(或比其他人少)的系数。在 OLS 的情况下,这看起来像:
sklearn.linear_model.LogisticRegression
默认情况下使用 l2 惩罚(选项penalty
),即“Ridge”。
所以总的来说,你可以使用 Ridge/Lasso 来选择特征(有些人认为这是特征的重要性)。然而,“更大的系数”本身“更重要”的说法是不正确的。