自动机器学习框架auto-sklearn基础编程案例(代码片段)

ybdesire ybdesire     2022-12-17     752

关键词:

1. 引入

德国科学家在2015年时,在NIPS会议上发表了关于“自动机器学习框架”的方法(参考2),并开源了一个叫做auto-sklearn的项目(参考1)。在2020年,他们又对这个auto-sklearn框架进行了优化(参考3)。

初步看来,auto-sklearn能自动选择sklearn中不同模型,并最终找出最优的ensemble多模型集成学习方案。

2. 安装

参考4中给出了安装方法,需要python3.6以上的版本。

  1. ubuntu上的安装步骤
sudo apt-get install build-essential swig python3-dev
pip3 install auto-sklearn

auto-sklearn依赖swig,所以要先安装swig,这是个多语言编程兼容的库。

  1. 使用conda安装
conda install gxx_linux-64 gcc_linux-64 swig

参考4中还给出了使用docker等进行安装的更多安装方式,这里不再赘述。

3. 代码示例

下面给出一个简单的示例代码(来源于auto-sklearn源码中的example,简单修改并增加注释),代码含义及关键参数解释见注释。

# step-01: 导入第三方库
import sklearn.datasets
import sklearn.metrics
import autosklearn.classification

# step-02: 使用sklearn加载breast_cancer数据集
X, y = sklearn.datasets.load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test =  sklearn.model_selection.train_test_split(X, y, random_state=1)
print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)
# (426, 30) (143, 30) (426,) (143,)

# step-03: 训练模型
automl = autosklearn.classification.AutoSklearnClassifier(
    time_left_for_this_task=120, # 寻找合适模型的总时间(按秒计算)
    per_run_time_limit=30, # 留给每个模型运行、调优的时间(按秒计算)
    tmp_folder='tmp/autosklearn_classification_example_tmp', # 配置文件、log文件存储路径
)
automl.fit(X_train, y_train, dataset_name='breast_cancer')


# step-04: 最终给出的ensemble模型的细节
print(automl.show_models())


# step-05: Accuracy
predictions = automl.predict(X_test)
print("Accuracy score:", sklearn.metrics.accuracy_score(y_test, predictions))

上面第4步这里给出出了最终ensemble的模型,包括extra_tree,mlp,random_forest,gradient_boosting,以及他们的参数细节,看上去还是挺复杂的。最终在测试集上的准确率为 0.951048951048951。

4. 模型持久化

可使用joblib对auto-sklearn给出的ensemble模型做持久化,示例代码如下:

import joblib as jl

jl.dump(automl, 'automl.jl')
m2 = jl.load('automl.jl')
predictions = m2.predict(X_test)
print("Accuracy score:", sklearn.metrics.accuracy_score(y_test, predictions))

5. 关于auto-sklearn更多有价值的参考

auto-sklearn项目描述和官网上给出的tutorial都比较少,查了不少参考资料后,发现的好资料如下:

  1. api文档:https://automl.github.io/auto-sklearn/master/index.html

  2. 原理:两篇文章,参考2,参考3

  3. 样例代码:https://github.com/automl/auto-sklearn/tree/master/examples

6. 总结

本文给出了安装、使用auto-sklearn的简单案例,以及更多有价值的参考资料。

机器学习的实际应用过程中,会花掉大量时间做模型选择,参数调优,多模型集成学习ensemble。

auto-sklearn能把上面提到这些比较耗时的体力活都自动做完,这也是它最大的优势。

当然,从笔者的实验看来,auto-sklearn最终得到的模型,持久化后size都比较大,哪怕只在简单数据集上进行训练。

7. 参考

  1. https://github.com/automl/auto-sklearn
  2. https://proceedings.neurips.cc/paper/2015/file/11d0e6287202fced83f79975ec59a3a6-Paper.pdf
  3. https://arxiv.org/abs/2007.04074
  4. https://automl.github.io/auto-sklearn/master/installation.html

一文彻底搞懂自动机器学习automl:evalml(代码片段)

...问题而不是模型。有许多可用的开源AutoML库/框架,如Auto-Sklearn、TPOT、P 查看详情

机器学习:基础 折旧警告

】机器学习:基础折旧警告【英文标题】:MachineLearning:BasicsDepreciationWarning【发布时间】:2017-01-0101:37:50【问题描述】:我正在运行一个基本的机器学习教程代码sn-p(它可以在教学人员的计算机上正确编译),但我似乎找不到问... 查看详情

ai人工智能机器学习深度学习学习路径及推荐书籍

...Pytorch基础知识:了解Pytorch的基本概念和操作,如张量、自动求导、模型定义、优化器等。实践经验:通过实践项目或者模型实现等方式加深对Pytorch的理解和应用能力。简单的学习计划学习机器学习需要一定的数学和编程基础,... 查看详情

onebot编程怎么样

