auto-sklearn代码阅读 part1
文章目录
自动机器学习(AutoML)是将机器学习应用于现实问题的端到端流程自动化的过程。工作中刚好有用到auto-sklearn相关技术,记录一下代码阅读笔记。
auto-sklearn 简要介绍
如下是一个最简单的例子,fit中包括了数据预处理,特征变换,模型选择,超参调优等流程。用户不用关心中间的实现过程
|
|
Estimator
这是最主要的基类,在此基础上衍生了AutoSklearnClassifier
和AutoSklearnRegressor
,根据具体场景选择分类还是回归
有几个比较重要的入参:
- n_jobs 指定 并发的job个数
主体流程:
- 判断并发job个数,默认为单任务运行
- build_automl初始化automl类,每个进程初始化一个
- 在本进程运行一个,在n-1个其他进程上运行其他的任务
BaseAutoML
作为classifier和regressor的共同基类,子类在此基础上重写fit函数。
classifier.fit: 根据y向量判断问题类型,如果是多label分类问题,衡量指标为f1_macro,否则是accuracy
Regressor.fit: 衡量指标(metrics) r2
AutoMl.fit主要逻辑:
- 入参检查,其中resampling_strategy默认为 holdout-iterative-fit
- do_dummy_prediction 构造一个预测函数,用来debug
- Create_search_space(重点) 根据配置(所包含的estimator, preprocessor)创建一个搜索空间,以classifier为例,这里返回了生成的 SimpleClassificationPipeline,这个类是实现分类task的整个pipeline
文章作者 Sun.StriKE
上次更新 2019-10-22