使用 TPOT 自动化机器学习
内容
实时笔记本
你可以在 live session 中运行这个笔记本,或者在 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)