我有一个包含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)将其更改为Dummy Variable。
我希望在选择特征后对数据尝试不同的分类模型,以便与SVC一起改进模型。
我在转换数据后运行了RFE,我认为我做错了 我们是在转换分类数据之前还是之后运行RFECV?
我在任何文件中都找不到任何明确的指示。
答案 0 :(得分:1)
这取决于您是否要选择分类变量或整个变量的给定值。
您当前正在选择分类变量的单个设置(也称为级别)。
要选择整个变量,您可能需要做一些hackery,根据SVC定义自己的估算器。
你可以做make_pipeline(OneHotEncoder(categorical_features), SVC())
,但是你需要将管道的coef_
设置为反映输入形状的东西。