我如何知道使用 SelectKBest 选择了哪些功能?
How do I know which features are selected with SelectKBest?
在运行 SelectKBest 之后选择了一些特征,结果以数组形式返回,所以我不知道它们是哪些特征,因为我的训练集有数千个特征。
我想在我的测试集中找到并挑选出这些特征,然后删除其余的。有什么方便的方法吗?谢谢!
代码如下:
from sklearn.feature_selection import SelectKBest, f_regression
X_opt=SelectKBest(f_regression,k=2000)
X_new=X_opt.fit_transform(df_train_X_mm, train_y)
X_new`
结果是:
array([[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
[0. , 0. , 0.00688335, ..., 0. , 0. ,
0. ],
[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
...,
[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
[0. , 0. , 0.06257587, ..., 0. , 0. ,
0. ]])
您要找的是feature_selection.SelectKBest
的get_support
方法。它 returns 一个布尔值数组,表示是否选择了给定特征 (True
) 或未选择 (False
)。
在运行 SelectKBest 之后选择了一些特征,结果以数组形式返回,所以我不知道它们是哪些特征,因为我的训练集有数千个特征。 我想在我的测试集中找到并挑选出这些特征,然后删除其余的。有什么方便的方法吗?谢谢!
代码如下:
from sklearn.feature_selection import SelectKBest, f_regression
X_opt=SelectKBest(f_regression,k=2000)
X_new=X_opt.fit_transform(df_train_X_mm, train_y)
X_new`
结果是:
array([[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
[0. , 0. , 0.00688335, ..., 0. , 0. ,
0. ],
[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
...,
[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
[0. , 0. , 0. , ..., 0. , 0. ,
0. ],
[0. , 0. , 0.06257587, ..., 0. , 0. ,
0. ]])
您要找的是feature_selection.SelectKBest
的get_support
方法。它 returns 一个布尔值数组,表示是否选择了给定特征 (True
) 或未选择 (False
)。