H2O - 自動機器學習



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

匯入 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

顯然,DeepLearning 演算法獲得了最高分。

在測試資料上進行預測

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

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.