H2O 快速指南



H2O - 簡介

您是否曾被要求在一個巨大的資料庫上開發機器學習模型?通常,客戶會提供資料庫並要求您進行某些預測,例如誰可能是潛在買家;是否可以提前發現欺詐案件等。為了回答這些問題,您的任務是開發一個機器學習演算法來回答客戶的查詢。從零開始開發機器學習演算法並非易事,而且當市場上有多個現成的機器學習庫可用時,為什麼要這樣做呢?

如今,您更傾向於使用這些庫,從這些庫中應用經過良好測試的演算法並檢視其效能。如果效能未達到可接受的限制,則可以嘗試微調當前演算法或嘗試完全不同的演算法。

同樣,您可以在同一資料集上嘗試多種演算法,然後選擇最能滿足客戶需求的演算法。這就是 H2O 派上用場的地方。它是一個開源機器學習框架,包含對幾種廣泛接受的 ML 演算法的全面測試實現。您只需從其龐大的儲存庫中選擇演算法並將其應用於您的資料集即可。它包含最常用的統計和 ML 演算法。

這裡僅舉幾例,它包括梯度提升機 (GBM)、廣義線性模型 (GLM)、深度學習等等。不僅如此,它還支援 AutoML 功能,該功能將對您資料集上不同演算法的效能進行排名,從而減少您查詢最佳效能模型的工作量。H2O 被全球超過 18000 個組織使用,並與 R 和 Python 良好地互動,方便您進行開發。它是一個記憶體平臺,提供卓越的效能。

在本教程中,您將首先學習使用 Python 和 R 選項在您的機器上安裝 H2O。我們將瞭解如何在命令列中使用它,以便您逐行理解其工作原理。如果您是 Python 愛好者,您可以使用 Jupyter 或任何其他您選擇的 IDE 來開發 H2O 應用程式。如果您更喜歡 R,則可以使用 RStudio 進行開發。

在本教程中,我們將考慮一個示例來了解如何使用 H2O。我們還將學習如何在程式程式碼中更改演算法並將其效能與之前的演算法進行比較。H2O 還提供了一個基於 Web 的工具來測試資料集上的不同演算法。這稱為 Flow。

本教程將向您介紹 Flow 的使用方法。同時,我們將討論 AutoML 的使用,它將識別您資料集上效能最佳的演算法。您是不是很興奮地學習 H2O?繼續閱讀!

H2O - 安裝

H2O 可以使用以下五個不同的選項進行配置和使用:

  • 在 Python 中安裝

  • 在 R 中安裝

  • 基於 Web 的 Flow GUI

  • Hadoop

  • Anaconda Cloud

在接下來的章節中,您將看到基於可用選項的 H2O 安裝說明。您可能會使用其中一個選項。

在 Python 中安裝

要使用 Python 執行 H2O,安裝需要多個依賴項。因此,讓我們開始安裝執行 H2O 的最小依賴項集。

安裝依賴項

要安裝依賴項,請執行以下 pip 命令:

$ pip install requests

開啟您的控制檯視窗並鍵入上述命令以安裝 requests 包。以下螢幕截圖顯示了在我們的 Mac 機器上執行上述命令的情況:

Installing Dependencies

安裝 requests 後,您需要安裝另外三個包,如下所示:

$ pip install tabulate
$ pip install "colorama >= 0.3.8"
$ pip install future

H2O GitHub 頁面上提供了最新的依賴項列表。在撰寫本文時,頁面上列出了以下依賴項。

python 2. H2O — Installation
pip >= 9.0.1
setuptools
colorama >= 0.3.7
future >= 0.15.2

刪除舊版本

安裝上述依賴項後,您需要刪除任何現有的 H2O 安裝。為此,請執行以下命令:

$ pip uninstall h2o

安裝最新版本

現在,讓我們使用以下命令安裝最新版本的 H2O:

$ pip install -f http://h2o-release.s3.amazonaws.com/h2o/latest_stable_Py.html h2o

安裝成功後,您應該會看到螢幕上顯示以下訊息:

