機器學習底層原理(聽說H2O能讓大家都會用機器學習)
2023-08-04 10:51:08 2
點擊上方關注,All in AI中國
各行業中的人工智慧技術已經逐漸落地,為了社會和經濟的穩定發展,普及人工智慧越來越重要。
H2O是一個開源分布式內存機器學習平臺。關於H2O的研究和實驗,本文作者已經有豐富的經驗,並且發現它在解決ML問題上具有非常直觀的效果。所以,本文的目的是為了讓人們了解在排行榜排名出色但並不為人所熟悉的H2O。
H2O.AI:H2O背後的公司
H2O.AI位於加利福尼亞州的山景城,能夠提供關於機器學習的平臺。 H2O的核心優勢在於其緊密集成的高性能ML組件。 在2019年1月發布的報告中,H2O.AI是Gartner數據科學平臺中最具前景的公司之一。
來源: Gartner ( 2019年1月)
讓我們簡單介紹一下H2O.AI的產品:
H2O.AI的產品和解決方案
H2O
H2O是一個開源的分布式內存機器學習平臺,具有線性可擴展性。 H2O支持最廣泛使用的統計和機器學習算法,並且還具有AutoML功能。 H2O的核心代碼是由Java編寫的,它的REST API允許從外部程序或腳本訪問H2O的所有功能。 該平臺包括用於R、python、Scala、Java、JSON和CoffeeScript / JavaScript的接口,以及內置的Web界面。
H2O Sparkling Water
Sparkling Water允許用戶將快速、可擴展的H2O機器學習算法與Spark的功能相結合。 Sparkling Water非常適合需要管理大型集群以滿足其數據處理需求並希望將數據從Spark傳輸到H2O(或反向傳輸數據)的用戶。
H2O4GPU
H2O4GPU是一個開源的GPU加速機器學習包,包含Python和R中的API,允許任何人利用GPU構建高級機器學習模型。
H2O無人駕駛AI
無人駕駛AI的用戶界面
H2O無人駕駛AI是H2O.ai自動機器學習的旗艦產品。 它可以完全自動化應用數據科學中一些最具挑戰性和最高效的任務,如特徵工程、模型調整、模型集成和模型部署。藉助無人駕駛人工智慧,所有熟練程度的數據科學家只需點擊幾下GUI即可訓練和部署建模管道。 無人駕駛AI是一種商業許可產品,具有21天免費試用版。
什麼是H2O
H2O-3是H2O最新版本。 H2O使用用戶熟悉的界面如R、Python、Scala、Java、JSON和Flow notebook/ Web界面,並與Hadoop和Spark等大數據技術無縫協作。 H2O可以通過更快,更好的預測建模,輕鬆快速地從數據中獲取洞察力。
高級架構
H2O可以從多個源導入數據,並且具有Java的快速、可擴展和分布式計算引擎。 以下是該平臺的高級概述。
H2O的高級架構
支持的算法
H2O支持許多常用的機器學習算法。
Algorithms supported by H2O
安裝
H2O提供了一個可以從CRAN安裝的R包和一個可以從PyPI安裝的python包。 在本文中只使用Python安裝包。
先決條件
Python
本步驟需要Java 7或更高版本。 要構建H2O或運行H2O測試,需要64位JDK。 要使用命令行,R或Python包運行H2O二進位文件,只需要64位JRE。
依賴性:
pip安裝
Conda
注意:在OS X El Capitan中從pip安裝H2O時,用戶必須包含—user標誌。例如,
測試安裝
每個新的python會話都是從初始化python客戶端和H2O集群之間的連接開始的。 集群是一組協同工作的H2O節點; 將作業提交到群集時,群集中的所有節點都會處理作業的一部分。
要檢查一切是否到位,請打開Jupyter筆記本並輸入以下內容:
這是一個本地H2O集群。 在執行單元格時,一些信息將以表格格式列印在屏幕上,其中包括節點數、總內存、Python版本等等。如果您需要報告錯誤,請確保包含以上所有信息。 此外,h2o.init要確保沒有先前的H2O實例正在運行。
Running h2o.init (in Python)
默認情況下,H2O實例使用所有核心和系統內存的大約25%。 但是,如果您希望為其分配一塊固定的內存,可以在init函數中指定它。 假設我們想給H2O實例提供4GB內存,它應該只使用2個內核。
#Allocate resources
h2o.init(nthreads=2,max_mem_size=4)
現在我們的H2O實例僅使用2個內核和大約4GB的內存。 但是,我們還是要使用默認方法。
在Python中使用H2O導入數據
安裝成功後,我們就可以繼續處理真實數據集了。我們將使用著名的wine數據集處理一個問題:在給定一組特徵作為輸入的情況下,以0-10的等級預測白葡萄酒的質量。
數據
該數據屬於葡萄牙「Vinho Verde」葡萄酒的白色變種。
來源:
https://archive.ics.uci.edu/ml/datasets/Wine Quality
CSV文件:
(https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv)。
數據導入
從本地CSV文件導入數據。 該命令與pandas.read_csv非常相似,數據作為H2OFrame存儲在內存中。
Displaying the first 5 rows of the dataset
EDA
讓我們繼續研究數據集以獲得一些結果。
數據集的一些列
這裡的所有特性都是用數字展現的,沒有任何分類變量。現在讓我們來看看各個特徵的相關性。
用H2O建模
我們將建立一個回歸模型來預測葡萄酒的質量。 H2O模塊中有許多算法可用於分類和回歸問題。
將數據拆分為測試和訓練集
由於我們只有一個數據集,因此我們將其分為訓練和測試部分,以便我們可以評估模型的性能。這一步可以使用split_frame函數。
定義預測變量
廣義線性模型
我們將使用默認設置構建廣義線性模型(GLM)。 廣義線性模型(GLM)預測結果服從指數分布的回歸模型。 除了高斯(即正常)分布之外,還包括泊松分布、二項分布和伽馬分布。
GLM模型在訓練集上的參數
現在,讓我們檢查模型在測試數據集上的性能。
做預測
使用GLM模型對測試數據集進行預測。
同樣,您可以使用其他監督算法,如分布式隨機森林、梯度增強機器甚至深度學習,您還可以調整超參數。
H2OAutoML:自動機器學習
自動機器學習(AutoML)是將機器學習應用於現實問題的端到端流程自動化的過程。 AutoML使真正意義上的機器學習成為可能,即使對於在該領域沒有專業知識的人能應用。 H2O的AutoML傾向於自動化模型的訓練和調整部分。
H2O AutoML:可用的Algos
在本節中,我們將使用H2O的自動功能來處理預測葡萄酒質量的相同回歸問題。
導入AutoML模塊
這裡AutoML將運行10個基本模型,持續100秒。默認運行時間為1小時。
訓練
排行榜
現在讓我們看看自動排名榜。
AutoML 排行榜
排行榜顯示的是由AutoML構建的前10個模型及其參數。 最好的模型是Stacked Ensemble。
將最好的模型存儲為aml.leader。
單個模型的貢獻
讓我們看看單個模型的貢獻。
XRT(極端隨機樹)具有最大貢獻,其次是分布式隨機森林。
預測
關閉
使用Flow - H2O的Web UI
最後,讓我們快速概述一下名為Flow的H2O開源Web UI。 FLow是一個基於Web的交互式計算環境,您可以將代碼執行、文本、數學、繪圖和富媒體組合到單個文檔中,就像Jupyter筆記本一樣。
啟動FLOW
Launching H2O flow
一旦H2O啟動並運行,您需要做的就是將瀏覽器轉到http:// localhost:54321,然後您將看到名為Flow的用戶界面。
Flow界面
以下是Flow界面的快速瀏覽。
H2O的Flow界面
Flow旨在幫助數據科學家快速輕鬆地創建模型、導入文件、拆分數據框、並完成需要大量人工操作的工作。
運行
讓我們通過我們相同的葡萄酒示例,但這次使用Flow。
結論
H2O是功能強大的工具,它可以真正改變數據科學過程。 AI的功能和優勢應該提供給每個人,而不是少數人。 這是機器學習大眾化的真正本質,數據科學對於解決現實社會的真實威脅來說至關重要。
編譯出品
,