网格搜索SVM-anova的超参数并获得Sklearn中选择的特征

时间:2015-04-19 16:46:53

标签: python scikit-learn pipeline cross-validation feature-selection

sklearn SVM-Anova的doc中有一个例子。我希望进一步为{1}}进行SVM的超级参数,i.d.,C和gamma,对于示例中使用的每个百分比的特征,如下所示:

GridSearchCV

它工作正常,通过这样做,我可以同时调整Anova和SVM的参数,并使用这样的参数对来构建我的最终模型。

然而,我对它是如何工作感到困惑。它首先拆分数据并通过管道吗?如果是这样,如果我想进一步深入了解所选功能,我如何确定Anova选择的功能?

说,我使用一对参数(Anova的百分位数和SVM的C / gamma)获得最佳的CV分数,我怎样才能确切地找出该设置中保留的功能?因为每个参数设置都在CV下进行测试,每个参数都包含具有不同训练数据的折叠,因此不同的特征集将由Anova评估。

我能想出来的一种方法是将每个折叠中保留的特征集相交,以获得最佳性能参数对,但我不知道如何修改代码来实现它。

对此方法的任何建议或疑问表示赞赏和欢迎。

1 个答案:

答案 0 :(得分:3)

你可以摆脱百分位数的循环,只需将百分位数放在参数网格中。 然后,您可以查看search.best_estimator_的所选功能,即search.best_estimator_.named_steps['anova'].get_support()