机器学习:AutoGluon介绍及示例

2019年12月14日18:50:09 科技 1118

介绍AutoGluon

AutoGluon是一个新的开源 AutoML库,可针对涉及图像,文本和表格数据集的实际应用,自动进行深度学习(DL)和机器学习(ML)。无论您是机器学习新手还是经验丰富的从业人员,AutoGluon都能简化您的工作流程。使用AutoGluon,您可以仅使用几行Python代码来开发和完善深度学习模型。

机器学习:AutoGluon介绍及示例 - 天天要闻

主要特点

从历史上看,要创建机器学习模型,需要大量的背景知识,经验和人力。数据准备,特征工程,验证拆分,缺失值处理和模型选择只是机器学习应用程序必须解决的许多任务中的一部分。一个特别困难的任务是选择超参数。

超参数代表用户在构建模型时必须做出的许多选择,例如数据处理步骤,神经网络体系结构以及训练期间使用的优化程序。每个超参数都以不透明的方式影响机器学习模型的预测性能,而越强大的模型(如深度神经网络)需要调优的超参数越多。轻微的超参数修改可能会显著地改变模型的质量。由于通常不清楚如何做出这些决策,开发人员通常手动调整他们的ML管道的各个方面,这可能需要多次迭代和艰苦的人力工作。
AutoGluon将前面提到的所有任务都自动化,从而创造了一种真正无需手动的体验。AutoGluon将利用可用的计算资源来找到最强的ML方法。
AutoGluon使您能够自动实现图像分类、对象检测、文本分类等监督学习任务。每个任务的超参数通过贝叶斯优化、超带和强化学习等优化算法自动选择。使用AutoGluon,您不必熟悉底层模型,因为所有超参数都将自动调优到默认范围内,这些默认范围对于特定的任务和模型来说性能良好。
对于专业的ML从业人员,AutoGluon允许轻松地自定义此过程。例如,您可以为某些超参数指定要值范围,也可以使用AutoGluon自动调整自定义模型的各个方面。如果您可以访问多台机器,AutoGluon可以很容易地将其计算分布到这些机器上,以便更快地返回经过训练的模型。

AutoGluon示例

安装

# CUDA 10.0 and a GPU for object detection is recommended
# We install MXNet to utilize deep learning models
pip install --upgrade mxnet-cu100
pip install autogluon

机器学习:AutoGluon介绍及示例 - 天天要闻

对象检测示例

我们以对象检测的任务为例来演示AutoGluon的简单接口。在对象检测中,不仅要识别图像中的对象,而且要用边界框定位它们。

我们将使用AutoGluon在一个用于演示目的(以确保快速运行时)的数据集上训练一个对象检测器。数据集是使用VOC数据集的摩托车类别生成的。在下面的Python代码中,我们首先导入AutoGluon,将将对象检测指定为任务,将数据下载到我们的机器上,最后将数据加载到Python中:

import autogluon as ag
from autogluon import ObjectDetection as task
url = 'https://autogluon.s3.amazonaws.com/datasets/tiny_motorbike.zip'
data_dir = ag.unzip(ag.download(url))
dataset = task.Dataset(data_dir, classes=('motorbike',))

机器学习:AutoGluon介绍及示例 - 天天要闻

接下来,我们可以通过调用fit()函数来使用AutoGluon训练一个检测器模型:

detector = task.fit(dataset)

在这个对fit()的调用中,AutoGluon在不同的网络配置和优化超参数下训练许多模型,选择其中最好的作为最终返回的检测器。在没有任何用户输入的情况下,对fit()的调用还自动利用了最新的深度学习技术,例如预训练的YOLOv3网络的迁移学习。我们可以使用predict()方法在新图像上测试训练过的检测器:

url = 'https://autogluon.s3.amazonaws.com/images/object_detection_example.png'
filename = ag.download(url)
index, probabilities, locations = detector.predict(filename)

机器学习:AutoGluon介绍及示例 - 天天要闻

机器学习:AutoGluon介绍及示例 - 天天要闻

AutoGluon的predict函数自动加载测试图像,并输出每个被检测对象的预测对象类别、类概率和边界框位置。将自动生成如上所示的可视化图像。

表格数据示例

