我正在使用LinearSVC选择功能。所有功能都是二进制文件。这就是它的样子:
In> X0.shape
Out> (6876299, 49)
In> lsvc = LinearSVC(C=0.01, penalty="l1", dual=False)
In> X_new = lsvc.fit_transform(X0, y0)
In> X_new.shape
Out> (6876299, 41)
我的问题非常简单,但我没有找到任何具体的解决方案。我怎么知道fit_transform选择了哪些功能?
THKS!
答案 0 :(得分:0)
您可以查看lsvc.coef_
。具有非零系数的特征将是已经选择的特征。例如,以下内容将为您提供所有非零功能的掩码:
>>> from sklearn.datasets import load_iris
>>> iris = load_iris()
>>> X, y = iris.data, iris.target
>>> X.shape
(150, 4)
>>> lsvc = LinearSVC(C=0.01, penalty="l1", dual=False)
>>> X_new = lsvc.fit_transform(X, y)
>>> X_new.shape
(150, 3)
>>> lsvc.coef_
array([[ 0. , 0.21680351, -0.28727891, 0. ],
[ 0. , -0.09186784, 0. , 0. ],
[-0.03501512, -0.17022421, 0.13485806, 0. ]])
>>> ~np.all(lsvc.coef_==0, axis=0)
array([ True, True, True, False], dtype=bool)