ValueError: Invalid parameter
老规矩,先上源代码:
from sklearn.model_selection import GridSearchCV
param_grid =[{'n_eatimatiors':[3,10,30],'max_features':[2,4,6,8]},{'bootstrap':[False],'n_estimators':[3,10],'max_features':[2,3,4]},
]forest_reg=RandomForestRegressor(random_state=42)
grid_search=GridSearchCV(forest_reg,param_grid,cv=5,scoring='neg_mean_squared_error',return_train_score=True)
grid_search.fit(housing_prepared,housing_labels)
介绍下这段代码的应用方向和实现效果,
模型调参和网格搜索
1.手动调整超参数,找到很好的组合时很困难的
2.使用GridSearchCV替你进行搜索,告诉GridSearchCV,进行试验的超参数是什么,以及需要尝试的值,他会使用交叉验证评估所有超参数的可能组合
上述代码运行后的效果:
ValueError Traceback (most recent call last)
<ipython-input-353-54613827b5ad> in <module>8 grid_search=GridSearchCV(forest_reg,param_grid,cv=5,9 scoring='neg_mean_squared_error',return_train_score=True)
---> 10 grid_search.fit(housing_prepared,housing_labels)d:\python3.8.5\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)70 FutureWarning)71 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 72 return f(**kwargs)73 return inner_f74 d:\python3.8.5\lib\site-packages\sklearn\model_selection\_search.py in fit(self, X, y, groups, **fit_params)734 return results735
--> 736 self._run_search(evaluate_candidates)737 738 # For multi-metric evaluation, store the best_index_, best_params_ andd:\python3.8.5\lib\site-packages\sklearn\model_selection\_search.py in _run_search(self, evaluate_candidates)1186 def _run_search(self, evaluate_candidates):1187 """Search all candidates in param_grid"""
-> 1188 evaluate_candidates(ParameterGrid(self.param_grid))1189 1190 d:\python3.8.5\lib\site-packages\sklearn\model_selection\_search.py in evaluate_candidates(candidate_params)706 n_splits, n_candidates, n_candidates * n_splits))707
--> 708 out = parallel(delayed(_fit_and_score)(clone(base_estimator),709 X, y,710 train=train, test=test,d:\python3.8.5\lib\site-packages\joblib\parallel.py in __call__(self, iterable)1046 # remaining jobs.1047 self._iterating = False
-> 1048 if self.dispatch_one_batch(iterator):1049 self._iterating = self._original_iterator is not None1050 d:\python3.8.5\lib\site-packages\joblib\parallel.py in dispatch_one_batch(self, iterator)864 return False865 else:
--> 866 self._dispatch(tasks)867 return True868 d:\python3.8.5\lib\site-packages\joblib\parallel.py in _dispatch(self, batch)782 with self._lock:783 job_idx = len(self._jobs)
--> 784 job = self._backend.apply_async(batch, callback=cb)785 # A job can complete so quickly than its callback is786 # called before we get here, causing self._jobs tod:\python3.8.5\lib\site-packages\joblib\_parallel_backends.py in apply_async(self, func, callback)206 def apply_async(self, func, callback=None):207 """Schedule a func to be run"""
--> 208 result = ImmediateResult(func)209 if callback:210 callback(result)d:\python3.8.5\lib\site-packages\joblib\_parallel_backends.py in __init__(self, batch)570 # Don't delay the application, to avoid keeping the input571 # arguments in memory
--> 572 self.results = batch()573 574 def get(self):d:\python3.8.5\lib\site-packages\joblib\parallel.py in __call__(self)260 # change the default number of processes to -1261 with parallel_backend(self._backend, n_jobs=self._n_jobs):
--> 262 return [func(*args, **kwargs)263 for func, args, kwargs in self.items]264 d:\python3.8.5\lib\site-packages\joblib\parallel.py in <listcomp>(.0)260 # change the default number of processes to -1261 with parallel_backend(self._backend, n_jobs=self._n_jobs):
--> 262 return [func(*args, **kwargs)263 for func, args, kwargs in self.items]264 d:\python3.8.5\lib\site-packages\sklearn\model_selection\_validation.py in _fit_and_score(estimator, X, y, scorer, train, test, verbose, parameters, fit_params, return_train_score, return_parameters, return_n_test_samples, return_times, return_estimator, error_score)518 cloned_parameters[k] = clone(v, safe=False)519
--> 520 estimator = estimator.set_params(**cloned_parameters)521 522 start_time = time.time()d:\python3.8.5\lib\site-packages\sklearn\base.py in set_params(self, **params)247 key, delim, sub_key = key.partition('__')248 if key not in valid_params:
--> 249 raise ValueError('Invalid parameter %s for estimator %s. '250 'Check the list of available parameters '251 'with `estimator.get_params().keys()`.' %ValueError: Invalid parameter n_eatimatiors for estimator RandomForestRegressor(max_features=2, random_state=42). Check the list of available parameters with `estimator.get_params().keys()`
错误的提示很长,核心是看最后几行,看箭头指向的249和最终的错误提示,
247 key, delim, sub_key = key.partition('__')248 if key not in valid_params:
--> 249 raise ValueError('Invalid parameter %s for estimator %s. '250 'Check the list of available parameters '251 'with `estimator.get_params().keys()`.' %ValueError: Invalid parameter n_eatimatiors for estimator RandomForestRegressor(max_features=2, random_state=42). Check the list of available parameters with `estimator.get_params().keys()`.
仔细分析这段代码,先定位"n_eatimatiors “,
原因是"Invalid parameter”,
结论是:“n_eatimatiors"是"Invalid parameter”,
于是接下来快速找到"n_eatimatiors",先检查书写的正确性,
param_grid =[{'n_eatimatiors':[3,10,30],'max_features':[2,4,6,8]},{'bootstrap':[False],'n_estimators':[3,10],'max_features':[2,3,4]},
]
确实是书写有问题,“n_eatimatiors"更新为"n_estimators”,
param_grid =[{'n_estimators':[3,10,30],'max_features':[2,4,6,8]},{'bootstrap':[False],'n_estimators':[3,10],'max_features':[2,3,4]},
]
重新运行OK。
GridSearchCV(cv=5, estimator=RandomForestRegressor(random_state=42),param_grid=[{'max_features': [2, 4, 6, 8],'n_estimators': [3, 10, 30]},{'bootstrap': [False], 'max_features': [2, 3, 4],'n_estimators': [3, 10]}],return_train_score=True, scoring='neg_mean_squared_error')
心得体会:写代码的过程中会经常遇到各种各样的问题,学会分析和解决问题至关重要,多去训练这方面的能力。
ValueError: Invalid parameter相关推荐
- ValueError: invalid literal for int() with base 10: “ ”
出现这个错误 :ValueError: invalid literal for int() with base 10: '' " 或者: ValueError: invalid liter ...
- ValueError: invalid literal for int() with base 10
在运行<机器学习实战>第二章中的代码样例时, 我遇到如下错误: 下面是网上参考文献[1]中的例子 Traceback (most recent call last): File &qu ...
- (完全解决)ValueError: Invalid RGBA argument: 0.2
背景 有的时候,我们需要绘制很多条折线,比如十几条,如果采用字符串指定颜色就需要预定义颜色,很麻烦. color="b" 所以我们更加倾向于随机产生0-1之间的RGB值,自动生成颜 ...
- Oracle 记录插入时“Invalid parameter binding ”错误
出现这种错误的原因可能有一下几种: 由于OracleParameter[] parameters:中parameters的个数和对应的插入SQL语句中的冒号个数不等: 参数个数和冒号个数相等,但是如下 ...
- {ValueError}invalid literal for int() with base 10: ‘1.0‘
{ValueError}invalid literal for int() with base 10: '1.0' 原因是数字字符串不能直接转int类型,需要转为float类型后才能转int类型: 解 ...
- ValueError: invalid \x escape
问题:今天在用python写文件时,发现会图示如下信息: ValueError: invalid \x escape 解决: 由于路径问题所致,更改一下路径即可 转载于:https://blog.51 ...
- Python 空字符串转化问题:ValueError: invalid literal for int() with base 10: ' ',原因及解决方法。
ValueError: invalid literal for int() with base 10: ' ' 翻译: 值异常:以10为基数的int()的无效文字:' ' int('')就会报错. 就 ...
- 成功解决ValueError: Invalid format string
成功解决ValueError: Invalid format string 目录 解决问题 解决思路 解决方法 解决问题 ValueError: Invalid format string 解决思路 ...
- ValueError: invalid literal for int() with base 10 与数据类型有关的转换报错
1.ValueError: invalid literal for int() with base 10 a是一个字符串,例如'108.8' 报错原因:直接对a进行int(a)操作,语法不允许 解决办 ...
最新文章
- 图文详解并联机器人,你了解吗?
- uiautomator 代码记录 :BT接收测试
- Android必知必会-Android Studio下配置和使用Lambda
- zend studio搭建php开发环境搭建,PHP-Zend Studio PHP环境的搭建
- 304 Not Modified
- 开放报名 | 阿里云 Serverless 研修班走进四川大学
- 6月21 百度文本编辑器
- Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
- Windows 2008 Domain Controller
- android开发 自我优势_android开发简历自我评价填写样本
- 雷达图像与电子海图叠加坐标变化优化方法
- python调用wind数据_python实现从wind导入数据
- 斐讯天天链N1:分布式数据存储模式能否引领下一代数据中心变革
- 全链路压测那点事(一)
- 逾 200 家港企参与! GoGBA大湾区发展日(广州)圆满举行
- 计算机网络(6)体系结构:计算机网络协议、接口、服务的概念
- PSPICE理想恒功率负载(CPL)建立方法
- maven联网下载依赖时,在中央仓库找不到要下载的依赖
- css 一行超出显示省略号 多行超出显示省略号
- android自动切换暗色,超实用!Android 深色模式适配(可定时开启的APP内主题切换管理工具)...
热门文章
- 冒泡排序(Bubble Sort)
- 使用代理服务器+FRPC 连回家庭网络方案| 群晖 代理
- 火狐浏览器打不开淘宝首页的解决办法
- 【使用java swing制作简易贪吃蛇游戏】软件实习项目二
- deepin驱动精灵_深度用户展望Deepin 15.11或Deepin 16版本应该有的新功能
- 我如何在1年内在YouTube上从0到70k的订阅者流失-以及我赚了多少钱
- 小红的签到题 (shui
- 云效codeup使用
- 【数字IC验证快速入门】22、SystemVerilog项目实践之AHB-SRAMC(2)(AHB协议基本要点)
- 用python去除SQL中的注释