老规矩,先上源代码:

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相关推荐

  1. ValueError: invalid literal for int() with base 10: “ ”

    出现这个错误 :ValueError: invalid literal for int() with base 10: ''  " 或者: ValueError: invalid liter ...

  2. ValueError: invalid literal for int() with base 10

    在运行<机器学习实战>第二章中的代码样例时, 我遇到如下错误: 下面是网上参考文献[1]中的例子 Traceback (most recent call last):   File &qu ...

  3. (完全解决)ValueError: Invalid RGBA argument: 0.2

    背景 有的时候,我们需要绘制很多条折线,比如十几条,如果采用字符串指定颜色就需要预定义颜色,很麻烦. color="b" 所以我们更加倾向于随机产生0-1之间的RGB值,自动生成颜 ...

  4. Oracle 记录插入时“Invalid parameter binding ”错误

    出现这种错误的原因可能有一下几种: 由于OracleParameter[] parameters:中parameters的个数和对应的插入SQL语句中的冒号个数不等: 参数个数和冒号个数相等,但是如下 ...

  5. {ValueError}invalid literal for int() with base 10: ‘1.0‘

    {ValueError}invalid literal for int() with base 10: '1.0' 原因是数字字符串不能直接转int类型,需要转为float类型后才能转int类型: 解 ...

  6. ValueError: invalid \x escape

    问题:今天在用python写文件时,发现会图示如下信息: ValueError: invalid \x escape 解决: 由于路径问题所致,更改一下路径即可 转载于:https://blog.51 ...

  7. Python 空字符串转化问题:ValueError: invalid literal for int() with base 10: ' ',原因及解决方法。

    ValueError: invalid literal for int() with base 10: ' ' 翻译: 值异常:以10为基数的int()的无效文字:' ' int('')就会报错. 就 ...

  8. 成功解决ValueError: Invalid format string

    成功解决ValueError: Invalid format string 目录 解决问题 解决思路 解决方法 解决问题 ValueError: Invalid format string 解决思路 ...

  9. ValueError: invalid literal for int() with base 10 与数据类型有关的转换报错

    1.ValueError: invalid literal for int() with base 10 a是一个字符串,例如'108.8' 报错原因:直接对a进行int(a)操作,语法不允许 解决办 ...

最新文章

  1. 图文详解并联机器人,你了解吗?
  2. uiautomator 代码记录 :BT接收测试
  3. Android必知必会-Android Studio下配置和使用Lambda
  4. zend studio搭建php开发环境搭建,PHP-Zend Studio PHP环境的搭建
  5. 304 Not Modified
  6. 开放报名 | 阿里云 Serverless 研修班走进四川大学
  7. 6月21 百度文本编辑器
  8. Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
  9. Windows 2008 Domain Controller
  10. android开发 自我优势_android开发简历自我评价填写样本
  11. 雷达图像与电子海图叠加坐标变化优化方法
  12. python调用wind数据_python实现从wind导入数据
  13. 斐讯天天链N1:分布式数据存储模式能否引领下一代数据中心变革
  14. 全链路压测那点事(一)
  15. 逾 200 家港企参与! GoGBA大湾区发展日(广州)圆满举行
  16. 计算机网络(6)体系结构:计算机网络协议、接口、服务的概念
  17. PSPICE理想恒功率负载(CPL)建立方法
  18. maven联网下载依赖时,在中央仓库找不到要下载的依赖
  19. css 一行超出显示省略号 多行超出显示省略号
  20. android自动切换暗色,超实用!Android 深色模式适配(可定时开启的APP内主题切换管理工具)...

热门文章

  1. 冒泡排序(Bubble Sort)
  2. 使用代理服务器+FRPC 连回家庭网络方案| 群晖 代理
  3. 火狐浏览器打不开淘宝首页的解决办法
  4. 【使用java swing制作简易贪吃蛇游戏】软件实习项目二
  5. deepin驱动精灵_深度用户展望Deepin 15.11或Deepin 16版本应该有的新功能
  6. 我如何在1年内在YouTube上从0到70k的订阅者流失-以及我赚了多少钱
  7. 小红的签到题 (shui
  8. 云效codeup使用
  9. 【数字IC验证快速入门】22、SystemVerilog项目实践之AHB-SRAMC(2)(AHB协议基本要点)
  10. 用python去除SQL中的注释