python svm超参数_网格搜索SVManova超参数并在Sklearn中获得所选特征

在sklearn的doc中有一个例子SVM-Anova。我想进一步对超参数进行GridSearchCV,对于支持向量机,对于支持向量机,对于每一个百分位特征,我要做GridSearchCV,如下所示:transform = feature_selection.SelectPercentile(feature_selection.f_classif)

clf = Pipeline([('anova', transform),

('normal',preprocessing.StandardScaler()),

('svc', svm.SVC())])

parameters = {

'svc__gamma': (1e-3, 1e-4),

'svc__C': (1, 10, 100, 1000)

}

percentiles = (1, 3, 6, 10, 15, 20, 30, 40, 60, 80, 100)

for percentile in percentiles:

clf.set_params(anova__percentile=percentile)

search = GridSearchCV(clf, parameters,cv=StratifiedKFold(y,7,shuffle=True, random_state=5), scoring='roc_auc', n_jobs=1)

search.fit(X,y)

它工作得很好,通过这样我可以同时调整方差分析和支持向量机的参数,并使用这对参数来建立我的最终模型。在

然而,我对它是如何工作的感到困惑。它是否首先分割数据并通过管道?如果是这样,如果我想进一步深入了解这些选定的特征,如何确定方差分析选择的特征?在

比方说,我用一对参数(方差分析的百分位数和支持向量机的C/gamma)得到了一个最佳的CV分数,我怎样才能找出在这些设置中保留了哪些特征呢?因为每一组参数都是在CV下测试的,每一组都包含不同训练数据的折叠,因此不同的特征集需要通过方差分析进行评估。在

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

任何对该方法的建议或疑问都将受到赞赏和欢迎。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值