Installing collected packages: h2o
Successfully installed h2o-3.26.0.1

測試安裝

為了測試安裝,我們將執行 H2O 安裝中提供的示例應用程式之一。首先透過鍵入以下命令啟動 Python 提示符:

$ Python3

Python 直譯器啟動後,在 Python 命令提示符下鍵入以下 Python 語句:

>>>import h2o

上述命令將 H2O 包匯入您的程式。接下來,使用以下命令初始化 H2O 系統:

>>>h2o.init()

您的螢幕將顯示叢集資訊,在此階段應如下所示:

Testing Installation

現在,您可以執行示例程式碼了。在 Python 提示符下鍵入以下命令並執行它。

>>>h2o.demo("glm")

該演示包含一個 Python 筆記本,其中包含一系列命令。執行每個命令後,其輸出會立即顯示在螢幕上,系統會要求您按鍵盤上的鍵以繼續下一步。此處顯示執行筆記本中最後一條語句時的部分螢幕截圖:

Python notebook

在此階段,您的 Python 安裝已完成,您可以開始自己的實驗了。

在 R 中安裝

安裝 H2O 用於 R 開發與安裝它用於 Python 非常相似,只是您將使用 R 提示符進行安裝。

啟動 R 控制檯

透過單擊機器上的 R 應用程式圖示啟動 R 控制檯。控制檯螢幕將如下圖所示:

Starting R Console

您的 H2O 安裝將在上述 R 提示符下完成。如果您更喜歡使用 RStudio,請在 R 控制檯子視窗中鍵入命令。

刪除舊版本

首先,使用以下命令在 R 提示符下刪除舊版本:

> if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
> if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }

下載依賴項

使用以下程式碼下載 H2O 的依賴項:

> pkgs <- c("RCurl","jsonlite")
for (pkg in pkgs) {
   if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) }
}

安裝 H2O

在 R 提示符下鍵入以下命令安裝 H2O:

