使用sklearn嵌套交叉验证获取最佳参数

时间:2017-08-25 15:41:13

标签: machine-learning scikit-learn classification cross-validation

我的理解是否正确" greed_search.fit(X,Y)"在以下代码中没有嵌套CV?这意味着在sklearn中无法使用嵌套的CV获取最佳参数。

    # inner cross_validation
    greed_search = GridSearchCV(estimator=estimator, param_grid=parameters, cv=inner_cv, scoring=optimized_for)
    greed_search.fit(X, optimization_label)
    # Nested CV with parameter optimization
    nested_score = cross_val_score(greed_search, X=X, y=Y, cv=outer_cv)

1 个答案:

答案 0 :(得分:3)

您是对的:代码中的greed_search.fit(X, optimization_label)按原样执行,而不会嵌套到下一个交叉验证中。

为了回答你的第二个问题,我问你另一个问题:嵌入交叉验证的网格搜索的最佳参数应该是什么?第一次弃牌?最公地?

在外部交叉验证的每个步骤中,内部网格搜索根据当前步骤的训练数据选择最佳参数。因此,参数可以在折叠之间改变。您可以自己进行外部交叉验证,计算每个步骤的最佳参数,但我认为您并不需要它。