gpt4 book ai didi

numpy - sklearn : get feature names after L1-based feature selection

转载 作者:行者123 更新时间:2023-11-30 08:27:59 27 4
gpt4 key购买 nike

This question and answer演示当使用 scikit-learn 的专用特征选择例程之一执行特征选择时,可以按如下方式检索所选特征的名称:

np.asarray(vectorizer.get_feature_names())[featureSelector.get_support()]

例如,在上面的代码中,featureSelector可能是sklearn.feature_selection.SelectKBestsklearn.feature_selection.SelectPercentile的实例,因为这些类实现了 get_support 方法,该方法返回所选功能的 bool 掩码或整数索引。

当一个人执行feature selection via linear models penalized with the L1 norm时,尚不清楚如何实现这一点。 sklearn.svm.LinearSVC 没有 get_support 方法,并且文档没有明确说明如何在使用其 transform 方法后检索特征索引从样本集合中消除特征。我在这里遗漏了什么吗?

最佳答案

对于稀疏估计器,您通常可以通过检查非零条目在系数向量中的位置来找到支持(假设系数向量存在,例如线性模型就是这种情况)

support = np.flatnonzero(estimator.coef_)

对于具有 l1 惩罚的 LinearSVC ,相应的结果是

from sklearn.svm import LinearSVC
svc = LinearSVC(C=1., penalty='l1', dual=False)
svc.fit(X, y)
selected_feature_names = np.asarray(vectorizer.get_feature_names())[np.flatnonzero(svc.coef_)]

关于numpy - sklearn : get feature names after L1-based feature selection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25007640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com