跳至主要内容

面向 Python 与零代码用户的 10 大 AutoML 框架

从开源库到企业级平台,本指南梳理团队实际在用的 AutoML 工具。
Abid Ali Awan
Abid Ali Awan

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

自动化机器学习(AutoML)常常被误解。

科技领域的许多人认为,AutoML 工具只适用于业务用户或不懂机器学习模型如何训练或部署的非技术团队。这个假设并不正确。

在实践中,数据科学家和机器学习工程师经常使用 AutoML 框架来缩短试验时间、提升模型性能,并自动化机器学习全生命周期中重复性的阶段。

这些 AutoML 工具支持特征工程、模型选择、超参数调优以及端到端流水线自动化,让团队将精力投入到更高价值的工作上。

在本文中,我将探讨当下可用的一些顶级 AutoML 框架,覆盖不同技术水平的用户。工具被分为三大类:

  • 开源框架
  • 零代码与低代码平台
  • 企业级 AutoML 解决方案

针对每个框架,我们会突出其关键特性,并提供示例代码,帮助您立即上手。

什么是 AutoML 框架?

AutoML 指的是将从原始数据到训练完成、可部署模型的整个模型开发流程实现自动化的工具和系统。

AutoML 框架能处理构建机器学习模型中许多重复且技术性的任务,从而让专家与非技术用户都能更高效地工作。

AutoML Workflow

AutoML 工作流示意图

具体来说,AutoML 框架通常会自动化机器学习工作流中的以下步骤:

  • 数据预处理与验证,包括清洗、归一化与将原始数据格式化为可用于训练的形式。
  • 特征工程与选择,自动创建或选择有意义的输入变量。
  • 算法选择,测试多种模型类型以找到最契合问题的方案。
  • 超参数优化,通过调参改进性能,而无需大量手工试错。
  • 模型评估与排序,基于关键指标比较已训练模型以找出表现最佳者。
  • 部署与监控支持(在企业平台中),助力团队规模化运行模型。

通过自动化这些任务,AutoML 框架减少了手动工作、提升了一致性与可复现性,并让技术与非技术团队都能更快速地构建高质量的机器学习模型。

开源 AutoML 框架

开源 AutoML 框架提供灵活、透明、对开发者友好的工具,使实践者在自动化构建模型的同时,仍能完全掌控数据、流水线与部署工作流。

1. TPOT

TPOT 是一个开源的 Python AutoML 框架,使用遗传编程自动发现并优化完整的机器学习流水线。

它将流水线设计表述为一类进化搜索问题,探索预处理步骤、模型与超参数的组合,从而找出高性能的解决方案。

TPOT 尤其适合需要快速试验与强基线的表格数据任务,同时仍允许实践者在标准 scikit-learn 工作流中检查、导出与复用得到的流水线。

关键特性:

  1. 遗传编程优化: TPOT 使用进化算法探索大规模的流水线搜索空间,并随着时间推移逐步改进。
  2. 自动化流水线构建: 自动组合预处理步骤、特征选择方法、模型与超参数,形成端到端流水线。
  3. 兼容 scikit-learn:TPOT 基于 scikit-learn 组件,便于理解、扩展与部署得到的流水线。
  4. 可自定义搜索空间:用户可控制 TPOT 允许探索的算法、变换与参数。
  5. 可导出的 Python 代码:最佳流水线可导出为整洁的 Python 代码,便于进一步检查或用于生产。

代码示例:

此示例展示使用 TPOT 所需的最小化设置。加载数据集特征与标签,使用默认设置初始化 TPOTClassifier,调用 fit 方法启动自动搜索流程。

在训练期间,TPOT 通过遗传编程评估多个候选流水线,并基于指定的评估指标选择高性能模型。

import tpot
X, y = load_my_data()
est = tpot.TPOTClassifier()
est.fit(X, y)

2. AutoGluon

AutoGluon 是由 AWS AI 开发的开源 Python AutoML 框架,专注于高精度、极简代码,并支持表格、文本与图像数据。

