Selecting good features – Part II: linear models and regularization
在我之前的文章中,我讨论了单变量特征选择,其中每个特征都是根据响应变量独立评估的。另一种流行的方法是利用机器学习模型进行特征排序。许多机器学习模型要么具有一些固有的特征内部排序,要么很容易根据模型的结构生成排序。这适用于回归模型、支持向量机、决策树、随机森林等。
在本文中,我将讨论使用回归模型的系数来选择和解释特征。这是基于这样的思想,即当所有特征都在同一尺度上时,模型中最重要的特征应当具有最高的系数,而与输出变量无关的特征应当具有接近于零的系数值。当数据不是非常嘈杂(或者与特征的数量相比存在大量数据)并且特征是(相对地)独立的时,即使对于简单的线性回归模型,该方法也可以很好地工作:
from sklearn.linear_model import LinearRegression
import numpy as np
np.random.seed(0)
size = 5000
# A dataset with 3 features
X = np.random.normal(0,1,(size,3))
# Y=X0+2*X1+noise
Y=X[:,0]+2*X[:,1]+np.random.normal(0,2,size)
lr=LinearRegression()
lr.fit(X,Y)
# A helper method for pretty-printing linear models
def pretty_print_linear(co