Scikit-learn - 你可以在没有交叉验证的情况下运行RandomizedSearchCV吗?

时间:2015-03-22 02:07:43

标签: python scikit-learn cross-validation

我想知道你是否可以在没有交叉验证的情况下运行RandomizedSearchCV(仅使用简单的训练/测试分割?

我想这样做是为了能够对哪些参数有用,以便进行更细粒度的调整,我将使用标准交叉验证。

以下是代码:

pipe = Pipeline(steps=[('gbm', GradientBoostingClassifier())])


param_dist = dict(gbm__max_depth=[3,6,10],
                  gbm__n_estimators=[50,100,500,1000],
                  gbm__min_samples_split=[2,5,8,11],
                  gbm__learning_rate=[0.01,0.05,0.1,0.5,1.0],
                  gbm__max_features=['sqrt', 'log2']
                  )

grid_search = RandomizedSearchCV(pipe, param_distributions=param_dist,cv=???)

grid_search.fit(X_train, y_train)

提前致谢,

1 个答案:

答案 0 :(得分:1)

您可以使用cv=ShuffleSplit(n_iter=1)获得单个随机分组,或者如果您想要进行特定分割,则使用cv=PredefinedSplit(...)(我认为仅在测试版0.16b1中)。有关选项,请参阅docs