在旧版本的 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?
- 平均训练分数
- 平均测试分数
最佳答案
根据 GridSearchCV 文档 ( https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html ),您必须将 grid.cv_results_
转换为 Pandas DataFrame,然后您就可以自由访问 mean_train_score 和 mean_test_score 数据:
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)。
关于machine-learning - grid.cv_results_ 中的mean_validation_score对应的函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54296405/