美文网首页
【机器学习】自动调参器设计实现

【机器学习】自动调参器设计实现

作者: AIPlayer | 来源:发表于2020-04-25 22:26 被阅读0次

1、前言

现在人工智能发展很火热,各种开源框架越发完善,用户的学习门槛越来越低,用Python简单的几十行代码就能实现一个人工智能应用,这些便利性都是建立在各路大神不断提出新的算法并开源出封装包的基础上的。所以,现在很多机器学习工程师都自嘲为“调包侠”。但是,要做一名合格的“调包侠”也是需要深刻理解各类机器学习算法的原理以及所适用的使用场景的,而且,在机器学习的训练过程中,调参似乎也是一个必不可少的过程,所以“调包侠”中的“调参师”由此而来。调参是一个繁琐耗时且枯燥的过程,而如何偷懒是推动人类发展的关键因素,所以自动调参应运而生。

本文将描述一个简易版自动调参器的设计与实现,实际上是对sklearn, mlxtend和xgboost等开源算法包的封装整合。

2、架构设计与实现

2.1 整体功能框架
整体框架.png

整体功能框架如上图所示,可以分为3个功能模块:

  • 算法配置:负责解析配置文件,用户通过配置文件定义所要执行的任务类型是分类还是回归,需要使用哪些基本的算法模型和集成学习算法,以及使用哪些评估指标。
  • 基模型交叉验证筛选与调优:实现基本模型的训练、交叉验证,选择出较优模型进行调优,输出各个基本模型文件。
  • 集成学习:使用基本模型进行级联训练,交叉验证调优并输出最终模型文件。
2.2 配置文件定义

配置文件使用.ini的格式,主要内容如下,其中的[basic]及[meta_models]为必需的,后面的评估指标及基本算法模型可以根据[basic]指定的类型对应添加。

[basic] #定义任务类型:二分类、多分类、回归和聚类 
   model_type = binary #可选择的值 binary | multi | reg | cluster
[binary_clf_metrics] #定义二分类任务的评估指标 
   accuracy = true precision = true 
[multi_clf_metrics] #定义多分类任务的评估指标 
    accuracy = true precision = true
[reg_metrics] #定义回归任务的评估指标 
    explained_variance = true 
    neg_mean_absolute_error = true 
[cluster_metrics] #定义聚类任务的评估指标 
    adjusted_mutual_info_score = true 
    adjusted_rand_score = true 
[clf_models] #定义分类模型 
    LR = true 
    SVM = true 
    DecisionTree = false 
    RandomForest = false 
    xgboost = true 
[reg_models] #定义回归模型 
    RandomForest = true 
[cluster_models] #定义聚类模型 
    KMeans = true
[meta_models] #定义集成学习算法模型 
    lgbm = true
2.3 自动调参流程

在定义好配置文件之后,根据其中的评价指标、算法模型候选集的选择,在训练时,遍历指标列表,针对每个候选算法模型进行交叉验证训练,选出较优的模型,利用网格搜索进行自动化参数调优,然后以调优得到的模型作为基模型进行stacking集成学习,二级模型使用GBDT。流程如下图所示:


模型构建框架流程图.png

其中stacking集成学习建模方式如下图所示,其基本的原理是将训练好的多个基分类器用于对训练数据作预测,预测的结果并联合并作为二级分类器的输入训练数据,同时把对应的实际标签并联合并作为二级分类器的输入训练标签,对二级分类器进行训练调参后得到最终的模型。


集成学习原理.png

3、总结

本文通过封装整合sklearn, mlxtend和xgboost等开源算法,实现了一个简易版的自动调参器,可以对一些机器学习相关的任务进行自动调参。项目源码地址在AIPlayer 发布,其中提供了使用AutoML对Kaggle中的入门任务 Titanic 进行自动调参的实例,有兴趣的同学可以参考阅读。

相关文章

  • 【机器学习】自动调参器设计实现

    1、前言 现在人工智能发展很火热,各种开源框架越发完善,用户的学习门槛越来越低,用Python简单的几十行代码就能...

  • Task 4:建模调参

    Datawhale 零基础入门数据挖掘-Task4 建模调参 四、建模与调参 4.1 学习目标 了解常用的机器学习...

  • 机器学习调参神器 NNI使用简介

    NNI自动调参使用简介 前言 NNI是微软于2021年8月推出的一款用于支持机器学习实验的工具,它可以以自动化的方...

  • 机器学习:06. 调参的基本思想(乳腺癌数据)

    1. 机器学习中调参的基本思想 调参的目的就是为了提升模型的准确率。在机器学习中,我们用来衡量模型在未知数据上的准...

  • 【SEO教程】SEO一本道-7-页面自动生成机制

    页面自动生成机制,只的是从“导词-上线-调优”的整个过程,机器自动生成,人工辅助调参的。适用于拥有大数据量的站点。...

  • 机器学习/深度学习中的自动调参数

    目前的机器学习/深度学习框架日渐成熟,工具的发展为模型的自动调参提供了完善的功能,帮助我们可以快速、有效的达成优化...

  • 机器学习中的调参

    一、逻辑回归 class sklearn.linear_model.LogisticRegression(pena...

  • python机器学习模型调参

    1. 基于scikit-learn的RandomForestRegressor构建一个随机森林回归模型 sklea...

  • Task4模型调参

    学习目标 了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程 内容介绍 线性回归模型:线性回归对于特征的要...

  • 贝叶斯调参

    机器学习中参数调优的目的是为了找到模型在测试集上表现最好的参数,目前常见的调参方法主要有四种: 1、手动调参; 2...

网友评论

      本文标题:【机器学习】自动调参器设计实现

      本文链接:https://www.haomeiwen.com/subject/noblwhtx.html