在较早版本的scikit-learn中,我们通过[result.mean_validation_score for result in grid.grid_scores_]
获得了交叉验证得分的平均值列表。但是从20.0 scikit-learn开始,我们将不再能够使用grid.grid_scores_
。而是有grid.cv_results_
。这是我的问题。 grid.cv_results_
中以下哪个方法对应于我们从grid.grid_scores_
获得的mean_validaton_score?
答案 0 :(得分:1)
根据GridSearchCV文档(https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html),您必须将grid.cv_results_
转换为Pandas DataFrame,然后可以自由访问 mean_train_score 和 mean_test_score < / em>数据:
import pandas as pd
cv_results = pd.DataFrame(grid.cv_results_)
print(cv_results['mean_train_score'])
print(cv_results['mean_test_score'])
第一个mean_train_score
是您从训练倍数( in-fold )中获得的平均分数,mean_test_score
是您从验证中获得的平均分数折叠(折叠纸)。
基本上,您只对mean_test_score
感兴趣,可以对超参数的性能进行严格评估,但是mean_train_score
可以帮助您确定模型使用某些参数拟合数据的程度,以及相对于测试数据有多少(例如,通过构建验证曲线图,请参见:https://scikit-learn.org/stable/modules/learning_curve.html)。