H2o 简明教程

H2O - AutoML

要使用 AutoML,请启动一个新的 Jupyter 笔记本,并遵循如下步骤。

Importing AutoML

首先使用以下两个语句将 H2O 和 AutoML 软件包导入项目中:

import h2o
from h2o.automl import H2OAutoML

Initialize H2O

使用以下语句初始化 h2o:

h2o.init()

您应该可以在屏幕上看到集群信息,如下方的截图所示:

cluster information

Loading Data

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

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

Preparing Dataset

我们需要决定特征和预测列。我们使用前例中相同的特征和预测列。使用以下两个语句设定特征和输出列:

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

以 80:20 的比例将数据分为训练集和测试集:

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

Applying 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 为指示预测值 的输出变量,并指定数据帧为 train 数据集。

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

max runtime secs

Printing the Leaderboard

当 AutoML 处理完成后,它会创建排行榜,对评估过的 30 个算法进行分级。若要查看排行榜前 10 条记录,请使用以下代码 −

lb = aml.leaderboard
lb.head()

执行时,上述代码将生成以下输出 −

leaderboard

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

Predicting on Test Data

现在,您对模型进行了排名,可以在测试数据上查看排名前列模型的性能。要执行此操作,请运行以下代码语句 −

preds = aml.predict(test)

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

test data

Printing Result

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

print (preds)

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

printing result

Printing the Ranking for All

如果要查看所有已测试算法的排名,请运行以下代码语句 −

lb.head(rows = lb.nrows)

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

printing rank

Conclusion

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