4

我有一个包含 8 个参数(4 个连续 4 个分类)的数据集,我正在尝试根据 Scikit 中的 RFEC 类消除特征。

这是我使用的公式:

svc = SVC(kernel="linear")
rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(y, 2),
          scoring='accuracy')
rfecv.fit(X, y)

因为我也有分类数据,所以我使用 dmatrics (Patsy) 将其更改为虚拟变量。

我想在特征选择后对数据尝试不同的分类模型,以与 SVC 一起改进模型。

我在转换数据后运行 RFE,我认为我做错了。
我们是在转换分类数据之前还是之后运行 RFECV?

我在任何文件中都找不到任何明确的指示。

4

1 回答 1

2

这取决于您是要选择分类变量还是整个变量的给定值。您当前正在选择分类变量的单个设置(又名级别)。要选择整个变量,您可能需要做一些小技巧,根据 SVC 定义您自己的估算器。你可以这样做make_pipeline(OneHotEncoder(categorical_features), SVC()),但你需要将coef_管道设置为反映输入形状的东西。

于 2015-04-09T13:21:13.243 回答