> install.packages("h2o", type = "source", repos = (c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R")))

以下螢幕截圖顯示了預期的輸出:

Installing H2O

還有另一種在 R 中安裝 H2O 的方法。

從 CRAN 安裝 R

要從 CRAN 安裝 R,請在 R 提示符下使用以下命令:

> install.packages("h2o")

系統會要求您選擇映象:

--- Please select a CRAN mirror for use in this session ---
Install CRAN

螢幕上將顯示一個顯示映象站點列表的對話方塊。選擇最近的位置或您選擇的映象。

測試安裝

在 R 提示符下,鍵入並執行以下程式碼:

> library(h2o)
> localH2O = h2o.init()
> demo(h2o.kmeans)

生成的輸出將如下圖所示:

Prompt Type

您在 R 中的 H2O 安裝現已完成。

安裝 Web GUI Flow

要安裝 GUI Flow,請從 H20 站點下載安裝檔案。將下載的檔案解壓縮到您首選的資料夾中。請注意安裝中存在 h2o.jar 檔案。使用以下命令在命令視窗中執行此檔案:

$ java -jar h2o.jar

一段時間後,您的控制檯視窗中將出現以下內容。

07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO: H2O started in 7725ms
07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO:
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO: Open H2O Flow in your web browser: http://192.168.1.18:54321
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO:

要啟動 Flow,請在瀏覽器中開啟給定的 URL **https://:54321**。將出現以下螢幕:

Web GUI Flow

在此階段,您的 Flow 安裝已完成。

在 Hadoop/Anaconda Cloud 上安裝

除非您是經驗豐富的開發者,否則您不會考慮在 Big Data 上使用 H2O。在這裡,足以說明 H2O 模型在數 TB 的大型資料庫上高效執行。如果您的資料位於您的 Hadoop 安裝或雲中,請按照 H2O 站點上給出的步驟為您的資料庫安裝它。

現在您已成功在您的機器上安裝和測試 H2O,您可以進行真正的開發了。首先,我們將看到從命令提示符開始的開發。在我們接下來的課程中,我們將學習如何在 H2O Flow 中進行模型測試。

在命令提示符下進行開發

現在讓我們考慮使用 H2O 對眾所周知的 iris 資料集的植物進行分類,該資料集可免費用於開發機器學習應用程式。

透過在 shell 視窗中鍵入以下命令啟動 Python 直譯器:

$ Python3

這將啟動 Python 直譯器。使用以下命令匯入 h2o 平臺:

>>> import h2o

我們將使用 Random Forest 演算法進行分類。這在 H2ORandomForestEstimator 包中提供。我們使用 import 語句匯入此包,如下所示:

>>> from h2o.estimators import H2ORandomForestEstimator

我們透過呼叫其 init 方法來初始化 H2o 環境。

>>> h2o.init()

初始化成功後,您應該會在控制檯上看到以下訊息以及叢集資訊。

Checking whether there is an H2O instance running at https://:54321 . connected.

現在,我們將使用 H2O 中的 import_file 方法匯入 iris 資料。

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

進度將如下圖所示:

Developing Command Prompt

將檔案載入到記憶體後,您可以透過顯示載入表的前面 10 行來驗證這一點。您可以使用 **head** 方法來做到這一點:

>>> data.head()

您將在表格格式中看到以下輸出。

tabular format

該表還顯示列名。我們將使用前四列作為我們 ML 演算法的特徵,並將最後一列 class 作為預測輸出。我們首先建立以下兩個變數,在對 ML 演算法的呼叫中指定這一點。

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

接下來,我們透過呼叫 split_frame 方法將資料分成訓練集和測試集。

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

資料以 80:20 的比例分割。我們使用 80% 的資料進行訓練,20% 的資料進行測試。

現在,我們將內建的 Random Forest 模型載入到系統中。

>>> model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)

在上面的呼叫中,我們將樹的數量設定為 50,樹的最大深度設定為 20,交叉驗證的摺疊數設定為 10。我們現在需要訓練模型。我們透過呼叫 train 方法來做到這一點,如下所示:

>>> model.train(x = features, y = output, training_frame = train)

train 方法接收我們之前建立的特徵和輸出作為前兩個引數。訓練資料集設定為 train,這是我們完整資料集的 80%。在訓練期間,您將看到如下所示的進度:

現在,模型構建過程完成後,是時候測試模型了。我們透過對經過訓練的模型物件呼叫 model_performance 方法來做到這一點。

>>> performance = model.model_performance(test_data=test)

在上述方法呼叫中,我們將測試資料作為引數傳送。

現在是檢視輸出的時候了,輸出就是我們模型的效能。你可以透過簡單地列印效能來實現。

>>> print (performance)

這將給你以下輸出:

Model Building Process

輸出顯示均方誤差 (MSE)、均方根誤差 (RMSE)、LogLoss 甚至混淆矩陣。

在 Jupyter 中執行

我們已經看到了命令列中的執行過程,也理解了每一行程式碼的目的。你可以在 Jupyter 環境中執行整個程式碼,可以一行一行地執行,也可以一次執行整個程式。完整的程式碼清單如下:

import h2o
from h2o.estimators import H2ORandomForestEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios=[0.8])
model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data=test)
print (performance)

執行程式碼並觀察輸出。現在你可以體會到在你的資料集上應用和測試隨機森林演算法是多麼容易。H2O 的功能遠不止於此。如果你想在相同的資料集上嘗試另一個模型以檢視是否可以獲得更好的效能,該怎麼辦?這將在我們後面的章節中解釋。

應用不同的演算法

現在,我們將學習如何將梯度提升演算法應用於我們之前的資料集,以檢視它的效能。在上文的完整程式碼清單中,你只需要進行如下程式碼中突出顯示的兩個小改動:

import h2o 
from h2o.estimators import H2OGradientBoostingEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios = [0.8]) 
model = H2OGradientBoostingEstimator
(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data = test)
print (performance)

執行程式碼,你將得到以下輸出:

Different Algorithm

只需將 MSE、RMSE、混淆矩陣等結果與之前的輸出進行比較,然後決定使用哪個模型進行生產部署。事實上,你可以應用多種不同的演算法來決定最符合你目的的演算法。