它构建多样化的模型集,结合自动化模型选择、超参数调优与集成学习,在不同数据类型上提供强劲的预测性能。

关键特性:

  • 多模态支持: AutoGluon 可处理表格、文本、图像等,使多个场景在同一库内实现。
  • 自动堆叠与集成: 通过堆叠集成组合多个模型,将精度提升到单模型之上。
  • 超参数调优: AutoGluon 自动优化模型超参数以获得更好性能。
  • 易用性: 高层 API 让用户仅用数行代码即可训练强力模型。
  • 健壮的预处理: 自动处理数据预处理并识别不同特征类型,为训练做好准备。

代码示例:

此代码将训练集与测试集加载为 AutoGluon 的表格数据集。随后创建一个 TabularPredictor 对象,指定目标标签并调用 fit 在表格训练数据上进行训练。训练完成后,使用已训练模型在测试集上生成预测。

from autogluon.tabular import TabularDataset, TabularPredictor

label = "signature"
train_data = TabularDataset("train.csv")

predictor = TabularPredictor(label=label).fit(train_data)

test_data = TabularDataset("test.csv")
predictions = predictor.predict(test_data.drop(columns=[label]))

3. FLAML

FLAML(Fast Lightweight AutoML)是微软研究院开发的开源 Python AutoML 库,旨在以最小的计算成本与资源占用,自动高效地寻找高质量模型,非常适用于对速度与效率要求极高的环境。

关键特性:

  • 预算感知优化: FLAML 采用高性价比的搜索策略,优先尝试成本更低的配置,再按需探索更复杂的配置,在资源有限的情况下也能取得出色表现。
  • 快速超参调优: 以速度与计算效率为重,自动化超参数调优,而非穷举搜索。
  • 多任务支持: 以最小化设置处理分类、回归、时间序列预测等常见任务。
  • 类 scikit-learn 接口: 集成熟悉的 fit 与 predict 接口,便于上手。
  • 可自定义搜索空间: 用户可定制估计器与搜索空间,在精度与资源约束之间平衡。

代码示例:

此示例展示如何使用 FLAML 的 AutoML 类在鸢尾花数据集上执行自动化分类任务,先指定时间预算与评估指标再训练,随后使用训练好的模型获取预测概率。

from flaml import AutoML
from sklearn.datasets import load_iris

X_train, y_train = load_iris(return_X_y=True)

automl = AutoML()

automl_settings = {
    "time_budget": 1,
    "metric": "accuracy",
    "task": "classification",
    "log_file_name": "iris.log",
}

automl.fit(X_train=X_train, y_train=y_train, **automl_settings)

print(automl.predict_proba(X_train))

4. AutoKeras

AutoKeras 是基于Keras 深度学习框架构建的开源 AutoML 库,能以极少代码自动搜索并训练高质量的神经网络,覆盖结构化数据、图像与文本等多种任务。

它利用高效的神经架构搜索找到合适的模型结构与超参数,让深度学习对初学者与有经验的实践者都更易用。

关键特性:

  • 神经架构搜索: 自动化架构搜索,为您的特定任务识别最优网络结构。
  • 多模态支持: 在统一框架内支持结构化表格、图像与文本数据。
  • 易用性: 诸如 StructuredDataClassifier 等高层 API 简化了复杂深度学习模型的训练,只需几行代码。
  • 灵活的模型构建: 可自定义搜索约束并扩展搜索空间以满足高级场景。
  • Keras 与 TensorFlow 集成: 基于 Keras 与 TensorFlow 构建,可与这些广泛使用的生态无缝衔接。

代码示例:

此示例导入必要库并从提供的 URL 加载训练与测试数据集。分离特征与标签后,创建 ak.StructuredDataClassifier 对象,自动搜索强大的深度学习模型。模型按设定的试验次数与 epoch 数进行训练,最后打印测试集上的评估结果。

import keras
import pandas as pd
import autokeras as ak

