AutoGluon多模态预测快速入门指南

AutoGluon多模态预测快速入门指南

autogluon AutoGluon: AutoML for Image, Text, Time Series, and Tabular Data autogluon 项目地址: https://gitcode.com/gh_mirrors/au/autogluon

概述

AutoGluon是一个强大的自动化机器学习工具库,其MultiModalPredictor模块专门用于处理多模态数据(如图像、文本和表格数据)的预测任务。本文将带您快速了解如何使用AutoGluon的多模态预测功能,通过一个宠物领养预测的实例演示完整的工作流程。

环境准备

首先需要安装AutoGluon库,建议使用最新版本:

!python -m pip install --upgrade pip
!python -m pip install autogluon

安装完成后,导入必要的模块并设置随机种子以保证结果可复现:

import os
import warnings
import numpy as np

warnings.filterwarnings('ignore')
np.random.seed(123)

数据准备

本教程使用简化版的PetFinder数据集,目标是基于宠物的资料(包括图片、描述和各种特征)预测其被领养的速度(分为0-慢速和1-快速两类)。

数据下载与加载

from autogluon.core.utils.loaders import load_zip

download_dir = './ag_multimodal_tutorial'
zip_file = 'https://automl-mm-bench.s3.amazonaws.com/petfinder_for_tutorial.zip'

load_zip.unzip(zip_file, unzip_dir=download_dir)

数据预处理

使用pandas读取CSV文件,并处理图像路径:

import pandas as pd

dataset_path = f'{download_dir}/petfinder_for_tutorial'
train_data = pd.read_csv(f'{dataset_path}/train.csv', index_col=0)
test_data = pd.read_csv(f'{dataset_path}/test.csv', index_col=0)
label_col = 'AdoptionSpeed'

# 处理图像列,只保留第一张图片
image_col = 'Images'
train_data[image_col] = train_data[image_col].apply(lambda ele: ele.split(';')[0])
test_data[image_col] = test_data[image_col].apply(lambda ele: ele.split(';')[0])

# 路径处理函数
def path_expander(path, base_folder):
    path_l = path.split(';')
    return ';'.join([os.path.abspath(os.path.join(base_folder, path)) for path in path_l])

train_data[image_col] = train_data[image_col].apply(lambda ele: path_expander(ele, base_folder=dataset_path))
test_data[image_col] = test_data[image_col].apply(lambda ele: path_expander(ele, base_folder=dataset_path))

数据示例

查看一条样本数据的图片和描述:

example_row = train_data.iloc[0]
example_image = example_row[image_col]

from IPython.display import Image, display
pil_img = Image(filename=example_image)
display(pil_img)

print(example_row['Description'])

模型训练

使用MultiModalPredictor进行训练非常简单:

from autogluon.multimodal import MultiModalPredictor

predictor = MultiModalPredictor(label=label_col).fit(
    train_data=train_data,
    time_limit=120  # 设置2分钟的训练时间限制
)

训练过程解析

在训练过程中,MultiModalPredictor会自动完成以下工作:

  1. 推断问题类型(分类或回归)
  2. 检测输入数据的模态(图像、文本、表格等)
  3. 从多模态模型池中选择合适的模型
  4. 训练选定的模型
  5. 如果使用多个骨干网络,会在顶部添加一个后期融合模型(MLP或Transformer)

预测与评估

预测新数据

predictions = predictor.predict(test_data.drop(columns=label_col))
print(predictions[:5])  # 查看前5个预测结果

对于分类任务,还可以获取每个类别的预测概率:

probs = predictor.predict_proba(test_data.drop(columns=label_col))
print(probs[:5])  # 查看前5个样本的预测概率

性能评估

使用ROC AUC指标评估模型性能:

scores = predictor.evaluate(test_data, metrics=["roc_auc"])
print(scores)

深入理解

AutoGluon的MultiModalPredictor之所以强大,是因为它:

  1. 自动化特征处理:自动识别和处理不同类型的数据(图像、文本、表格)
  2. 模型选择与集成:从丰富的模型池中选择最佳模型组合
  3. 高效训练:在有限时间内达到最佳性能
  4. 易用性:几行代码即可完成复杂任务

扩展应用

掌握了基本用法后,您还可以探索MultiModalPredictor的更多高级功能:

  • 特征提取与嵌入
  • 模型蒸馏
  • 精细调参
  • 纯文本或图像预测
  • 语义匹配任务

总结

本教程展示了AutoGluon多模态预测的基本流程。通过这个强大的工具,即使没有深厚的机器学习背景,也能快速构建高性能的多模态预测模型。AutoGluon自动化了最复杂的部分,让开发者可以专注于业务问题和数据本身。

autogluon AutoGluon: AutoML for Image, Text, Time Series, and Tabular Data autogluon 项目地址: https://gitcode.com/gh_mirrors/au/autogluon

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江涛奎Stranger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值