在使用 scikit 学习进行特征选择后识别过滤后的特征

Identifying filtered features after feature selection with scikit learn

这是我在 Python 中 feature selection method 的代码:

from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
X.shape
(150, 4)
X_new = LinearSVC(C=0.01, penalty="l1", dual=False).fit_transform(X, y)
X_new.shape
(150, 3)

但是在获得新的 X(因变量 - X_new)之后,我如何知道在这个新的更新变量中删除了哪些变量以及考虑了哪些变量? (删除了哪一个或数据中存在哪三个。)

获得此标识的原因是对新测试数据应用相同的过滤。

稍微修改了您的代码。对于每个 class,使用的特征可以通过查看 LinearSVC 的系数来了解。根据文档,coef_ : array, shape = [n_features] if n_classes == 2 else [n_classes, n_features ]

对于新数据,您只需对其应用转换即可。

from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
import numpy as np

iris = load_iris()
X, y = iris.data, iris.target
print X.shape

lsvc = LinearSVC(C=0.01, penalty="l1", dual=False)
X_new = lsvc.fit_transform(X, y)
print X_new.shape

print lsvc.coef_

newData = np.random.rand(100,4)
newData_X = lsvc.transform(newData)
print newData_X.shape