TRAIN_DATA_URL = "https://storage.googleapis.com/tf-datasets/titanic/train.csv"
TEST_DATA_URL = "https://storage.googleapis.com/tf-datasets/titanic/eval.csv"

train_file_path = keras.utils.get_file("train.csv", TRAIN_DATA_URL)
test_file_path = keras.utils.get_file("eval.csv", TEST_DATA_URL)

train_df = pd.read_csv(train_file_path)
test_df = pd.read_csv(test_file_path)

y_train = train_df["survived"].values
x_train = train_df.drop("survived", axis=1).values

y_test = test_df["survived"].values
x_test = test_df.drop("survived", axis=1).values

clf = ak.StructuredDataClassifier(overwrite=True, max_trials=3)
clf.fit(x_train, y_train, epochs=10)

print(clf.evaluate(x_test, y_test))

零代码与低代码 AutoML 平台

零代码与低代码 AutoML 平台通过抽象复杂工作流简化模型开发,使技术团队与业务用户都能快速试验与部署。

5. PyCaret

PyCaret 是一个开源的 Python 低代码机器学习库,可自动化分类、回归、聚类、异常检测与时间序列预测等端到端工作流,仅用几行代码即可实现快速原型开发,同时也为偏好低代码或点选体验的用户提供图形界面。

关键特性:

  • 低代码自动化: 通过自动化数据预处理、模型训练、评估与选择等标准步骤,显著减少手写代码量。
  • 多种 ML 任务支持: 内置支持分类、回归、聚类、异常检测、自然语言处理与时间序列分析等任务。
  • 集成预处理: 自动执行常见预处理步骤,如缺失值处理、类别特征编码与模型所需的特征缩放。
  • 模型对比与选择: compare_models 会基于交叉验证训练评估多种模型并提供排行榜,帮助选择最佳模型。
  • 可扩展与可集成: 封装主流库(scikit-learn、XGBoost、LightGBM、CatBoost 等),并可集成至 Power BI、Tableau 等 BI 工具。

代码示例:

该代码片段演示如何加载内置数据集,使用 setup 初始化 PyCaret 回归模块(进行预处理并初始化 ML 环境),随后用 compare_models 自动训练、评估并排序多种回归模型,返回表现最佳者。

from pycaret.datasets import get_data
from pycaret.regression import *

data = get_data("insurance")

s = setup(data, target="charges", session_id=123)

best_model = compare_models()

6. MLJAR Studio

MLJAR Studio 是一款零代码与低代码 AutoML 环境,您可通过引导式界面训练并比较机器学习模型,同时也可选用开源mljar-supervised 引擎进行 Python 工作流。

关键特性:

  • 零代码 AutoML 工作流: 无需写代码即可加载数据集、选择特征与目标、开始训练并查看结果。
  • 透明建模与报告: MLJAR 强调非「黑箱」,会生成详细报告,解释模型如何构建与表现如何。
  • 自动训练与调优: AutoML 引擎负责预处理、模型训练与超参调优,以找到强劲模型。
  • 清晰输出的模型对比: 训练多个模型并通过汇总与性能视图进行对比。
  • 可选的 mljar-supervised 代码方式: 若需更多控制,可通过 mljar-supervised Python 包实现同等 AutoML 能力。

代码示例:

使用 MLJAR Studio 无需代码,因为可在 GUI 中运行 AutoML。以下代码展示使用 mljar-supervised 库的可选编程方式:加载数据集、拆分特征与目标、运行 AutoML 训练,并用训练好的模型生成预测。

import pandas as pd
from supervised.automl import AutoML

df = pd.read_csv(
    "https://raw.githubusercontent.com/pplonski/datasets-for-start/master/adult/data.csv",
    skipinitialspace=True,
)

X = df[df.columns[:-1]]
y = df["income"]

automl = AutoML(results_path="mljar_results")
automl.fit(X, y)

predictions = automl.predict(X)

7. H2O AutoML

