如何找到逻辑回归模型的特征的重要性?

时间:2015-12-02 20:11:22

标签: python machine-learning scikit-learn logistic-regression

我有一个由逻辑回归算法训练的二元预测模型。我想知道哪些特征(预测因子)对于正面或负面类的决定更重要。我知道有coef_参数来自scikit-learn包,但我不知道它是否足够重要。另一件事是我如何根据负面和正面类别的重要性来评估coef_值。我还读到了标准化的回归系数,我不知道它是什么。

让我们说有肿瘤大小,肿瘤重量等特征来决定恶性或非恶性的检测病例。我想知道哪些特征对恶性而非恶性预测更重要。它有道理吗?

1 个答案:

答案 0 :(得分:40)

在线性分类模型(逻辑是其中之一)中感受给定参数的“影响”的最简单选项之一是考虑其系数的大小乘以相应参数的标准偏差在数据中。

考虑这个例子:

import numpy as np    
from sklearn.linear_model import LogisticRegression

x1 = np.random.randn(100)
x2 = 4*np.random.randn(100)
x3 = 0.5*np.random.randn(100)
y = (3 + x1 + x2 + x3 + 0.2*np.random.randn()) > 0
X = np.column_stack([x1, x2, x3])

m = LogisticRegression()
m.fit(X, y)

# The estimated coefficients will all be around 1:
print(m.coef_)

# Those values, however, will show that the second parameter
# is more influential
print(np.std(X, 0)*m.coef_)

获得类似结果的另一种方法是检查模型拟合标准化参数的系数:

m.fit(X / np.std(X, 0), y)
print(m.coef_)

请注意,这是最基本的方法,并且存在许多用于发现特征重要性或参数影响的其他技术(使用p值,引导分数,各种“判别指数”等)。

我很确定你会在https://stats.stackexchange.com/获得更多有趣的答案。