【小白从小学Python、C、Java】

【Python全国计算机等级考试】

【Python数据分析考试必会题】

● 标题与摘要

Python的数据分析中

超参数调优方法:网格搜索

● 选择题

以下说法错误的是:

A 网格搜索是一种调参方法

B 网格搜索会遍历几乎所有参数组合

C 网格搜索的最大优点就是搜索速度快

D 网格搜索在面对大数据集时会非常耗时

● 问题解析

1.网格搜索(Grid Search)是一种调参方法,也称为穷举搜索,搜索的是参数,在所有候选的参数选择中,按步长依次调整参数,通过循环遍历,尝试每一种可能性,从所有的参数中找到在验证集上精度最高的参数,表现最好的参数就是最终的结果,原理就像是在数组里找到最大值。

2.网格搜索可以保证在指定的参数范围内找到精度最高的参数,因为网格搜索会遍历所有可能参数的组合,在面对大数据集和多参数的情况下会非常耗时。

3.网格搜索语法:

Class sklearn.model_selection.GridSearchCV(estimator,param_grid,scoring=None,fit_params=None,n_jobs=None,iid=’warn’,refit=True,cv=’warn’,verbose=0,pre_dispatch=‘2*n_jobs’,error_score=’raise-deprecating’,return_train_score=’warn’)

网格搜索参数说明:

(1)estimator:选择使用的分类器,并且传入需要确定最佳的参数之外的其他参数。

(2)param_grid:需要最优化的参数的取值,值为字典或者列表。

(3)scoring=None:模型评价标准,默认为None。

(4)n_jobs=1,n_jobs表示并行数,int为个数,-1表示与CPU核数一致,1为默认值。

(5)iid=True,iid默认为True,当为True时,默认为各个样本fold概率分布一致,误差估计为所有样本之和,而不是各个fold的平均。

(6)refit=True默认为True。在搜索参数结束后,用最佳参数结果再次拟合一遍全部数据集

(7)cv=None,交叉验证参数,默认None,使用三折交叉验证。

(8)verbose=0,scoring=None,verbose表示日志冗长度,0表示不输出训练过程,1表示偶尔输出,>1表示对每个子模型都输出。

(9)pre_dispatch='2*n_jobs'表示指定总共发的并行任务数。

4.网格搜索常用方法及属性:

(1)grid.fit()表示运行网格搜索

(2)grid.score()表示运行网格搜索后模型得分

(3)grid_scores_表示给出不同参数情况下的评价结果

(4)best_params_表示描述已取得最佳结果的参数的组合

(5)best_score_表示提供优化过程期间观察到的最好评分

5.利用决策树进行网格搜索的代码举例如图1所示,最终网格搜索的最优结果为max_depth=4。

● 附图

图1 网格搜索预测乳腺癌寻找最优参数

● 附图代码

from sklearn.model_selection import GridSearchCV,KFold,train_test_split

from sklearn.metrics import make_scorer , accuracy_score

from sklearn.tree import DecisionTreeClassifier

from sklearn.datasets import load_breast_cancer

import warnings

import pandas as pd

from sklearn.neighbors import KNeighborsClassifier as KNN

warnings.filterwarnings('ignore')

data = load_breast_cancer()#load data

#输出Python自带乳腺癌数据的维度

print("Python自带乳腺癌数据的维度:",data.data.shape)

X,y = data['data'] , data['target']

#切分训练集、测试集数据

X_train,X_test,y_train,y_test = train_test_split(X,y,train_size=0.8 , random_state=0)

#决策树

regressor = DecisionTreeClassifier(random_state=0)

parameters = {'max_depth':range(1,6)}

scorin_fnc = make_scorer(accuracy_score)

kflod = KFold(n_splits=10)

#网格搜索

grid = GridSearchCV(regressor,parameters,scoring=scorin_fnc,cv=kflod)

grid = grid.fit(X_train,y_train)

reg = grid.best_estimator_

#优化过程期间观察到的最好评分

print('优化过程期间观察到的最好评分:%f'%grid.best_score_)

for key in parameters.keys():

#输出网格搜索最优结果

print('最佳结果的参数:%s:%d'%(key,reg.get_params()[key]))

● 正确答案

C

欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn

