今日必看|调整超参数:决定模型是“金子”仍是“垃圾”!
数据清洗以后 , 你也许会困惑应该从哪里开始建模 。 一般情况下它的下一步应该是特征选择 , 但特征工程和模型练习是相互影响的 。 好的特征选择可以使模型得到好的效果 , 而不同的模型又对数据有不同的要求 。
因此 , 特征工程和模型练习是两个不可分割的部门 。 因为模型的选择会对特征的选择造成影响 , 因此 , 在特征工程开始前 , 至少应该尝试练习一些可能的模型 , 查看当前的特征是否适合可能的模型 。 如下图是建模流程的轮回 , 特征工程和练习模型是两个动态过程 。
通过特征工程 , 选择可能的重要特征 。 通过参数调整 , 尝试练习可能的模型 , 从中选择最佳的模型并调试参数 。
除了特征工程以外 , 超参数的选择也十分重要 , 它决定你的模型是“金子”仍是“垃圾” , 以及模型是否处于最优的表现并得到好的结果 。 本文着重先容三种超参数调节的方法 , 分别为:手动调节(manual tuning) , 网格搜索(grid search) , 随机搜索(randomized search) , 贝叶斯搜索(Bayesian Search) 。详见链接 。
本文插图
图片来源:https://towardsdatascience.com/what-is-the-best-starter-model-in-table-data-ml-lessons-from-a-high-rank-kagglers-new-book-f08b821db797
在开始先容超参数前 , 首先要明确参数与超参数的区别:
参数:是模型内部的配置变量 , 在机器学习中天生的 。
超参数:超参数是在机器学习前由用户基于以往的经验填入的实体 , 它不能通过机器学习自动天生 , 而必需由外部进行指定 。
例如逻辑回归 , 假设y=ax+b , 其中x是输入数据 , sigmoid函数是$f(x) = {1 over {1 + e^{-(ax+b)}}}$ , 模型的输出值为0或1 。对于任意给定的数据X , 模型都会返回一个a和b与之匹配 , 其中的a和b就是模型的参数 。 因为模型的输出值是0或1 , 因此 , 决定模型何时输出为1 , 何时输出为0 , 需要外部设置一个阈值 , 这个阈值(threshold)即为模型的超参数 。对于模型的参数 , 是通过在练习模型或者机器学习中天生的 , 而超参数是需要外部设置 , 可以学习曲线或者网格搜索等方法进行调节 , 以使模型表现最佳 。
1. 超参数的调整概述
在scikit-learn中提供许多不同的机器学习模型 , 并且提供了各模型超参数的初始值设置 , 这些初始值的搭配仅是针对解决某些题目的可能的最优搭配 , 并不是针对解决所有题目的最优搭配 , 因此 , 当使用scikit-learn中的模型进行建模时 , 调整超参数仍是必要的 。
1.1 伴随特征工程的三个调参过程
比较常见的步骤可以如下:
初始阶段:以基准参数和基准特征工程为开始 ,重要参数调节阶段:通过选择一些参数候选和特征工程 , 手动调参或者网格搜索一些重要特征,剩余参数调节阶段:对于其它参数和最后的特征工程 , 使用随机搜索 。1.2 了解模型超参数
数据科学家的工作之一就是找到模型的最佳超参数 。 因为每个模型的超参数都不尽相同 , 很难对所有模型的超参数进行概括性总结 。 因此 , 在调节超参数前 , 应对可能用到的模型及其超参数设置有一个全面概括的了解 。 下面为几个关于不同集成算法的各参数总结网站 , 可以保藏 , 以备不时之需 。
(1)先容xgboost和lightGBM超参数的网站 。
(2)在Analytic Vidhya网站上也提供关于GBDT模型的超参数的丰硕资料:
xgboost: "Complete Guide to Parameter Tuning in XGBoost with codes in Python"lightgbm: "Which algorithm takes the crown: Light GBM vs XGBOOST?"(3)XGBoost , LightGBM和CatBoost超参数的优化:
"An Example of Hyperparameter Optimization on XGBoost, LightGBM and CatBoost using Hyperopt"下表展示了根据不同分级的重要性 , 参数不同重要性的总结:
本文插图
图片来源 https://towardsdatascience.com/hyperparameter-tuning-explained-d0ebb2ba1d35
2. 四个调节超参数的基本方法
2.1 手动调节
手动参数调节更多的是基于建模者对以往经验的总结 , 通过修改模型的部门参数 , 了解模型分数对模型参数变化的敏感性 。
手动调节参数的上风:
应用以往构建模型的经验 , 选择可能的最佳模型参数 。 在调参过程中至少可以手动尝试调节模型参数;较为快速 。手动调节参数的劣势:
缺少对模型参数与相应得分变化的宏观掌握 。好比 , 当你发现在练习模型的时候 , 许多不用的特征被“味”到模型中 , 你可以手动增加正则参数的权重进行特征选择 。 手动调节参数可以让建模者快速把握模型对参数变化的敏感度 , 以备后续提供更好的模型调参范围 。
2.2 网格搜索
又名穷尽的网格搜索(Exhaustive Grid Search) 。 网格搜索方法是通过设置可能的各超参数集合 , 将所有集合中可能的组合作为超参数 , 对模型进行一次练习 。 n个可能的超参数组合意味着n次模型练习 。 最后 , 网格搜索的返回值是n次模型练习中模型表现最好的超参数组合 。 因此 , 网格搜索随设置的超参数个数和集合的进步 , 呈时间和空间的复杂性 。网格搜索的评分标准可以由用户来指定 , 例如准确率 , 精确率 , 召回率等 。
推荐阅读
- |展现上海浦东开发开放30周年成就,《新时代的浦东》特种邮票今日发行
- 考点|2020山东省公务员招录笔试,35.9万人今日开考
- 海之声天津狮子林大街|七日瘦身汤的做法 懒人必看瘦身法
- 海底捞回应“乌鸡卷中吃出塑料片”事件
- 广东|暂停179天,广东跨省游首团今日出发飞往敦煌
- 调整|山东省2020年继续调整退休人员基本养老金,预计7月底到位!
- 民生|郑州:7月23日起,204路、903路、S165路优化调整
- 贷款市场报价利率|LPR连续三月未调整 专家:企业贷款成本不受影响
- 今日事|这只鹿,叫长腿鹿,瑶瑶公主COS赏析
- 21日起强降雨暂缓 贵州省将气象灾害(暴雨)III级应急响应调整为IV级
