我想知道是否可以在不进行交叉验证的情况下运行 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)
来获得单个随机分割,或者如果有特定的分割,则使用cv=PredefinedSplit(...)
分割你想做的事(我认为仅在 beta 0.16b1 中)。请参阅docs的选项。
关于python - Scikit-learn - 您可以在没有交叉验证的情况下运行 RandomizedSearchCV 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190182/