我正在使用递归特征估计 (RFE) 进行特征选择。这是通过迭代地采用估计器(例如 SVM 分类器),将其拟合到数据中,并删除具有最低权重(系数)的特征来实现的。
我能够将其与数据相匹配并执行特征选择。但是,我想从 RFE 中恢复每个特征的学习权重。
我使用下面的代码来初始化一个分类器对象和一个 RFE 对象,并将它们拟合到数据中。
svc = SVC(C=1, kernel="linear")
rfe = RFE(estimator=svc, n_features_to_select=300, step=0.1)
rfe.fit(all_training, training_labels)
然后我尝试打印系数
print ('coefficients',svc.coef_)
并收到:
AttributeError: 'RFE' object has no attribute 'dual_coef_'
根据sklearn 文档,分类器对象应具有以下属性:
coef_ : array, shape = [n_class-1, n_features]
Weights assigned to the features (coefficients in the primal problem). This is only
available in the case of a linear kernel.
coef_ is a readonly property derived from dual_coef_ and support_vectors_.
我使用的是线性内核,所以这不是问题。
谁能解释为什么我无法恢复系数?有没有办法解决这个问题?