使用scikit选择要素后识别过滤后的要素了解

时间:2015-06-22 15:41:41

标签: python scikit-learn feature-selection

以下是我在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)之后,我如何知道哪些变量被删除以及在这个新的更新变量中考虑了哪些变量? (删除了哪一个或数据中存在哪三个。)

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

1 个答案:

答案 0 :(得分:1)

稍微修改了你的代码。对于每个类,通过查看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