这个问题和答案展示了当使用scikit-learn的专门特征选择程序之一进行特征选择时,可以按以下方式检索所选特征的名称:
np.asarray(vectorizer.get_feature_names())[featureSelector.get_support()]
例如,在上述代码中,
featureSelector
可能是 sklearn.feature_selection.SelectKBest
或 sklearn.feature_selection.SelectPercentile
的实例,因为这些类实现了 get_support
方法,该方法返回所选特征的布尔掩码或整数索引。当使用 L1 范数惩罚的线性模型进行特征选择时,如何实现不太清楚。
sklearn.svm.LinearSVC
没有 get_support
方法,并且文档没有明确说明如何在使用其 transform
方法消除样本集中的特征后检索特征索引。我是否遗漏了什么?
np.where(svc.coef_ != 0)[0]
代替np.flatnonzero
。(因为您的第二次编辑被拒绝了,所以我进行了您建议的补充更正。) - eickenberg