论文部分内容阅读
摘要:机器学习自动化(Automated Machine Learning, AutoML)指的是为预测模型任务自动选择表现优异的模型。TPOT 是一个开源的数据库,可以使用 Python 语言实现机器学习自动化,可以用于分类任务和回归任务,自动发掘出表现最好的模型。本文将简介TPOT 的作用与用法,为机器学习课程的教学提供参考。
关键词:自动化;TPOT
一、基于 TPOT 的自动化机器学习
TPOT 的全称是 Tree-based Pipeline Optimization Tool,简称 TPOT,与 scikit-learn 的数据预处理和机器学习算法模型结合在一起,是一个自动化机器学习的Python 库[1]。TPOT 使用基于树的结构为预测任务自动寻找最优的表现模型,包括了数据清洗,特征选取,特征预处理,特征构建,模型选择,模型参数调优等,如图 1 所示。
二、TPOT的使用
使用 TPOT首先需要建立一个 TPOTRegressor或者 TPOTClassifier 的对象实例,然后将在数据库上表现最好的那个模型输出。配置实例主要包括两个部分:
1)模型的评价指标,包括交叉验证的方案和衡量的性能指标等。最好通过在配置中明确定义。例如,在回归问题中,可以指定RepeatedKFold 以及‘neg_mean_absolute_error‘;在分类问题中,指定RepeatedStratifiedKFold 和‘accuracy’.
2)全局随机搜索过程的设置。对于一个进化算法的过程,包括的设置有,种群的大小、迭代的代数、交叉和变异的比率等。前面几个参数对于控制搜索的范围极端重要,后面的几个参数则可以使用默认的参数。
(三)一个TPOT 用于分类任务的例子
声呐数据是一个标准的机器学习数据集,有 208 行数据,每行 60 个数值输入变量,以及二值化的输出值,即一个二分类问题[2]。一个简单的模型就可以达53%的准确性。一个表现最好的模型,则可以达到 88%的准确性。这就为这个数据集提供了一个期望的性能表现范围。
第一步,定义模型的评价指标。我们会用 3 次重复的 10 折交叉验证(repeated stratified k-fold cross-validation)。第二步,在遗传算法中指定种群的大小为 50,然后迭代 5代。需要注意的是,每次的运行结果都可能不同。这是由于遗传算法随机的本质所决定的,又或者是数值精度的不同所决定的。在运行的过程中,表现最好的模型的精度将会在屏幕打印出来。
在本例子中,我们可以看到表现最好的 pipeline 可以达到 86.6%的精度。pipeline中最好的模型将保存到一个名字叫做”tpot_sonar_best_model.py” 的文件中,如图 2 所示。
需要注意的是,这些生成的代码并不是可以运行的。这只是一个模板,需要复制到自己的项目中,然后更改相应的地方,如数据来源,存储路径等。从生成的代码中可以看出,表现最好的 pipeline 包含了朴素贝叶斯和 Gradient Boosting模型。学生可以通过 TPOT 生成的代码,对比自己搭建的模型,然后从中学习,提高机器学习建模的水平。
参考文献:
[1]周志华,机器学习,清华大学出版社,2016
作者简介:
罗晓牧(1980-),男,广东省广州市(籍贯),现职称:副教授,学历:工科博士研究生毕业,研究方向:机器学习,无线传感器网络,生物信息获取。工作單位:广东省广州市番禺区广州大学城广州中医药大学医学信息工程学院。
基金来源:广州中医药大学教学改革项目 A3-0433-181-427-039
关键词:自动化;TPOT
一、基于 TPOT 的自动化机器学习
TPOT 的全称是 Tree-based Pipeline Optimization Tool,简称 TPOT,与 scikit-learn 的数据预处理和机器学习算法模型结合在一起,是一个自动化机器学习的Python 库[1]。TPOT 使用基于树的结构为预测任务自动寻找最优的表现模型,包括了数据清洗,特征选取,特征预处理,特征构建,模型选择,模型参数调优等,如图 1 所示。
二、TPOT的使用
使用 TPOT首先需要建立一个 TPOTRegressor或者 TPOTClassifier 的对象实例,然后将在数据库上表现最好的那个模型输出。配置实例主要包括两个部分:
1)模型的评价指标,包括交叉验证的方案和衡量的性能指标等。最好通过在配置中明确定义。例如,在回归问题中,可以指定RepeatedKFold 以及‘neg_mean_absolute_error‘;在分类问题中,指定RepeatedStratifiedKFold 和‘accuracy’.
2)全局随机搜索过程的设置。对于一个进化算法的过程,包括的设置有,种群的大小、迭代的代数、交叉和变异的比率等。前面几个参数对于控制搜索的范围极端重要,后面的几个参数则可以使用默认的参数。
(三)一个TPOT 用于分类任务的例子
声呐数据是一个标准的机器学习数据集,有 208 行数据,每行 60 个数值输入变量,以及二值化的输出值,即一个二分类问题[2]。一个简单的模型就可以达53%的准确性。一个表现最好的模型,则可以达到 88%的准确性。这就为这个数据集提供了一个期望的性能表现范围。
第一步,定义模型的评价指标。我们会用 3 次重复的 10 折交叉验证(repeated stratified k-fold cross-validation)。第二步,在遗传算法中指定种群的大小为 50,然后迭代 5代。需要注意的是,每次的运行结果都可能不同。这是由于遗传算法随机的本质所决定的,又或者是数值精度的不同所决定的。在运行的过程中,表现最好的模型的精度将会在屏幕打印出来。
在本例子中,我们可以看到表现最好的 pipeline 可以达到 86.6%的精度。pipeline中最好的模型将保存到一个名字叫做”tpot_sonar_best_model.py” 的文件中,如图 2 所示。
需要注意的是,这些生成的代码并不是可以运行的。这只是一个模板,需要复制到自己的项目中,然后更改相应的地方,如数据来源,存储路径等。从生成的代码中可以看出,表现最好的 pipeline 包含了朴素贝叶斯和 Gradient Boosting模型。学生可以通过 TPOT 生成的代码,对比自己搭建的模型,然后从中学习,提高机器学习建模的水平。
参考文献:
[1]周志华,机器学习,清华大学出版社,2016
作者简介:
罗晓牧(1980-),男,广东省广州市(籍贯),现职称:副教授,学历:工科博士研究生毕业,研究方向:机器学习,无线传感器网络,生物信息获取。工作單位:广东省广州市番禺区广州大学城广州中医药大学医学信息工程学院。
基金来源:广州中医药大学教学改革项目 A3-0433-181-427-039