自动调整模型

atm的Python项目详细描述


atm麻省理工学院从数据到人工智能实验室的开源项目。

ATM-自动调谐模式

circlecitravispypi shield覆盖状态downloads

  • 许可证:麻省理工学院
  • 文档:https://hdi-project.github.io/atm/" rel="nofollow">https://hdi-project.github.io/atm/
  • 主页:https://github.com/hdi-project/atm rel="nofollow">https://github.com/hdi-project/atm

概述

自动调谐模型(atm)是一个以易用性为目的而设计的automl系统。总之,你给 atm一个分类问题和一个数据集作为csv文件,atm将尝试构建最佳模型 它可以。自动柜员机是基于a纸张 该项目是麻省理工学院人类数据交互(HDI)项目的一部分。

安装

要求

ATM已经在python 2.7、3.5和3.6上开发和测试

另外,虽然不是严格要求,但是 强烈建议使用virtualenv,以避免 干扰安装在运行ATM的系统中的其他软件。

以下是使用python3.6为atm创建virtualenv所需的最少命令:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv

之后,必须执行此命令才能激活virtualenv:

source atm-venv/bin/activate

记住每次启动一个新控制台在ATM上工作时都要执行它!

使用PIP安装

创建并激活virtualenv之后,我们建议使用 pip以便安装ATM

pip install atm

这将从pypi中拉取并安装最新的稳定版本。

从源安装

或者,激活virtualenv后,可以克隆存储库并从 通过在stable分支上运行make install进行源代码:

git clone git@github.com:HDI-Project/ATM.git
cd ATM
git checkout stable
make install

安装用于开发

如果你想为这个项目做贡献,还需要一些步骤准备好项目 为了发展。

首先,请转到项目的github页面 并通过单击 页面的右上角。

然后,克隆fork并从master创建一个具有描述性名称的分支,该名称包括 您要处理的问题的编号:

git clone git@github.com:{your username}/ATM.git
cd ATM
git branch issue-xx-cool-new-feature master
git checkout issue-xx-cool-new-feature

最后,使用以下命令安装项目,该命令将安装一些 代码行和测试的依赖关系。

make install-develop

通过运行命令make lintmake test,确保在开发时定期使用它们。

数据格式

ATM输入始终是具有以下特征的CSV文件:

  • 它使用一个逗号作为分隔符。
  • 第一行是包含列名称的标题。
  • 有一列包含需要预测的目标变量。
  • 其余列都是用于预测目标列的变量或功能。
  • 每一行对应一个完整的训练样本。

下面是一个有效csv的前5行,其中有4个特性和一个名为类的目标列,例如:

feature_01,feature_02,feature_03,feature_04,class
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa

这个csv可以作为本地文件系统路径传递给atm,也可以作为一个完整的aws s3 bucket和 路径规范或作为URL。

您可以在aws中的atm data s3 bucket中找到演示数据集的集合。

快速启动

在这个简短的教程中,我们将指导您完成一系列步骤,帮助您获得 从atm开始,通过探索其python api。

<H2>1。获取演示数据

运行ATM的第一步是获取在 本教程的其余部分。

在这个演示中,我们将使用atm数据桶中的污染csv,您可以用浏览器下载它 从这里开始,或使用以下命令:

atm download_demo pollution_1.csv
<H2>2。创建ATM实例

获得演示数据集后,要做的第一件事是创建一个ATM实例。

fromatmimportATMatm=ATM()

默认情况下,如果atm实例没有任何参数,它将创建一个sqlite数据库 在当前工作目录中调用atm.db

如果要改为连接到SQL数据库,或更改SQLite数据库的位置, 请检查API参考 有关可用选项的完整列表。

<H2>3。搜索最佳型号

一旦您准备好了atm实例,就可以使用atm.run方法启动 搜索能更好地预测CSV文件目标列的模型。

必须为该函数提供csv文件的路径,该路径可以是本地文件系统路径,也可以是 以及http或s3资源。

例如,如果我们以前下载过污染1.csv 文件在当前工作目录中,我们可以调用run如下:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
0

或者,我们可以使用文件的https url让atm为我们下载csv:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
1

最后一个选项是,如果文件在s3 bucket中,我们可以通过传递uri来下载它 在s3://{bucket}/{key}格式中:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
2

为了使用专用的s3存储桶,请确保配置了 AWS凭据文件, 或甲型肝炎病毒ing创建了您的atm实例,将access\u键和secret\u键的参数传递给它。