H2O - 流程

在上一課中,你學習瞭如何使用命令列介面建立基於 H2O 的機器學習模型。H2O Flow 具有相同的功能,但它使用的是基於 Web 的介面。

在接下來的課程中,我將向你展示如何啟動 H2O Flow 並執行一個示例應用程式。

啟動 H2O Flow

你之前下載的 H2O 安裝包包含 h2o.jar 檔案。要啟動 H2O Flow,首先從命令提示符執行此 jar 檔案:

$ java -jar h2o.jar

jar 檔案成功執行後,你將在控制檯上看到以下訊息:

Open H2O Flow in your web browser: http://192.168.1.10:54321

現在,開啟你選擇的瀏覽器,然後鍵入上述 URL。你將看到如下所示的 H2O 基於 Web 的桌面:

Starting H2O Flow

這基本上是一個類似於 Colab 或 Jupyter 的筆記本。我將向你展示如何在該筆記本中載入和執行示例應用程式,同時解釋 Flow 中的各種功能。點選上述螢幕上的“檢視示例 Flows”連結以檢視提供的示例列表。

我將描述示例中的“航空公司延誤 Flow”示例。

H2O - 執行示例應用程式

點選示例列表中的“航空公司延誤 Flow”連結,如下圖所示:

Sample Application

確認後,將載入新的筆記本。

清除所有輸出

在我們解釋筆記本中的程式碼語句之前,讓我們清除所有輸出,然後逐步執行筆記本。要清除所有輸出,請選擇以下選單選項:

Flow / Clear All Cell Contents

如下圖所示:

Clearing Outputs

清除所有輸出後,我們將分別執行筆記本中的每個單元格並檢查其輸出。

執行第一個單元格

點選第一個單元格。左側會出現一個紅色標記,表示該單元格已被選中。如下圖所示:

First Cell

此單元格的內容只是用 MarkDown (MD) 語言編寫的程式註釋。內容描述了已載入的應用程式的功能。要執行單元格,請點選“執行”圖示,如下圖所示:

MarkDown

你不會在單元格下方看到任何輸出,因為當前單元格中沒有可執行程式碼。游標現在會自動移動到下一個單元格,該單元格已準備好執行。

匯入資料

下一個單元格包含以下 Python 語句:

importFiles ["https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv"]

該語句將 allyears2k.csv 檔案從 Amazon AWS 匯入系統。執行單元格時,它會匯入檔案並給你以下輸出。

Statement Imports

設定資料解析器

現在,我們需要解析資料並使其適合我們的機器學習演算法。這可以使用以下命令完成:

setupParse paths: [ "https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv" ]

執行上述語句後,將出現一個設定配置對話方塊。該對話方塊允許你進行多種檔案解析設定。如下圖所示:

configuration dialog

在此對話方塊中,你可以從給定的下拉列表中選擇所需的解析器,並設定其他引數,例如欄位分隔符等。

解析資料

實際上使用上述配置解析資料檔案的下一個語句很長,如下所示:

parseFiles
paths: ["https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv"]
destination_frame: "allyears2k.hex"
parse_type: "CSV"
separator: 44
number_columns: 31
single_quotes: false
column_names: ["Year","Month","DayofMonth","DayOfWeek","DepTime","CRSDepTime",
   "ArrTime","CRSArrTime","UniqueCarrier","FlightNum","TailNum",
   "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
   "Origin","Dest","Distance","TaxiIn","TaxiOut","Cancelled","CancellationCode",
   "Diverted","CarrierDelay","WeatherDelay","NASDelay","SecurityDelay",
   "LateAircraftDelay","IsArrDelayed","IsDepDelayed"]
column_types: ["Enum","Enum","Enum","Enum","Numeric","Numeric","Numeric"
   ,"Numeric","Enum","Enum","Enum","Numeric","Numeric","Numeric","Numeric",
   "Numeric","Enum","Enum","Numeric","Numeric","Numeric","Enum","Enum",
   "Numeric","Numeric","Numeric","Numeric","Numeric","Numeric","Enum","Enum"]
