博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GridSearchCV.grid_scores_和mean_validation_score报错
阅读量:2254 次
发布时间:2019-05-09

本文共 1166 字,大约阅读时间需要 3 分钟。

0. 写在前面

参考书

《Python数据科学手册》

工具

python3.5.1,Jupyter Notebook

1. 问题描述和解决过程

在P438页,5.13.4 示例:不是很朴素的贝叶斯中的2. 使用自定义评估器小节中有这样一行代码

scores = [val.mean_validation_score for val in grid.grid_scores_]

运行之后报错:

AttributeError: ‘GridSearchCV’ object has no attribute ‘grid_scores_’

经过百度了之后,可以知道grid_scores_在最新的sklearn中已经被弃用了,换成了cv_results_,参考链接:https://blog.csdn.net/weixin_40283816/article/details/83346098

那么,更改这个参数后,依然报错:

AttributeError: ‘str’ object has no attribute ‘mean_validation_score’

这个问题就再也没有搜到好的解决方案了,所以我去查了GridSearchCV的文档:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

然后发现,关于cv_results_的内容如下:

这就很尴尬了,所以没有一个参数是包含validation关键字的,我的理解是,验证集和测试集在某种情况下可以认为是等价的。所以我猜测mean_validation_score对应的应该就是mean_test_score。

这样,原来的代码就改成了

scores = grid.cv_results_['mean_test_score']

为了证明我的猜想是正确的,所以,按照得到的scores结果,顺着其他的代码,知道最后绘图:

事实证明,跟书上得到图一毛一样,所以证明我对源代码修改的猜想是正确的。

即证明了:

旧版本代码:scores = [val.mean_validation_score for val in grid.grid_scores_]

与新版本代码:scores = grid.cv_results_['mean_test_score']

等价!

 ———————————————— 
版权声明:本文为CSDN博主「李英俊小朋友」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_21579045/article/details/91435570

你可能感兴趣的文章
jQuery的动画效果以及图片切换实例
查看>>
Math常用方法
查看>>
jQuery学习之prop和attr的区别
查看>>
jQuery选择器大全
查看>>
jQuery表单的一些应用
查看>>
jQuery控制字体大小
查看>>
jQuery选项卡
查看>>
jQuery Ajax 实例 全解析
查看>>
扫读浏览
查看>>
HR:作为一个Android开发者,开源框架设计思想你搞不懂,你走吧!
查看>>
Flutter 高性能、多功能的全场景滚动容器,一定要看!
查看>>
98%Android开发者已收藏的“80”个开源库
查看>>
面试官: 说一下你做过哪些性能优化?
查看>>
程序员这一行,专科毕业,如何混到‘985’同等的待遇呢?
查看>>
[正确]的使用Kotlin Flow进行搜索优化
查看>>
阿里35岁Android程序员晋升无望,该何去何从,在线等网友给点建议
查看>>
太香了,Android面试主题整理合集
查看>>
面试官:作为一名Android开发者,连jetpack都不懂?你还是改行吧!
查看>>
程序员跳来跳去,到底去大公司还是小公司?
查看>>
不看你就亏了,Android中高级大厂面试源码秘籍,助你金三银四直通大厂
查看>>