在网格搜索中设置交叉验证参数

时间:2017-05-08 23:01:09

标签: python numpy random-forest grid-search

我正在尝试在GridSearch中设置RandomForestClassification

rfc_model = RandomForestClassifier(n_estimators = 5, max_depth = 3 )

gs = grid_search.GridSearchCV(estimator = rfc_model,
                             param_grid = {'n_estimators': [i for i in range(1,52,10)],
                                          "max_depth": [3, 5],
                                          "bootstrap": [True, False],
                                          "criterion": ["gini"]},
                             cv = cross_val_score(rfc_model,X, y, scoring='roc_auc'))

gs.fit(X, y)
gs.grid_scores_
print gs.best_estimator
print gs.best_score_

我收到错误

TypeError: 'numpy.float64' object is not iterable

显然我正在学习,所以欢迎任何评论。

1 个答案:

答案 0 :(得分:1)

好的,我发现了问题,我在使用错误的方法(可以称之为方法吗?)进行交叉验证,在解决方案之下:

gs = grid_search.GridSearchCV(estimator = model,
                             param_grid = {'n_estimators': [i for i in range(1,52,10)],
                                          "max_depth": [3, 5],
                                          "bootstrap": [True, False],
                                          "criterion": ["gini"]},
                             cv = cross_validation.KFold(n=len(X), n_folds=10), scoring='roc_auc')