H2O AutoML 是 H2O 平台中的开源 AutoML 能力,提供可扩展的自动化机器学习,支持 Python、R 以及名为 H2O Flow 的零代码图形界面,让技术与非技术用户都能以最少编码构建、评估并选择模型。用户可通过基于 Web 的 Flow 界面导入数据、运行 AutoML 实验、探索结果并导出模型,无需编写任何代码。

关键特性:

  • 自动化模型训练与调优: 自动运行多种算法、调参,并生成最佳模型排行榜,无需手动选择模型。
  • 零代码 Web 界面: 通过基于浏览器的 H2O Flow 图形界面与 H2O 交互,执行机器学习任务并探索结果,无需写代码。
  • 多接口支持: 除 Web UI 外,还可通过 Python 与 R API 访问 H2O AutoML,兼顾低代码与零代码工作流。
  • 自动预处理: 自动执行缺失值处理、类别变量编码与特征缩放等常见预处理任务。
  • 模型可解释性工具: 提供解读模型行为与性能的能力,帮助用户理解并信任模型输出。

代码示例:

该示例展示如何通过 Python 使用 H2O AutoML。初始化 H2O 环境,导入训练与测试数据集,指定特征与目标列,限定模型数量后启动 AutoML 运行,并展示最佳模型排行榜。

注意:虽然这是编程方式,但同样的任务可在 H2O Flow Web 界面中无需写代码完成。

import h2o
from h2o.automl import H2OAutoML

h2o.init()

train = h2o.import_file(
    "https://s3.amazonaws.com/h2o-public-test-data/smalldata/higgs/higgs_train_10k.csv"
)
test = h2o.import_file(
    "https://s3.amazonaws.com/h2o-public-test-data/smalldata/higgs/higgs_test_5k.csv"
)

x = train.columns
y = "response"
x.remove(y)

train[y] = train[y].asfactor()
test[y] = test[y].asfactor()

aml = H2OAutoML(max_models=20, seed=1)
aml.train(x=x, y=y, training_frame=train)

aml.leaderboard

企业级 AutoML 解决方案

企业级 AutoML 解决方案提供可扩展、安全、受治理的机器学习平台,面向生产部署、合规与大规模运营使用而设计。

8. DataRobot

DataRobot 是一款企业级的零代码与低代码 AutoML 平台,使业务用户、分析师与数据团队无需大量编程即可构建、部署与管理机器学习模型。

该平台自动化整个机器学习生命周期,从数据摄取与特征工程到模型训练、部署与监控,并在受监管环境下提供所需的强治理、可解释性与运维控制。

关键特性:

  • 零代码模型开发: 用户可通过图形界面上传数据集、配置建模任务、训练模型并生成预测,无需写代码。
  • 自动化机器学习: 自动探索算法、执行特征工程、调参,并基于性能与业务指标对模型进行排名。
  • 内置可解释性: 提供全局与局部解释工具,包括特征影响、预测解释与合规就绪的报告。
  • 端到端 MLOps: 在同一平台内支持模型部署、监控、漂移检测、性能跟踪与再训练工作流。
  • 企业治理与安全: 提供基于角色的访问控制、审批工作流、审计日志与合规报告,面向受监管行业设计。

代码示例:

尽管 DataRobot 主要通过零代码界面使用,它也提供 Python API 以支持编程控制与自动化。下例展示如何与 DataRobot 认证、从数据集创建项目,并运行 AutoPilot 自动训练与评估模型。

import datarobot as dr
dr.Client(config_path="./drconfig.yaml")

dataset = dr.Dataset.create_from_file("auto-mpg.csv")

project = dr.Project.create_from_dataset(
    dataset.id,
    project_name="Auto MPG Project"
)

from datarobot import AUTOPILOT_MODE
project.analyze_and_model(
    target="mpg",
    mode=AUTOPILOT_MODE.QUICK
)

project.wait_for_autopilot()

9. Amazon SageMaker Autopilot