最常见的数据形式是表格数据集。它们由结构化数据组成,通常位于CSV文件或数据库中。在表格数据集中,每一列代表某个变量的测量值(也称为特征),每一行代表单独的数据点。AutoGluon可用于训练基于同一行中的其他列来预测特定列值的模型,并且能够泛化到以前未见过的实例。
我们将要训练的数据集是成人收入分类数据集。该数据集包含约48,000个人的信息,包括数字特征(例如年龄)和分类特征(例如职业)。该数据集通常用于预测个人收入。在此示例中,我们将预测一个人的年收入是否超过50,000美元。我们将使用80%的数据来训练,并使用20%的数据来测试生成的AutoGluon预测器。使用AutoGluon,无需指定验证数据。AutoGluon将使用提供的训练数据最优地分配验证集。
举例来说,在Python代码中,首先导入AutoGluon并指定一个任务,在这个任务中,我们将使用TabularPrediction处理表格数据。然后我们从S3上的CSV文件加载数据集。只需调用一次fit(), AutoGluon就可以处理数据并训练一个称为“预测器”的ML模型集合,该模型能够预测数据中的“类”变量。它将使用其他列作为预测特征,如个人的年龄、职业和教育程度。这个模型的集合包括ML中经过测试的算法,如LightGBM、CatBoost和深度神经网络,它们始终优于逻辑回归等更传统的ML模型。
注意,我们不需要进行任何数据处理,特征工程设计,甚至不需要声明预测问题的类型。AutoGluon自动准备数据并推断我们的问题是回归还是分类(包括它是二元还是多元)。经过训练的预测器模型将保存到task.fit()调用中指定的位置。

from autogluon import TabularPrediction as task
train_path = 'https://autogluon.s3.amazonaws.com/datasets/AdultIncomeBinaryClassification/train_data.csv'
train_data = task.Dataset(file_path=train_path)
predictor = task.fit(train_data, label='class', output_directory='ag-example-out/')

机器学习:AutoGluon介绍及示例 - 天天要闻

现在我们的预测器模型已经训练完毕,我们将对以前看不见的测试数据进行预测。我们可以直接使用返回的预测变量,也可以从指定的输出目录中加载它。

predictor = task.load('ag-example-out/')
test_path = 'https://autogluon.s3.amazonaws.com/datasets/AdultIncomeBinaryClassification/test_data.csv'
test_data = task.Dataset(file_path=test_path)
y_test = test_data['class']
test_data_nolabel = test_data.drop(labels=['class'],axis=1)
y_pred = predictor.predict(test_data_nolabel)
y_pred_proba = predictor.predict_proba(test_data_nolabel)
print(list(y_pred[:5]))
print(list(y_pred_proba[:5]))

机器学习:AutoGluon介绍及示例 - 天天要闻

['<= 50K','<= 50K','> 50K','<= 50K','<= 50K']
[0.077471,0.0093894,0.973065,0.0021249,0.001387]
现在我们来看一下模型排行榜:

leaderboard = predictor.leaderboard(test_data)

机器学习:AutoGluon介绍及示例 - 天天要闻

AutoGluon的模型排行榜

该排行榜显示了AutoGluon训练的每个模型,它们在测试和验证数据上的得分以及训练时间(以秒为单位)。可以看出,weighted_ensemble在验证和测试集上表现得最好,达到了87.76%的准确性。

最后

在本文中,我们介绍了AutoGluon,它旨在为ML专家和新手提供最佳的机器学习和深度学习体验。

科技分类资讯推荐

废弃了7年的老Android项目,我用AI两周就重写完了! - 天天要闻

废弃了7年的老Android项目,我用AI两周就重写完了!

还在为维护老旧项目头疼?AI 或许是你的救星。本文作者是一位有多年 Android 开发经验的工程师,在离开原生开发多年之后,决定借助 Copilot 等 AI 开发工具,花两周时间将一个 7 年前的 Android 应用从头重写为现代架构
华为Pura 80 Ultra评测 影像创新还得看华为 - 天天要闻

华为Pura 80 Ultra评测 影像创新还得看华为

首发超大底一镜双目长焦 影像之王再创辉煌 华为P系列作为移动影像旗舰,每一代新品都有技术上的创新。在本月推出的华为Pura 80系列中,华为在影像技术上放了不止一个大招,而且在影像之外,也....
估值已达80亿元!宇树科技完成C轮融资交割,移动、腾讯、阿里等领投 - 天天要闻

估值已达80亿元!宇树科技完成C轮融资交割,移动、腾讯、阿里等领投

