Python Scikit学习-您可以在没有交叉验证的情况下运行RandomizedSearchCV吗?

Python Scikit学习-您可以在没有交叉验证的情况下运行RandomizedSearchCV吗?,python,scikit-learn,cross-validation,Python,Scikit Learn,Cross Validation,我想知道您是否可以在不进行交叉验证的情况下运行RandomizedSearchCV(仅使用简单的训练/测试分割 我想这样做是为了能够大致估计哪些参数对于使用标准交叉验证的更细粒度调优有用 代码如下: pipe = Pipeline(steps=[('gbm', GradientBoostingClassifier())]) param_dist = dict(gbm__max_depth=[3,6,10], gbm__n_estimators=[50,10

我想知道您是否可以在不进行交叉验证的情况下运行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)

提前感谢,

您可以使用
cv=ShuffleSplit(n_iter=1)
获得单个随机拆分,或者如果您想进行特定拆分(我认为仅在beta 0.16b1中),可以使用
cv=PredefinedSplit(…)
。有关选项,请参阅。

可能没有一个简单的解决方案。为什么您宁愿避免交叉验证?我的意思是CV是参数拟合的标准方法。它通常是最佳选择,因为它往往更稳健,也避免了训练/测试集的微妙过度拟合问题。