以下是我在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)之后,我如何知道哪些变量被删除以及在这个新的更新变量中考虑了哪些变量? (删除了哪一个或数据中存在哪三个。)
获得此识别的原因是对新测试数据应用相同的过滤。
答案 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