Scikit-learn 的 GridSearchCV 中的 Grid_scores_ 是啥意思

Posted

技术标签:

【中文标题】Scikit-learn 的 GridSearchCV 中的 Grid_scores_ 是啥意思【英文标题】:What does Grid_scores_ mean in Scikit-learn's GridSearchCVScikit-learn 的 GridSearchCV 中的 Grid_scores_ 是什么意思 【发布时间】:2013-04-27 09:41:26 【问题描述】:

linear_model.Ridge 上使用sklearn.grid_search.GridSearchCV() 执行网格搜索以找到合适的alpha 后,我们可以使用clf.grid_scores_ 获得网格分数。

结果中的数字是什么意思?这些数字如何告诉我们哪个是最好的alhpa?这是grid_scores_ 结果的示例:

[('alpha': 10.0,
  -3.5395266121766391e-06,
  array([ -5.81901982e-06,  -5.27253774e-08,  -4.74683464e-06])),
 ('alpha': 5.0,
  -3.5395266121766391e-06,
  array([ -5.81901982e-06,  -5.27253774e-08,  -4.74683464e-06])),
 ('alpha': 1.0,
  -3.5395266121766391e-06,
  array([ -5.81901982e-06,  -5.27253774e-08,  -4.74683464e-06])),
 ('alpha': 0.5,
  -3.5395266121766391e-06,
  array([ -5.81901982e-06,  -5.27253774e-08,  -4.74683464e-06])),
 ('alpha': 0.1,
  -3.5395266121766391e-06,
  array([ -5.81901982e-06,  -5.27253774e-08,  -4.74683464e-06])),
 ('alpha': 0.05,
  -3.5395266121766391e-06,
  array([ -5.81901982e-06,  -5.27253774e-08,  -4.74683464e-06])),
 ('alpha': 0.01,
  0.00019276539505293697,
  array([  5.83095745e-04,  -5.27253774e-08,  -4.74683464e-06])),
 ('alpha': 0.005,
  0.072428630958501342,
  array([ 0.07335483,  0.07190767,  0.07202339])),
 ('alpha': 0.001,
  0.37063142154124262,
  array([ 0.37106198,  0.36953822,  0.37129406])),
 ('alpha': 0.0005,
  0.47042710942522803,
  array([ 0.47063049,  0.4686987 ,  0.47195214])),
 ('alpha': 0.0001,
  0.61100922361083054,
  array([ 0.61189728,  0.60846248,  0.61266791]))]

【问题讨论】:

【参考方案1】:

一般来说,它是每组参数的分数列表。

列表的每个元素都是一个三元组<parameter dict, average score, list of scores over all folds>。三元组中的第一个元素是用于特定运行的参数字典,在您的情况下,只有一个参数,alpha。三元组中的第二个元素是所有折叠的平均分数,即三元组中第三个元素的列表。如果您没有指定自己的得分函数,则 Ridge 回归的默认值是决定系数 R^2。三元组中的最后一项是所有折叠的分数数组(计算平均值)。折叠次数由 cv 参数指定(默认为 3)。

您通常希望找到平均得分最高的三元组。在您的情况下,最大值为 alpha 0.0001:

('alpha': 0.0001,
 0.61100922361083054,
 array([ 0.61189728,  0.60846248,  0.61266791]))

【讨论】:

请注意,GridSearchCV 有一个 refit 参数,它将使用在搜索中找到的最佳设置对所有数据重新训练估计器。

以上是关于Scikit-learn 的 GridSearchCV 中的 Grid_scores_ 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

GridSearch用于Scikit-learn中的多标签分类

使用 Gridsearch 进行超参数搜索,给出不起作用的参数值

火炉炼AI机器学习017-使用GridSearch搜索最佳参数组合

为啥 scikit-learn 中的 GridSearchCV 会产生这么多线程

评估 scikit-learn GridSearchCV 中交叉验证分数的平均值、标准差

gridsearchcv怎么调参