我有一个包含 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?
我在任何文件中都找不到任何明确的指示。
最佳答案
这取决于您是要选择分类变量的给定值还是整个变量。
您当前正在选择分类变量的单个设置(又名级别)。
要选择整个变量,您可能需要做一些技巧,根据 SVC 定义您自己的估算器。
你可以做 make_pipeline(OneHotEncoder(categorical_features), SVC())
但随后您需要设置 coef_
th 管道到反射(reflect)输入形状的东西。
关于scikit-learn - sklearn中分类数据的递归特征消除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522991/