Python的数据分析中超参数调优方法:网格搜索相关推荐

  1. 一文详解超参数调优方法

    ©PaperWeekly 原创 · 作者|王东伟 单位|Cubiz 研究方向|深度学习 本文介绍超参数(hyperparameter)的调优方法. 神经网络模型的参数可以分为两类: 模型参数,在训练中 ...

  2. 【参数调优】网格搜索GridSearchCV输出调参各个结果cv_results_

    cv_results_本身就是一个字典形式的输出,里面含有很多结果 param_test1 = {'n_estimators': range(10, 101, 10)} gssearch = Grid ...

  3. 深度神经网络之Keras(三)——正则化、超参数调优和学习方向

    深度神经网络之Keras(三)--正则化.超参数调优和学习方向 本文将继续探索Keras框架下的深度神经网络知识,主要介绍了利用Keras构建的深度神经网络正则化及超参数调优问题. 目录 深度神经网络 ...

  4. 贝叶斯优化: 一种更好的超参数调优方式

    简介 本文受 浅析 Hinton 最近提出的 Capsule 计划 启发,希望以更通俗的方式推广机器学习算法,让有数学基础和编程能力的人能够乐享其中. 目前人工智能和深度学习越趋普及,大家可以使用开源 ...

  5. python minimize_简单三步实现Python脚本超参数调优(附代码)

    作者:Jakub Czakon, Neptune.ai 翻译:陈之炎 校对:和中华 本文约1500字,建议阅读5分钟. Python机器学习模型建立起来之后,如何对它的性能进行优化?按照本指南中的三个 ...

  6. 独家 | 简单三步实现Python脚本超参数调优(附代码)

    作者:Jakub Czakon, Neptune.ai 翻译:陈之炎 校对:和中华 本文约1500字,建议阅读5分钟. Python机器学习模型建立起来之后,如何对它的性能进行优化?按照本指南中的三个 ...

  7. python代码设置超参数_超参数调优总结,贝叶斯优化Python代码示例

    本文介绍超参数(hyperparameter)的调优方法. 神经网络模型的参数可以分为两类,模型参数,在训练中通过梯度下降算法更新: 超参数,在训练中一般是固定数值或者以预设规则变化,比如批大小(ba ...

  8. tf.saved_model.save模型导出、TensorFlow Serving模型部署、TensorBoard中的HParams 超参数调优

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 4.11 综合案例:模型导出与部署 学习目标 目标 掌握Ten ...

  9. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(四)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(四) 目录 Step 3: Tune gamma步骤3:伽马微 ...

最新文章

  1. POJ 1860 Currency Exchange
  2. .以及JDK1.5ConcurrentHashMap新特性
  3. 管理用户和PROFILE——用户方案和profile
  4. 计算机平面设计论文范,计算机平面设计论文关于计算机平面设计中汉字艺术论文范文参考资料...
  5. mysql 绑定 cpu 节点_MySQL Cluster(MySQL集群)配置
  6. string转int/float/double、int/float/double转string、转字符串数组的方法:stoi、stringstream、scanf、to_string、sprintf
  7. 对“才鸟”——动态显示扩展数据的改写
  8. 74HC595芯片的应用实例
  9. 文本去重:I-Match算法
  10. 用php打印出日历_PHP完成一个日历
  11. 矩阵的乘法(python、matlab、excel的不同实现方法)
  12. c语言来用按键控制风扇转速,基于单片机的能风扇调速设计.doc
  13. 图像处理Task05图像分割/二值化
  14. TypeScript学习日记
  15. 漫漫人生录 | 一个月薪 120000 的[ 北京 ] 程序员的真实生活
  16. 聊聊精密测量仪器的气源维护知识
  17. 【Java小游戏】两小时制作大鱼吃小鱼小游戏项目
  18. photoshopCC 2018入门学习
  19. c++调用静态函数的方法
  20. java生成条码_Java生成商品条形码

热门文章

  1. 调侃 亚马逊的 kindlegen
  2. 命令提示符窗口中的快捷键及其使用说明
  3. python编写程序模拟硬币投掷,模拟掷硬币实验RealPython
  4. 设计模式之设计原则与思想:设计原则(二)
  5. linux系统MBR分区
  6. 参数估计之点估计和区间估计
  7. mongodb中带条件的文档--$gte、 $gt、$lte、$lt、 $eq、 $ne、distinct、与、或($or),$in、$exists
  8. 时间复杂度和空间复杂度分析
  9. 刘光《C++程序员不可不知的101条实用经验》
  10. python中repr_关于python的str()和repr()函数