博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
android插件化欺骗AMS
查看>>
mave仓库管理
查看>>
linux基本操作以及文件和目录的管理
查看>>
linux系统结构简介以及基本命令
查看>>
vim命令详解和系统输入输出管理
查看>>
linux真机联网以及用户管理
查看>>
linux下的权限管理
查看>>
linux下的进程管理及控制服务
查看>>
真机与虚拟机的连接以及改变虚拟机的网卡
查看>>
linux下的sshd服务
查看>>
系统文件传输方式
查看>>
日志服务与时间同步服务
查看>>
linux下设置ip的多种方法
查看>>
DHCP服务器的搭建及动态ip与静态ip的转换
查看>>
路由器的搭建及虚拟机上网(内含域名解析)
查看>>
虚拟机的安装与管理(拷贝虚拟机)
查看>>
虚拟机的快照
查看>>
两种yum源(本地,共享)的搭建以及第三方软件库的搭建
查看>>
yum命令以及rpm命令(安装软件)
查看>>
利用kickstart自动安装虚拟机
查看>>