delete_on_done: true
check_header: 1
chunk_size: 4194304

請注意,你在配置框中設定的引數已列在上述程式碼中。現在,執行此單元格。一段時間後,解析完成,你將看到以下輸出:

configuration box

檢查資料框

處理後,它會生成一個數據框,可以使用以下語句檢查:

getFrameSummary "allyears2k.hex"

執行上述語句後,你將看到以下輸出:

DatExamining aframe

現在,你的資料已準備好輸入機器學習演算法。

下一個語句是一個程式註釋,它說明我們將使用迴歸模型並指定預設正則化和 lambda 值。

構建模型

接下來是最重要的語句,即構建模型本身。這在以下語句中指定:

buildModel 'glm', {
   "model_id":"glm_model","training_frame":"allyears2k.hex",
   "ignored_columns":[
      "DayofMonth","DepTime","CRSDepTime","ArrTime","CRSArrTime","TailNum",
      "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
      "TaxiIn","TaxiOut","Cancelled","CancellationCode","Diverted","CarrierDelay",
      "WeatherDelay","NASDelay","SecurityDelay","LateAircraftDelay","IsArrDelayed"],
   "ignore_const_cols":true,"response_column":"IsDepDelayed","family":"binomial",
   "solver":"IRLSM","alpha":[0.5],"lambda":[0.00001],"lambda_search":false,
   "standardize":true,"non_negative":false,"score_each_iteration":false,
   "max_iterations":-1,"link":"family_default","intercept":true,
   "objective_epsilon":0.00001,"beta_epsilon":0.0001,"gradient_epsilon":0.0001,
   "prior":-1,"max_active_predictors":-1
}

我們使用 glm,這是一個廣義線性模型套件,其族型別設定為二項式。你可以在上述語句中看到這些高亮顯示的部分。在我們的例子中,預期輸出是二進位制的,這就是我們使用二項式型別的原因。你可以自己檢查其他引數;例如,檢視我們之前指定的 alpha 和 lambda。請參考 GLM 模型文件以瞭解所有引數的解釋。

現在,執行此語句。執行後,將生成以下輸出:

Generated aframe

當然,你的機器上的執行時間會有所不同。現在,這是此示例程式碼中最有趣的部分。

檢查輸出

我們使用以下語句簡單地輸出我們構建的模型:

getModel "glm_model"

請注意,glm_model 是我們在前面語句中構建模型時作為 model_id 引數指定的模型 ID。這給了我們一個巨大的輸出,詳細說明了具有多個不同引數的結果。報告的部分輸出如下圖所示:

Examining Output

正如你在輸出中看到的,它說明這是在你的資料集上執行廣義線性建模演算法的結果。

在“評分歷史”上方,你會看到“模型引數”標籤,展開它,你將看到構建模型時使用的所有引數列表。如下圖所示。

Scoring History

同樣,每個標籤都提供特定型別的詳細輸出。自己展開各個標籤以研究不同型別的輸出。

構建另一個模型

接下來,我們將基於我們的資料框構建一個深度學習模型。示例程式碼中的下一條語句只是一個程式註釋。以下語句實際上是一個模型構建命令。如下所示:

buildModel 'deeplearning', {
   "model_id":"deeplearning_model","training_frame":"allyear
   s2k.hex","ignored_columns":[
      "DepTime","CRSDepTime","ArrTime","CRSArrTime","FlightNum","TailNum",
      "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
      "TaxiIn","TaxiOut","Cancelled","CancellationCode","Diverted",
      "CarrierDelay","WeatherDelay","NASDelay","SecurityDelay",
      "LateAircraftDelay","IsArrDelayed"],
   "ignore_const_cols":true,"res   ponse_column":"IsDepDelayed",
   "activation":"Rectifier","hidden":[200,200],"epochs":"100",
   "variable_importances":false,"balance_classes":false,
   "checkpoint":"","use_all_factor_levels":true,
   "train_samples_per_iteration":-2,"adaptive_rate":true,
   "input_dropout_ratio":0,"l1":0,"l2":0,"loss":"Automatic","score_interval":5,
   "score_training_samples":10000,"score_duty_cycle":0.1,"autoencoder":false,
   "overwrite_with_best_model":true,"target_ratio_comm_to_comp":0.02,
   "seed":6765686131094811000,"rho":0.99,"epsilon":1e-8,"max_w2":"Infinity",
   "initial_weight_distribution":"UniformAdaptive","classification_stop":0,
   "diagnostics":true,"fast_mode":true,"force_load_balance":true,
   "single_node_mode":false,"shuffle_training_data":false,"missing_values_handling":
   "MeanImputation","quiet_mode":false,"sparse":false,"col_major":false,
   "average_activation":0,"sparsity_beta":0,"max_categorical_features":2147483647,
   "reproducible":false,"export_weights_and_biases":false
}