Amazon SageMaker Autopilot 是 AWS 提供的全托管 AutoML 解决方案,支持通过零代码或低代码方式自动化端到端机器学习工作流,尤其可在 Amazon SageMaker Canvas 或 SageMaker Studio 的 Web 界面中完成。

用户可在控制台中通过几次点击导入数据、配置目标变量、评估候选模型与部署模型;同时也提供 Python SDK 与 API 作为可选方式,以便结果可复现或与其他系统集成。

关键特性:

  • 基于 Web 的零代码工作流: 在 SageMaker Canvas 或 SageMaker Studio 的 Web 界面中,无需写代码即可完成数据集上传、实验配置、模型训练、评估与部署等任务。
  • 自动化数据分析与预处理: Autopilot 会识别问题类型、清洗与预处理数据并进行特征工程,为训练做好准备。
  • 模型选择与优化: 探索多种机器学习算法与调参以找到高性能模型,并在排行榜上进行排序。
  • 可解释性与洞察: 提供对生成模型的可见性,包括特征如何影响预测与模型间的对比表现。
  • 生产级部署: 可直接在界面中用最少步骤部署选定模型,生成推理端点。

代码示例: 

下方代码展示如何使用 Python SDK 以编程方式运行 Amazon SageMaker Autopilot。此方式为可选,用于结果复现或集成至自动化流水线。

from sagemaker import AutoML, AutoMLInput

automl = AutoML(
    role=execution_role,
    target_attribute_name=target_attribute_name,
    sagemaker_session=pipeline_session,
    total_job_runtime_in_seconds=3600,
    mode="ENSEMBLING",
)

automl.fit(
    inputs=[
        AutoMLInput(
            inputs=s3_train_val,
            target_attribute_name=target_attribute_name,
            channel_type="training",
        )
    ]
)

10. Google Cloud AutoML

Google Cloud AutoML 是 Vertex AI 的一部分,后者是 Google Cloud 的统一机器学习平台,帮助用户利用全托管基础设施构建、训练、评估与部署高质量模型。

Vertex AI AutoML 支持表格数据、自然语言处理、计算机视觉与视频任务,并设计为可在 Google Cloud Console 的零代码 Web 界面中使用。

 诸如创建数据集、选择任务、训练、评估与部署等核心步骤,均可在 UI 中无需编写任何代码完成。

关键特性:

  • 零代码 Web 界面: 用户可在 Vertex AI Console 内全程通过界面上传数据、配置 AutoML 任务、训练模型、查看指标并部署模型。
  • 多数据模态支持: 支持表格分类与回归、图像分类与检测、文本分类与抽取,以及视频分析。
  • 端到端训练自动化: Vertex AI AutoML 自动完成预处理、特征工程、模型结构选择与超参调优。
  • 托管基础设施: 所有训练与部署均运行在 Google 托管的基础设施上,内置伸缩与资源管理。
  • 面向生产的部署: 训练完成的模型可直接从 UI 部署为在线或批量预测的端点。

代码示例: 

尽管 Vertex AI AutoML 主要面向零代码工作流,也可通过 Python SDK 实现实验复现或将 AutoML 训练集成进自动化流水线。

以下简短代码片段初始化一个 Vertex AI 项目,从存储在 Cloud Storage 的 CSV 索引创建图像数据集,并启动 AutoML 图像训练任务。

from google.cloud import aiplatform

aiplatform.init(
    project="YOUR_PROJECT_ID",
    location="us-central1",
    staging_bucket="gs://YOUR_BUCKET",
)

dataset = aiplatform.ImageDataset.create(
    display_name="flowers",
    gcs_source=["gs://cloud-samples-data/ai-platform/flowers/flowers.csv"],
    import_schema_uri=aiplatform.schema.dataset.ioformat.image.single_label_classification,
)

training_job = aiplatform.AutoMLImageTrainingJob(
    display_name="flowers_automl",
    prediction_type="classification",
)

model = training_job.run(
    dataset=dataset,
    model_display_name="flowers_model",
    budget_milli_node_hours=8000,
)

