【机器学习】算法调参
# -*- coding: utf-8 -*-
"""算法调参.ipynbAutomatically generated by Colaboratory.Original file is located athttps://colab.research.google.com/drive/1kILamn8ac8vii9GUkiWowl8TIFwl2MCv### 超参数优化这是机器学习模型解决问题的最后一个步骤,并不是整个解决方案的最后一步。不会调参就不能说会机器学习。参数分为了两种:- 影响模型在训练集上的准确度,防止模型过拟合的参数
- 与准确度和过拟合无关的参数其中调参调的是第一类参数。这里介绍两类算法:- 网格搜索
- 随机搜索#### 网格搜索通过遍历已定义的参数列表,来评估算法的参数,从而找到最优参数。使用方法是`GridSearchCV`,实现对参数的跟踪,调整和评估,最终找到最优参数。**网格搜索适用于三四个超参数或者更少的情况,否则计算量会非常大,此时要转成随机搜索。**
"""# 网格搜索代码from pandas import read_csv
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV# 导入数据
filename = 'http://ftp.ics.uci.edu/pub/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data'
names = ['preg','plas','pres','skin','test','mass','pedi','age','class']
data = read_csv(filename, names=names)# 数据划分
array = data.values
X = array[:, 0:8]
y = array[:, 8]model = Ridge()# 设置要遍历的参数param_grid = {'alpha': [1, 0,.1, 0.01, 0.001, 0]}# 网格搜索
grid = GridSearchCV(estimator=model, param_grid=param_grid)
grid.fit(X,y)print('最高得分:%.3f' % grid.best_score_)
print('最优参数:%s' % grid.best_estimator_.alpha)"""其中,`param_grid`是 一个字典对象,算法需要的参数名是`key`,需要遍历的参数值列表为`value`。可以设定多个`key-value`对,同时查询多个最优参数值。### 随机搜索优化这个需要牵涉到随机的方法,即采样的方法。
"""from pandas import read_csv
from sklearn.linear_model import Ridge
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import uniform# 导入数据
filename = 'http://ftp.ics.uci.edu/pub/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data'
names = ['preg','plas','pres','skin','test','mass','pedi','age','class']
data = read_csv(filename, names=names)# 数据划分
array = data.values
X = array[:, 0:8]
y = array[:, 8]model = Ridge()# 设置要遍历的参数param_grid = {'alpha': uniform()}# 网格搜索
grid = RandomizedSearchCV(estimator=model, param_distributions=param_grid, n_iter=100, random_state=7)
grid.fit(X,y)print('最高得分:%.3f' % grid.best_score_)
print('最优参数:%s' % grid.best_estimator_.alpha)
END.
参考:
《机器学习Python实践》
【机器学习】算法调参相关推荐
- 机器学习算法调参神器之1:学习曲线
在Python中重要的机器学习库scikit-learn的算法模型应用中涉及各类关键参数,那么,如果选择及调整这些参数才能优化模型运行结果呢?下面介绍一下机器学习算法中常用的调参神器之一的:学习曲线. ...
- 使用Hyperopt实现机器学习自动调参
文章目录 机器学习自动调参 1. Hyperopt **Hyperopt搜索参数空间** 参数空间的设置 使用sample函数从参数空间内采样: 在参数空间内使用函数: **指定搜索的算法** 实例 ...
- boosting算法调参
算法调参 参考:XGBoost https://blog.csdn.net/han_xiaoyang/article/details/52665396 GBM https://blog.csdn. ...
- 基于Python贝叶斯优化XGBoost算法调参报错“TypeError: ‘float‘ object is not subscriptable”
基于Python贝叶斯优化XGBoost算法调参运行情况如下: iter target colsam- gamma max_depth min_ch- subsample 1 0.9398 0.804 ...
- 机器学习模型调参指南(附代码)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 ML工作流中最困难的部分之一是为模型找到最好的超参数.ML模 ...
- 深度强化学习算法调参
深度强化学习调参技巧:以D3QN.TD3.PPO.SAC算法为例 这个参考链接. 如何选择深度强化学习算法? 参考链接. 影响PPO算法性能的10个关键技巧(附PPO算法简洁Pytorch实现) 主要 ...
- 随机森林调参_机器学习-模型调参利器 gridSearchCV(网格搜索)
在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定.超参数选择不恰当,就会出现欠拟合或者 ...
- 几种机器学习常用调参方式对比(网格搜索,随机搜索,贝叶斯优化)
网格搜索(GridSearchCV): grid search就是穷举,穷举所有得超参组合 Ex:当对决策树调参,若只对一个超参优化,如树的最大深度,尝试[3,5,7],则可表示为 若还想对分裂标准进 ...
- 漫谈机器学习的【泛化能力】【模型能力】【调参技巧】_CodingPark编程公园
漫谈机器学习 完成第一幅初稿 完成终稿 1945年12月5日 1946年1月17日 前言 上面的画就是20世纪最著名的抽象派画家毕加索于1946年1月17日完稿的画作--公牛,寥寥几笔,勾勒出公牛的& ...
最新文章
- Android伍什小随笔(二)- 更新中
- vm15 安装 mac虚拟机的过程 转载的
- HIPS 自定义框架
- 刷新table数据_关于数据透视表的刷新功能最值得了解的几个操作
- OpenShift 4 Hands-on Lab (10) 限制集群资源的使用量
- linux下性能测试mon,Linux性能评测工具之一:nmon篇
- 超火的漫画线稿上色AI出新版了!无监督训练,效果更美好 | 代码+Demo
- partition by 和 group by
- linux目录常用命令
- Java自动化测试系列[v1.0.1][ZTestReport测试报告]
- 颜色的前世今生6·色相环
- k8s笔记20--基于 K8S 的 cicd 概述
- 思科2960交换机 - 配置命令大全
- linux 编辑文件乱码,Linux中vi编辑器显示中文乱码的问题
- 旋转矩阵、欧拉角、旋转矢量及四元数的介绍和工程应用
- 2022-05-14 Unity核心7——2D动画
- 安卓设置keychain_iOS 开发keychain 使用与多个APP之间共享keychain数据的使用
- 计算机四年级上册语文教案,人教版四年级上册语文教案
- linux查看license情况,检查SCL服务状态和License使用情况
- ”未获得合适的许可,你可能是盗版软件的受害者相关解决办法“
热门文章
- 数据结构上机实践第14周项目1 - 验证算法(折半查找)
- Linux常见问题三则:Executable Path Is Not Absolute
- SCI论文编辑教你如何准备SCI论文和写作
- android java 同步_Android 中的同步
- 爬去图片插件_学不会你打我,一个插件爬取亚马逊数据!
- cpan安装_生信平台搭建(五):安装perl模块
- 江苏省计算机考试昨晚客观题不能提交,2019法考江苏3.6万人报名 主客观题均推行机考...
- java 拖放文字_Java实现拖放效果
- java线程间通信 实例_JAVA-初步认识-第十四章-线程间通信-示例
- github ssh 配置_搭建自己的技术博客系列 2:把 Hexo 博客部署到 GitHub 上