运行调用将启动所谓的数据运行,并显示进度条 同时对不同的型号进行测试和调整。

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
3

此过程结束后,将打印一条消息,表明数据运行已结束。然后我们可以 探索结果对象。

<H2>4。探索结果

一旦数据运行完成,我们可以用多种方式探索结果对象:

a.获取数据运行摘要

方法将返回数据运行执行的摘要:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
4

这将打印此数据运行的简短描述,类似于:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
5

b.获得最佳分类器的摘要

get_best_classifier方法将打印找到的最佳分类器的信息 在此数据运行期间,包括使用的方法和找到的最佳超参数:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
6

输出与此类似:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
7

c.查看分数

方法将返回一个包含所有 在数据运行期间测试的分类器,包括它们的交叉验证分数和 他们腌制模型的位置。

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
8

分数数据框的内容应类似于以下内容:

pip install virtualenv
virtualenv -p $(which python3.6) atm-venv
9 <H2>5。进行预测

一旦我们找到并探索了最佳的分类器,我们将希望用它进行预测。

为此,我们需要执行以下几个步骤:

a.导出最佳分类器

export_best_classifier方法可用于序列化和保存最佳分类器模型 在所需位置使用pickle:

source atm-venv/bin/activate
0

如果分类器已正确保存,则将打印一条消息,指示如下:

source atm-venv/bin/activate
1

如果您提供的路径已经存在,则可以通过添加参数来移除它 force=true

b.加载导出的模型

导出后,您可以从atm.model中调用load方法将其重新加载 类并将模型保存的路径传递给它:

source atm-venv/bin/activate
2

加载模型后,可以将新数据传递给其predict方法 预测:

source atm-venv/bin/activate
3

接下来是什么?< >

有关ATM及其所有可能性和功能的详细信息,请查看 文档站点

在这里,您可以进一步了解它的命令行界面 以及它的rest api 如何为atm做出贡献 以帮助我们开发新功能或新创意。

学分

ATM是一个开源项目,从麻省理工学院的数据到人工智能实验室,已经建立并维护了 多年来由以下团队执行:

引用ATM

如果您使用ATM,请考虑引用以下文件:

托马斯·斯威林根、威尔·德雷沃、贝内特·塞弗斯、阿尔弗雷多·奎斯塔·因凡特、阿伦·罗斯、卡扬·维拉马切内尼。atm:用于自动机器学习的分布式、协作性、可扩展系统。ieee bigdata 2017,151-162

bibtex条目:

source atm-venv/bin/activate
4

相关项目

BTB

btb,用于贝叶斯优化和bandits,是核心automl HDI项目下正在开发的库。btb公开了几种超参数方法 通过公共api进行选择和调优。它允许领域专家扩展现有的方法 很容易添加新的。BTB是ATM的核心部分,这两个项目是在 串联的,但是它的设计是不可知实现的,并且应该在广泛的范围内有用 超参数选择任务。

功能工具

featuretools是一个用于自动化的python库 特征工程。它可以用来为ATM准备原始的事务和关系数据集。 它由功能实验室创建和维护,也是功能实验室的一部分。 人类数据交互项目

历史记录

0.2.2(2019-07-30)

新功能

0.2.1(2019-06-24)

新功能

0.2.0(2019-05-29)

新的python api

新功能

0.1.2(2019-05-07)

rest api和集群管理。

新功能

0.1.1(2019-04-02)

FIPYPI上的首次发布。

新功能

  • 升级至最新的BTB。
  • 新的命令行界面。

0.1.0(2018-05-04)

  • 首次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Apache Spark:使用sparksubmit比运行“单机版”慢3倍   macos错误/bin/sh:java:未找到命令   java Android Studio在尝试通过本地历史检索文件时崩溃   有没有办法从Java或Kotlin中读取Python pickle(test1.pickle)?   jacorb编译java类   用于cucumber测试、selenium测试和AEM的java SonarQube插件   java什么是SwingUtilities。你是做什么的?   java粒子系统   java为什么Switch case不能在普通类中工作?   java如何获取GridBagLayout的维度?   将java对象传递给js时Graalvm未知标识符   spring基于Java的配置版本是什么?   图中的“CPU”代表“核心”吗?   将java对象发送到rest Web服务   java如何使用Docx4j将字体更改为新段落?   正则表达式是在Java中执行大量字符串替换的最快方法   带toString的java Building 9x9   如何在cmd中运行java程序   java无法执行从Android应用程序到ASP的HTTPPost请求。NETWebAPI   java如何将数据从空活动传递到选项卡式活动?