水可以配置和使用五種不同的選項,如下所示;
在Python中安裝
安裝在R中
基於Web的流GUI
哈多普。
水蟒雲
在我們隨後的章節中,您將看到基於可用選項的H2O安裝說明。您可能會使用其中一個選項。
在Python中安裝
要使用Python運行H2O,安裝需要幾個依賴項。所以讓我們開始安裝運行H2O的最小依賴集。
Installing Dependencies
要安裝依賴項,請執行以下pip命令−
$ pip install requests
打開控制台窗口並鍵入以上命令以安裝請求包。下面的螢幕截圖顯示了上述命令在我們的Mac機器上的執行情況;
安裝完請求後,您需要再安裝三個包,如下所示;
$ pip install tabulate $ pip install "colorama >= 0.3.8" $ pip install future
最新的依賴項列表可以在H2OGithub頁面上找到。撰寫本文時,頁面上列出了以下依賴項。
python 2. H2O — Installation pip >= 9.0.1 setuptools colorama >= 0.3.7 future >= 0.15.2
Removing Older Versions
安裝上述依賴項後,需要刪除任何現有的H2O安裝。爲此,請運行以下命令−
$ pip uninstall h2o
Installing the Latest Version
現在,讓我們使用以下命令安裝最新版本的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
Testing the Installation
爲了測試安裝,我們將運行H2O安裝中提供的一個示例應用程式。首先輸入以下命令啓動Python提示符−
$ Python3
一旦Python解釋器啓動,在Python命令提示符下鍵入以下Python語句−
>>>import h2o
上面的命令在程序中導入H2O包。接下來,使用以下命令初始化水系統−
>>>h2o.init()
您的螢幕將顯示集羣信息,在這個階段您應該查看以下內容&負;
現在,您可以運行示例代碼了。在Python提示符下鍵入以下命令並執行它。
>>>h2o.demo("glm")
演示由一個Python筆記本和一系列命令組成。執行每個命令後,其輸出將立即顯示在螢幕上,並要求您按鍵以繼續下一步。執行筆記本中最後一條語句的部分螢幕截圖如下所示;
在這個階段,Python安裝已經完成,您已經準備好進行自己的實驗了。
安裝在R中
爲R開發安裝H2O與爲Python安裝它非常相似,只是您將使用R prompt進行安裝。
Starting R Console
單擊機器上的R應用程式圖標啓動R控制台。控制台螢幕如下圖所示;
您的水安裝將在上述R提示下完成。如果您喜歡使用RStudio,請在R console子窗口中鍵入命令。
Removing Older Versions
首先,在R提示符下使用以下命令刪除舊版本−
> if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) } > if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }
Downloading Dependencies
使用以下代碼下載H2O的依賴項−
> pkgs <- c("RCurl","jsonlite") for (pkg in pkgs) { if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) } }
Installing H2O
在R提示符下鍵入以下命令安裝H2O−
> install.packages("h2o", type = "source", repos = (c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R")))
下面的螢幕截圖顯示了預期的輸出;
有另一種方法可以在R中安裝水。
安裝在R中 from CRAN
要從CRAN安裝R,請在R提示符下使用以下命令−
> install.packages("h2o")
您將被要求選擇鏡子−
--- Please select a CRAN mirror for use in this session ---
螢幕上將顯示一個顯示鏡像站點列表的對話框。選擇最近的位置或您選擇的鏡像。
Testing Installation
在R提示符下,鍵入並運行以下代碼−
> library(h2o) > localH2O = h2o.init() > demo(h2o.kmeans)
生成的輸出將如以下螢幕截圖所示;
你在R的水裝置現在已經完成了。
Installing Web GUI Flow
要安裝GUI流,請從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:
要啓動流,請在瀏覽器中打開給定的URLhttp://localhost:54321。將出現以下螢幕−
在此階段,流安裝已完成。
Install on 哈多普。 / 水蟒雲
Unless you are a seasoned developer, you would not think of using H2O on Big Data. It is sufficient to say here that H2O models run efficiently on huge databases of several terabytes. If your data is on your 哈多普。 installation or in the Cloud, follow the steps given on H2O site to install it for your respective database.
既然您已經成功地在您的機器上安裝並測試了H2O,您就可以進行真正的開發了。首先,我們將從命令提示符看到開發過程。在接下來的課程中,我們將學習如何在水流量下進行模型測試。
Developing in Command Prompt
現在,讓我們考慮使用H2O對知名iris數據集的植物進行分類,該數據集可免費用於開發機器學習應用程式。
在shell窗口中鍵入以下命令來啓動Python解釋器−
$ Python3
這將啓動Python解釋器。使用以下命令導入h2o平台−
>>> import h2o
我們將使用隨機森林算法進行分類。這在H2ORandomForestEstimator包中提供。我們使用如下的import語句導入這個包;
>>> from h2o.estimators import H2ORandomForestEstimator
我們通過調用其init方法來初始化H2o環境。
>>> h2o.init()
成功初始化後,您應該會在控制台上看到以下消息以及集羣信息。
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
現在,我們將在H2O中使用import_file方法導入iris數據。
>>> data = h2o.import_file('iris.csv')
進度將顯示在下面的螢幕截圖中;
將文件加載到內存中後,可以通過顯示加載表的前10行來驗證這一點。您可以使用head方法來執行此操作;
>>> data.head()
您將看到以下表格格式的輸出。
該表還顯示列名。我們將使用前四列作爲ML算法的特性,使用最後一列類作爲預測輸出。我們在對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%用於測試。
現在,我們將內置的隨機森林模型加載到系統中。
>>> 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)
這將爲您提供以下輸出&負;
輸出顯示均方誤差(MSE)、均方根誤差(RMSE)、對數損失甚至混淆矩陣。
Running in 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)
運行代碼並觀察輸出。現在您可以理解在數據集上應用和測試隨機林算法是多麼容易。H20的威力遠遠超過這個能力。如果您想在同一個數據集上嘗試另一個模型,看看是否可以獲得更好的性能,該怎麼辦。這將在後面的章節中解釋。
Applying a Different Algorithm
現在,我們將學習如何將梯度增強算法應用到早期的數據集中,以了解其性能。在上面的完整列表中,您只需要做兩個小的更改,如下代碼中突出顯示的−
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)
運行該代碼,您將得到以下輸出−
只需將結果(如MSE、RMSE、混淆矩陣等)與先前的輸出進行比較,並決定將哪個結果用於生產部署。事實上,你可以應用幾種不同的算法來決定最適合你的目標。