...快速地搭建一个聊天机器人,具备一些基础的功能,例如自动回复、关键词触发、闲聊、问答等。同时,OneBot还提供了多种高级功能,例如群管理、定时任务、消息转发、语音合成等,可以满足不同的场景需求。使用OneBot编程需... 查看详情

python都需要那些技术???

...学习框架、数据分析、深度学习、深度学习框架-Pytorch、机器学习等。参考技术A学习python的话大概要学习哪些内容?①Python基础:Python语言基础,函数,文件操作,面向对象,异常处理,模块和包,Linux系统使用,Mysql数据库等... 查看详情

python要学些啥

...器学习、图形识别、无人机开发、无人驾驶等。阶段九:自动化运维&开发CMDB资产管理系统开发、IT审计+主机管理系统开发、分布式主机监控系统开发等。阶段十:高并发语言GO开发GO语言基础、数据类型与文件IO操作、函数和面... 查看详情

转行零基础该如何学python?

...的基础知识和掌握linux操作系统常用命令,并会学习linux自动化运维技巧等。第三阶段主要学习网络爬虫,数据分析加人工智能:这一个阶段需要学习的内容也是比较多的,例如:爬虫与数据、多线程爬虫、go语言、NoSQL数据库、S... 查看详情

经验分享零基础python学习路线及阶段学习目标

...框架、Flask开发框架、爬虫与数据分析等知识,理解机器学习相关的基本概念及系统处理流程。 零基础Python学习路线及阶段学习目标:  阶段一、Python核心基础  1、Python编程基础,语法规则,函数与参数&#x 查看详情

自动聊天机器人项目班[一门课搞定聊天机器人]

打造传统NLP聊天机器人第1课聊天机器人的基础模型与综述知识点1:行业与业界综述实战项目:最简单的Rule-Base聊天机器人第2课NLP基础及扫盲知识点1:NLP基本算法实战项目:经典NLP问题与解法第3课用基础机器学习方法制作聊天... 查看详情

编程程软件测试培训的课程内容包含哪些方面?

...分别是计算机基础、功能测试课程、Python编程和数据库、自动化测试课程、性能测试、MySQL加强、LoadRunner和就业指导。软件测试需要学:1、学习测试基础和理论知识,包括测试计划编写、编写BUG报告单、设计测试用例等;2、学... 查看详情

怎么学习python,学习python需要那些学习条件?

...Scrapy框架,分布式爬虫框架等;④人工智能:数据分析,机器学习,深度学习等;这些基本上就是Python应用比较多的几个领域大概要学习的内容啦。怎么学习python,首先,学习Python基础语法,面向对象编程与程序设计模式的理解... 查看详情

第一节机器学习基础

...离不开机器学习。比如,打开购物网站,网站就会给我们自动推荐我们可能会喜欢的商品;电影频道会根据用户的浏览记录和观影记录,向不同用户推荐他们可能喜欢的电影等等,到处都有机器学习的影子。三、ComponentsofMachineLe... 查看详情

qtp自动化测试从零基础到精通进阶(脚本测试vbs语法描述性编程测试框架)

QTP自动化测试从零基础到精通进阶(脚本测试、VBS语法、描述性编程、测试框架)网盘地址:https://pan.baidu.com/s/19yUptC8PBFZFfH-VpyUUpQ提取码:aa3b备用地址(腾讯微云):https://share.weiyun.com/5JxoIev密码:dfvpye通过本门课程的学习,帮助学... 查看详情

机器学习基础

...:07一、机器学习的定义TomMitchell:机器学习是对能通过经验自动改进的计算机算法的研究。机器学习可以彰显数据背后真正的含义。二、机器学习的分类(1)监督学习supervisedlearning所谓监督学习,就是指在学习过程中会有一组标... 查看详情

机器学习基础---推荐系统(代码片段)

...习领域的一个伟大思想:对于某些问题,有一些算法可以自动地学习一系列合适的特征,比起手动设计或编写特征更有效率。这是目前做的比较多的研究,有一些环境能让你开发某个算法来学习使用那些特征。接下里让我们通过... 查看详情

如何学习自动化测试

 软件自动化测试的学习步骤大概步骤如下:1.做好手工测试(了解各种测试的知识)-> 2.学习编程语言->3.学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者学习Winform->4.学习自动化测试工具->5.学习自动化测试框架->6.实... 查看详情

ubuntu14下auto-sklearn安装调试总结

...试运用为主,原理之后空了再深究2.原理篇2.1什么是auto-sklearn图1:Auto-sklearn框架结构(图摘自2015年的论文,此时只支持分类,现在的版本添加了 查看详情

机器学习基础教程笔记---机器学习概述(代码片段)

目录机器学习概述1.1人工智能概述1.1.1机器学习与人工智能、深度学习1.1.2机器学习、深度学习能做些什么1.1.3人工智能阶段课程安排1.2什么是机器学习1.2.1定义1.2.2解释1.2.3数据集构成1.3机器学习算法分类学习目标分析1.2中的例子... 查看详情