AutoML 框架对比表

下表基于自动化程度、界面风格,以及其在开源试验、低代码工作流与企业级部署方面的适配性,比较了常见的 AutoML 框架。

框架

类别

代码程度

界面选项

主要用例

TPOT

开源

高

Python API

针对表格数据的自动化流水线发现与优化

AutoGluon

开源

低

Python API

跨多模态的快速、高精度、生产就绪模型

FLAML

开源

低

Python API

具备成本意识与资源感知的模型调优

AutoKeras

开源

中

Python API

神经架构搜索与深度学习自动化

PyCaret

低代码

极低

Python API,可选 GUI 工具

快速试验与面向分析的工作流

MLJAR Studio

零代码

无

Web UI,可选 Python

面向业务的 AutoML 试验与模型对比

H2O AutoML

混合

低

Web UI(H2O Flow)、Python、R

面向大数据集与企业部署的可扩展 AutoML

DataRobot

企业

无至低

Web UI、Python API

具备治理、可解释性与 MLOps 的企业级 ML

SageMaker Autopilot

企业

无至低

AWS 控制台、Python SDK

与生产流水线集成的原生 AWS AutoML

Google Cloud AutoML

企业

无

Vertex AI 控制台,可选 SDK

在 GCP 托管基础设施上的视觉、NLP 与表格 AutoML

结语

AutoML 框架已发展为支持整个机器学习生命周期的生产级工具。在实际场景中,它们并不限于试验或原型阶段。

我曾使用 AutoML 框架参加 Kaggle 竞赛、为真实项目构建完整的端到端机器学习流水线,甚至为技术面试做准备并取得成功。

从数据科学家的视角看,AutoML 是以极小成本建立强大且无偏基线模型的有力方式。

只需提供数据,这些框架就能完成特征工程、模型选择、超参调优与评估。这使实践者将精力聚焦于理解问题、验证假设与改进结果,而不是花费大量时间从零开始调研与测试模型。

AutoML 并不会取代专业能力。相反,它通过提供一个可靠的起点来加速工作流,随后可迭代改进。

构建模型只是第一步。通过MLOps 概念课程,学习如何在生产环境中部署并监控您的 AutoML 模型。

AutoML 常见问题

AutoML 会取代数据科学家吗?

不会。 AutoML 会自动化模型选择与超参数调优等重复性任务,但无法取代人的判断。数据科学家仍然至关重要:界定业务问题、解读结果、确保 AI 伦理合规,以及处理需要深厚领域知识的复杂特征工程。

AutoML 只适合非技术用户吗?

完全不是。 尽管“零代码”平台赋能业务分析师,许多 AutoML 框架(如 TPOT、AutoGluon 与 FLAML)是面向数据科学家的“代码优先”工具。专家使用它们快速建立基线模型,节省大量手工试错时间,从而专注于更高层次的优化。

什么时候应选择传统机器学习而非 AutoML?

当您需要对模型结构拥有绝对控制权、当数据高度非结构化或数据类型独特致使 AutoML 难以处理、或当“可解释性”至关重要且您必须明确知道模型为何作出某一预测(避免“黑箱”)时,请选择传统(手动)机器学习。

运行 AutoML 是否很昂贵?

视情况而定。 企业平台(如 Vertex AI 或 DataRobot)通常按计算时间或订阅档位计费,对于大数据集成本可能较高。然而,开源库(如 TPOT 或 H2O)可免费使用,您只需为运行它们的基础设施(本地电脑或云服务器)付费。

AutoML 能处理凌乱或原始数据吗?

在一定程度上是。 大多数 AutoML 工具能处理基本清洗,如填补缺失值或特征缩放。但它们通常无法修复根本性的数据质量问题(如错误标签或抽样偏差),也难以完成复杂、依赖领域知识的特征工程。“垃圾进,垃圾出”依然适用。

Abid Ali Awan

作者

Abid Ali Awan

作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

主题