根据您传递给 GridSearchCV 的评分函数,grid.best_estomator_ 的结果可能会有所不同。我想知道是否可以在 sklearn 中运行单个 GridSearch 并在输出中获得多个分数(或评分函数的真实值)?就像是:
clf = GridSearchCV(model,param_grid,scoring=['mean_square_error','r2_score'])
并且作为输出得到:
clf.grids_cores_:
[MSE mean: -0.00000, R2 mean: -0.01975,: {'max_depth': 2, 'learning_rate': 0.05, 'min_child_weight': 4, 'n_estimators': 25}
MSE mean: -0.00001, R2 mean: -0.01975,: {'max_depth': 3, 'learning_rate': 0.05, 'min_child_weight': 4, 'n_estimators': 25},
MSE mean: -0.00002, R2 mean: -0.01975,: {'max_depth': 4, 'learning_rate': 0.05, 'min_child_weight': 4, 'n_estimators': 25}, etc)
这个想法是在模型超参数的每个组合中为每个评估指标获得一个分数。假设我有 10 个不同的 GridSearchCV 评分函数。运行 GridSearchCV 10 次以查看哪些模型参数最适合每个评分函数将非常耗时。这个想法是只运行一次并为 grid_scores_ 中的每个评分函数获取一个数字(分数)
似乎它几乎在 2015 年实现到 sklearn,不幸的是该项目从未完成:https ://github.com/scikit-learn/scikit-learn/pull/2759 我正在寻找一种方法自己的。