H2O-AutoML


要使用 AutoML,请启动新的 Jupyter 笔记本并按照以下步骤操作。

导入 AutoML

首先使用以下两条语句将 H2O 和 AutoML 包导入到项目中 -

import h2o
from h2o.automl import H2OAutoML

初始化水

使用以下语句初始化 h2o -

h2o.init()

您应该在屏幕上看到集群信息,如下面的屏幕截图所示 -

集群信息

加载数据中

我们将使用您在本教程前面使用的相同的 iris.csv 数据集。使用以下语句加载数据 -

data = h2o.import_file('iris.csv')

准备数据集

我们需要决定特征和预测列。我们使用与之前的案例相同的特征和预测列。使用以下两个语句设置功能和输出列 -

features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'

以 80:20 的比例分割数据进行训练和测试 -

train, test = data.split_frame(ratios=[0.8])

应用 AutoML

现在,我们已准备好在数据集上应用 AutoML。AutoML 将运行我们设置的固定时间,并为我们提供优化的模型。我们使用以下语句设置 AutoML -

aml = H2OAutoML(max_models = 30, max_runtime_secs=300, seed = 1)

第一个参数指定我们要评估和比较的模型的数量。

第二个参数指定算法运行的时间。

我们现在调用 AutoML 对象上的 train 方法,如下所示 -

aml.train(x = features, y = output, training_frame = train)

我们将 x 指定为之前创建的特征数组,将 y 指定为输出变量以指示预测值,将数据帧指定为训练数据集。

运行代码,您必须等待 5 分钟(我们将 max_runtime_secs 设置为 300),直到获得以下输出 -

最大运行时间秒

打印排行榜

AutoML 处理完成后,它会创建一个排行榜,对它评估过的所有 30 种算法进行排名。要查看排行榜的前 10 条记录,请使用以下代码 -

lb = aml.leaderboard
lb.head()

执行后,上述代码将生成以下输出 -

排行榜

显然,DeepLearning 算法获得了最高分。

根据测试数据进行预测

现在,您已经对模型进行了排名,您可以在测试数据上查看排名最高的模型的性能。为此,请运行以下代码语句 -

preds = aml.predict(test)

处理会持续一段时间,完成后您将看到以下输出。

测试数据

打印结果

使用以下语句打印预测结果 -

print (preds)

执行上述语句后,您将看到以下结果 -

打印结果

打印所有人的排名

如果您想查看所有测试算法的排名,请运行以下代码语句 -

lb.head(rows = lb.nrows)

执行上述语句后,将生成以下输出(部分显示) -

印刷等级

结论

H2O 提供了一个易于使用的开源平台,用于在给定数据集上应用不同的 ML 算法。它提供了多种统计和机器学习算法,包括深度学习。在测试过程中,您可以微调这些算法的参数。您可以使用命令行或提供的名为 Flow 的基于 Web 的界面来执行此操作。H2O 还支持 AutoML,它可以根据性能对多种算法进行排名。H2O 在大数据方面也表现出色。对于数据科学家来说,这绝对是一个福音,可以在他们的数据集上应用不同的机器学习模型,并选择最好的模型来满足他们的需求。