正如你在上述程式碼中看到的,我們指定 deeplearning 來構建模型,並將多個引數設定為深度學習模型文件中指定的適當值。執行此語句時,它將比 GLM 模型構建花費更長時間。模型構建完成後,你將看到以下輸出,儘管計時不同。

Building Another Model

檢查深度學習模型輸出

這會生成一種輸出,可以使用以下語句進行檢查,就像之前的例子一樣。

getModel "deeplearning_model"

我們將考慮如下圖所示的 ROC 曲線輸出以供快速參考。

Deep Learning

與之前的案例一樣,展開各個選項卡並研究不同的輸出。

儲存模型

研究了不同模型的輸出後,你決定在生產環境中使用其中一個模型。H20 允許你將此模型儲存為 POJO(普通舊 Java 物件)。

展開輸出中的最後一個標籤“預覽 POJO”,你將看到你微調模型的 Java 程式碼。在生產環境中使用它。

Saving Model

接下來,我們將學習 H2O 的一個非常令人興奮的功能。我們將學習如何使用 AutoML 來測試和排名各種演算法的效能。

H2O - AutoML

要使用 AutoML,請啟動一個新的 Jupyter 筆記本並按照以下步驟操作。

匯入 AutoML

首先使用以下兩條語句將 H2O 和 AutoML 包匯入專案:

import h2o
from h2o.automl import H2OAutoML

初始化 H2O

使用以下語句初始化 h2o:

h2o.init()

你應該在螢幕上看到叢集資訊,如下圖所示:

Cluster Information

我們將使用你在本教程中前面使用過的相同 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),直到你得到以下輸出:

Max Runtime Secs

列印排行榜

AutoML 處理完成後,它會建立一個排行榜,對它評估的所有 30 種演算法進行排名。要檢視排行榜的前 10 條記錄,請使用以下程式碼:

lb = aml.leaderboard
lb.head()

執行後,上述程式碼將生成以下輸出:

Leaderboard

顯然,深度學習演算法獲得了最高分。

在測試資料上進行預測

現在,您已經對模型進行了排名,您可以檢視頂級模型在測試資料上的效能。為此,請執行以下程式碼語句:

preds = aml.predict(test)

處理過程將持續一段時間,完成後您將看到以下輸出。

Test Data

列印結果

使用以下語句列印預測結果:

print (preds)

執行上述語句後,您將看到以下結果:

Printing Result

列印所有演算法的排名

如果您想檢視所有測試演算法的排名,請執行以下程式碼語句:

lb.head(rows = lb.nrows)

執行上述語句後,將生成以下輸出(部分顯示):

Printing Rank

結論

H2O 提供了一個易於使用的開源平臺,用於在給定的資料集上應用不同的機器學習演算法。它提供了多種統計和機器學習演算法,包括深度學習。在測試過程中,您可以微調這些演算法的引數。您可以使用命令列或提供的基於 Web 的介面 Flow 來實現這一點。H2O 還支援 AutoML,該功能可以根據演算法的效能對其進行排名。H2O 在大資料上的效能也很好。這對於資料科學家在其資料集上應用不同的機器學習模型並選擇最符合其需求的模型無疑是一個福音。

廣告
© . All rights reserved.