使用 TPOT 自动化机器学习

实时笔记本

你可以在 live session Binder 中运行这个笔记本,或者在 Github 上查看它。

使用 TPOT 自动化机器学习

这个示例展示了如何将 TPOT 与 Dask 一起使用。

TPOT 是一个 自动化机器学习 库。它评估许多 scikit-learn 管道和超参数组合,以找到一个适合您数据的模型。评估所有这些计算在计算上是昂贵的,但适合并行化。TPOT 可以使用 Dask 在机器集群上分布这些计算。

这个笔记本可以在 dask 示例绑定器 上进行交互式运行。以下视频展示了在集群上运行的这个笔记本的更大版本。

[ ]:
from IPython.display import YouTubeVideo

YouTubeVideo("uyx9nBuOYQQ")
[ ]:
import tpot
from tpot import TPOTClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split

设置 Dask

我们首先启动一个 Dask 客户端,以便访问 Dask 仪表板,该仪表板将提供进度和性能指标。

您可以在运行单元格后点击仪表板链接来查看仪表板。

[ ]:
from dask.distributed import Client
client = Client(n_workers=4, threads_per_worker=1)
client

创建数据

我们将使用数字数据集。为了确保示例运行迅速,我们将使训练数据集相对较小。

[ ]:
digits = load_digits()

X_train, X_test, y_train, y_test = train_test_split(
    digits.data,
    digits.target,
    train_size=0.05,
    test_size=0.95,
)

这些只是小型的、内存中的 NumPy 数组。此示例不适用于大于内存的 Dask 数组。

使用 Dask

TPOT 遵循 scikit-learn API;我们用一些超参数指定一个 TPOTClassifier,然后在一些数据上进行拟合。默认情况下,TPOT 在你的单机上进行训练。为了确保使用你的集群,请指定 use_dask 关键字。

[ ]:
# scale up: Increase the TPOT parameters like population_size, generations
tp = TPOTClassifier(
    generations=2,
    population_size=10,
    cv=2,
    n_jobs=-1,
    random_state=0,
    verbosity=0,
    config_dict=tpot.config.classifier_config_dict_light,
    use_dask=True,
)
[ ]:
tp.fit(X_train, y_train)

了解更多

有关使用 Dask 和 TPOT 的更多信息,请参阅 Dask-MLTPOT 文档。