如何将scikit Lasso / LARS用作回归特征选择工具?

时间:2015-03-22 22:08:44

标签: python scikit-learn scikits

我有大约22个数据预测变量,x_i,我想减少到一定数量,以便最好地描述y。基本问题......但是,我还不清楚如何使用scikit和linearmodel.lassoLars来执行此任务。

从他们的示例文档中,代码就像:

alpha = 0.1
lasso = Lasso(alpha=alpha)

y_pred_lasso = lasso.fit(X_train, y_train).predict(X_test)

所以它执行回归和套索,但我不知道如何使用y_pred_lasso来输出我想要的内容,即来自最能描述y_train的22个原始预测变量的变量。

1 个答案:

答案 0 :(得分:2)

一旦您调用了coef_实例,就可以使用Lasso实例的fit属性访问所选功能。此属性存储每个要素的权重。

>>> lasso = Lasso(alpha=alpha).fit(X_train, y_train)
>>> lasso.coef_ != 0
array([ True,  True,  True, False, False,  True,  True,  True,  True,
        True,  True,  True,  True], dtype=bool)
>>> import numpy as np
>>> np.nonzero(lasso.coef_)
(array([ 0,  1,  2,  5,  6,  7,  8,  9, 10, 11, 12]),)