红星资本局6月19日消息,今日,多家媒体报道,宇树科技已经完成了始于去年底C轮融资的交割,由移动旗下基金、腾讯、锦秋、阿里、蚂蚁、吉利资本共同领投,绝大部分老股东参与了跟投。资料配图 图据视觉中国此前5月29日,宇树科技向合作伙伴表示,因公司发展需要,杭州宇树科技有限公司即日起名称变更为杭州宇树科技股份有限...
重磅!宇树科技C轮融资终于落地,投资人终于浮出水面,央企中国移动、腾讯、阿里等互联网巨头成功上车,具体估值仍然成谜 - 天天要闻

重磅!宇树科技C轮融资终于落地,投资人终于浮出水面,央企中国移动、腾讯、阿里等互联网巨头成功上车,具体估值仍然成谜

金融界6月19日消息 备受关注的宇树科技C轮融资终于落地,投资人纷纷浮出水面,中国移动、腾讯、阿里、蚂蚁、吉利等巨头集体现身。19日,市场消息称宇树科技已完成了始于去年年底的C轮融资交割,由中国移动旗下基金、腾讯、锦秋、阿里、蚂蚁、吉利资本共同领投,绝大部分老股东跟投。对此,宇树科技方面表示,“我们最近确实...
小红书“种草”首次登上国际营销界顶级舞台 - 天天要闻

小红书“种草”首次登上国际营销界顶级舞台

6月18日,在法国戛纳国际创意节的聚光灯下,受邀参会的小红书CMO之恒发表主旨演讲,首次在国际顶级舞台上系统阐释了小红书独特的社区生态,以及从社区中原生而出的营销新范式“种草”,并对种草的价值、底层逻辑、成功因素等进行了分享。之恒表示,有用户将小红书视为“电子闺蜜”和“情感树洞”,在小红书上寻找与自己爱好...
大摩北美IT硬件数据追踪:App Store 仍跑赢市场预期,甲骨文引爆云计算资本支出 - 天天要闻

大摩北美IT硬件数据追踪:App Store 仍跑赢市场预期,甲骨文引爆云计算资本支出

智通财经APP获悉,大摩的追踪数据显示,App Store 年初至今净收入同比增长 12.5%,超出该行对第二季度的预测 150 个基点,并相当于服务业务超预期 40 个基点。大摩将2025年全球云资本支出预测上调至4060亿美元(同比增长43%),较1个月前预测提升4个百分点(新增140亿美元)。增长由甲骨文(ORCL.US)和阿里巴巴的上调驱动。...
宝洁失速背后,消费品正在被碎片化重构 - 天天要闻

宝洁失速背后,消费品正在被碎片化重构

本文来自微信公众号:刀姐doris,作者:刀法智库,原文标题:《宝洁失速的背后:加剧分化的时代,大品牌服务不了所有人》,头图来自:AI生成宝洁宣布裁员7000人,外表看起来是大集团走下坡路,本质上是大品牌服务不了所有人。前段时间,宝洁公司宣布,计划未来两年在全球裁员 7000 人,甚至要退出某些品类和产品,或出售旗...
TDK 收购智能眼镜软硬件开发商 SoftEye,扩大 AI 生态系统业务 - 天天要闻

TDK 收购智能眼镜软硬件开发商 SoftEye,扩大 AI 生态系统业务

IT之家 6 月 19 日消息,日本 TDK(东电化)今日宣布收购美国智能眼镜软硬件系统解决方案开发商 SoftEye,进一步扩大其 AI 生态系统业务。SoftEye 从事智能眼镜定制芯片、摄像机、软件和算法的开发工作,具备低功耗眼动追踪和物体识别方面的技术,交易完成后将成为 TDK 的全资子公司。TDK 通过此次收购将能够以更快的速度交...
消息称广汽埃安即将发布 B 端专用品牌,明日对外公布信息 - 天天要闻

消息称广汽埃安即将发布 B 端专用品牌,明日对外公布信息

IT之家 6 月 19 日消息,蓝鲸汽车今日报道称,从广汽方面获悉,广汽旗下自主品牌埃安即将发布 B 端专用品牌。有内部知情人士对该媒体称,明天(6 月 20 日)会有对外信息发布。报道还提到,继去年发布全新“AION”字母标并推出 3 款 C 端全球战略车型后,广汽埃安 C 端销量占比有所提升,下半年即将启动 B / C 端品牌全面分...