机器学习: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专家和新手提供最佳的机器学习和深度学习体验。

科技分类资讯推荐

模拟驾驶、真机飞行、火箭升空、户外挑战…今年暑假,一起去航空飞行造梦! - 天天要闻

模拟驾驶、真机飞行、火箭升空、户外挑战…今年暑假,一起去航空飞行造梦!

当火箭的尾焰划破夜空星辰与大海的梦想再次照亮了我们的征途·中国航天2024年交出一张张硕果累累的成绩单全年累计发射运载火箭68次发射次数创历史新高杭州日报航空造梦夏令营2024年同样也见证了近千名孩子逐梦寰宇的梦想实现做了六年的经典航空线路收获了营员的满满好评2024年“一箭11星”的最强发射再次印证了中国航天的强...
8.3英寸起,“独树一帜”的小尺寸新机 - 天天要闻

8.3英寸起,“独树一帜”的小尺寸新机

小屏手机潮暂时告一段落,小尺寸平板的舞台已经搭好了。目前,联想已推出拯救者 Y700 四代,接下来红魔、小米、华为也有新机要发。再算上苹果的 iPad mini(A17 Pro),今年的小平板选择会比往年多不少,接下来给大伙简单盘点一下。
75万采购的路由器,网上只卖299?高校回应 - 天天要闻

75万采购的路由器,网上只卖299?高校回应

5月11日,重庆三峡学院发布情况说明:近日我校“防火墙及DNS设备采购项目中标结果”引发网民质疑,学校高度重视,成立专项工作组开展核实。因工作需要,我校需购买网络防火墙及DNS设备,在招标文书中明确提出了需满足的技术标准。2025年5月6日该采购项目完成竞争性谈判,拟中标供应商为丰都县洪正商贸有限公司。5月9日我校...
微星MPG 272URX QD-OLED显示器评测:丝般顺滑的240Hz量子点屏幕 - 天天要闻

微星MPG 272URX QD-OLED显示器评测:丝般顺滑的240Hz量子点屏幕

现在显示器市场的竞争特别激烈,各大厂商都在拼参数和品质,特别是在高端显示器领域,各大品牌不断推出令人惊叹的产品,用来满足玩家和专业用户的需求。作为知名硬件厂商之一,微星近年来在显示器领域表现是很抢眼的。今天和大家分享的是微星MPG 272URX QD-OLED显示器的使用体验。这款产品不仅搭载了QD-OLED技术,还融合了...
华为缺席、小米受挫,4月国产新能源降价潮迈入拐点 - 天天要闻

华为缺席、小米受挫,4月国产新能源降价潮迈入拐点

文 | 数读智车在最新的微博中,雷军直言,“过去一个多月,是创办小米以来最艰难的一段时间。”这也是小米最艰难的时刻。乃至整个国产新能源,都进入了一段冷静期。2025年的北京车展、上海车展,比往年更安静了一些。车主站上特斯拉车顶、周鸿祎站上国产车车顶……这些往常年引起全网轰动的戏码,并没有上演。这似乎是一个...
亿纬锂能商用车电池科技日:8款开源电池新品全面覆盖商用市场 - 天天要闻

亿纬锂能商用车电池科技日:8款开源电池新品全面覆盖商用市场

【环球网科技报道 记者 张阳】2025年5月9日,亿纬锂能首届商用车电池科技日暨开源电池新品发布会在广东惠州举办。会上,亿纬锂能重点阐述了在新能源商用车领域的技术积淀与战略布局,并且集中发布了8款开源电池产品,满足从物流车的微面、轻卡到重卡的短倒、干线再到客车和工程机械的全场景工况需求。亿纬锂能动力营销中心...
绿洲文娱落子郑州!沉浸式剧本杀旗舰店重构娱乐新场景 - 天天要闻

绿洲文娱落子郑州!沉浸式剧本杀旗舰店重构娱乐新场景

2025年5月,中原沉浸娱乐市场迎来里程碑事件——国内知名文娱品牌绿洲文娱宣布其全国战略布局的重要落子“绿洲实景沉浸式演绎剧本杀推理馆”正式进驻郑州国贸360商圈。这座斥资打造的千平方米娱乐综合体以剧场级配置重构沉浸式体验边界,为中原玩家开