H2O - Cài đặt

H2O có thể được cấu hình và sử dụng với năm tùy chọn khác nhau như được liệt kê bên dưới:

  • Cài đặt bằng Python

  • Cài đặt trong R

  • GUI luồng dựa trên web

  • Hadoop

  • Đám mây Anaconda

Trong các phần tiếp theo của chúng tôi, bạn sẽ thấy hướng dẫn cài đặt H2O dựa trên các tùy chọn có sẵn. Bạn có thể sử dụng một trong các tùy chọn.

Cài đặt bằng Python

Để chạy H2O với Python, cài đặt yêu cầu một số phụ thuộc. Vì vậy, chúng ta hãy bắt đầu cài đặt bộ phụ thuộc tối thiểu để chạy H2O.

Cài đặt phụ thuộc

Để cài đặt phần phụ thuộc, hãy thực hiện lệnh pip sau:

$ pip install requests

Mở cửa sổ bảng điều khiển của bạn và gõ lệnh trên để cài đặt gói yêu cầu. Ảnh chụp màn hình sau đây cho thấy việc thực thi lệnh trên trên máy Mac của chúng tôi:

Sau khi cài đặt yêu cầu, bạn cần cài đặt thêm ba gói như hình dưới đây -

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

Danh sách các phụ thuộc được cập nhật mới nhất có trên trang H2O GitHub. Tại thời điểm viết bài này, các phần phụ thuộc sau được liệt kê trên trang.

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

Xóa các phiên bản cũ hơn

Sau khi cài đặt các phụ thuộc trên, bạn cần gỡ bỏ mọi cài đặt H2O hiện có. Để làm như vậy, hãy chạy lệnh sau:

$ pip uninstall h2o

Cài đặt phiên bản mới nhất

Bây giờ, chúng ta hãy cài đặt phiên bản mới nhất của H2O bằng lệnh sau:

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

Sau khi cài đặt thành công, bạn sẽ thấy thông báo sau hiển thị trên màn hình:

Installing collected packages: h2o
Successfully installed h2o-3.26.0.1

Kiểm tra cài đặt

Để kiểm tra cài đặt, chúng tôi sẽ chạy một trong các ứng dụng mẫu được cung cấp trong cài đặt H2O. Trước tiên, hãy bắt đầu lời nhắc Python bằng cách gõ lệnh sau:

$ Python3

Khi trình thông dịch Python khởi động, hãy nhập câu lệnh Python sau trên dấu nhắc lệnh Python:

>>>import h2o

Lệnh trên nhập gói H2O trong chương trình của bạn. Tiếp theo, khởi tạo hệ thống H2O bằng lệnh sau:

>>>h2o.init()

Màn hình của bạn sẽ hiển thị thông tin cụm và sẽ trông như sau ở giai đoạn này:

Bây giờ, bạn đã sẵn sàng để chạy mã mẫu. Gõ lệnh sau trên dấu nhắc Python và thực thi nó.

>>>h2o.demo("glm")

Bản demo bao gồm một sổ ghi chép Python với một loạt lệnh. Sau khi thực hiện mỗi lệnh, đầu ra của lệnh đó sẽ được hiển thị ngay lập tức trên màn hình và bạn sẽ được yêu cầu nhấn phím để tiếp tục bước tiếp theo. Ảnh chụp màn hình một phần về việc thực hiện câu lệnh cuối cùng trong sổ tay được hiển thị ở đây -

Ở giai đoạn này, quá trình cài đặt Python của bạn đã hoàn tất và bạn đã sẵn sàng cho thử nghiệm của riêng mình.

Cài đặt trong R

Cài đặt phát triển H2O cho R rất giống với cài đặt nó cho Python, ngoại trừ việc bạn sẽ sử dụng dấu nhắc R để cài đặt.

Khởi động bảng điều khiển R

Khởi động bảng điều khiển R bằng cách nhấp vào biểu tượng ứng dụng R trên máy của bạn. Màn hình điều khiển sẽ xuất hiện như trong ảnh chụp màn hình sau:

Cài đặt H2O của bạn sẽ được thực hiện trên dấu nhắc R ở trên. Nếu bạn thích sử dụng RStudio, hãy nhập các lệnh trong cửa sổ phụ bảng điều khiển R.

Xóa các phiên bản cũ hơn

Để bắt đầu, hãy xóa các phiên bản cũ hơn bằng lệnh sau trên dấu nhắc R:

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

Tải xuống phụ thuộc

Tải xuống các phụ thuộc cho H2O bằng đoạn mã sau:

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

Cài đặt H2O

Cài đặt H2O bằng cách gõ lệnh sau trên dấu nhắc R:

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

Ảnh chụp màn hình sau đây cho thấy đầu ra dự kiến:

Có một cách khác để cài đặt H2O trong R.

Cài đặt trong R từ CRAN

Để cài đặt R từ CRAN, hãy sử dụng lệnh sau trên dấu nhắc R:

> install.packages("h2o")

Bạn sẽ được yêu cầu chọn gương -

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

Một hộp thoại hiển thị danh sách các trang nhân bản được hiển thị trên màn hình của bạn. Chọn vị trí gần nhất hoặc gương bạn chọn.

Thử nghiệm cài đặt

Trên dấu nhắc R, nhập và chạy đoạn mã sau:

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

Đầu ra được tạo sẽ như trong ảnh chụp màn hình sau:

Quá trình cài đặt H2O trong R của bạn đã hoàn tất.

Cài đặt Luồng GUI Web

Để cài đặt GUI Flow, hãy tải xuống tệp cài đặt từ trang H20. Giải nén tệp đã tải xuống trong thư mục ưa thích của bạn. Lưu ý sự hiện diện của tệp h2o.jar trong cài đặt. Chạy tệp này trong cửa sổ lệnh bằng lệnh sau:

$ java -jar h2o.jar

Sau một lúc, phần sau sẽ xuất hiện trong cửa sổ bảng điều khiển của bạn.

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:

Để bắt đầu Luồng, hãy mở URL đã cho http://localhost:54321trong trình duyệt của bạn. Màn hình sau sẽ xuất hiện:

Ở giai đoạn này, quá trình cài đặt Flow của bạn đã hoàn tất.

Cài đặt trên Hadoop / Anaconda Cloud

Trừ khi bạn là một nhà phát triển dày dạn kinh nghiệm, bạn sẽ không nghĩ đến việc sử dụng H2O trên Dữ liệu lớn. Ở đây đủ để nói rằng các mô hình H2O chạy hiệu quả trên cơ sở dữ liệu khổng lồ vài terabyte. Nếu dữ liệu của bạn nằm trên cài đặt Hadoop hoặc trong Đám mây, hãy làm theo các bước được cung cấp trên trang H2O để cài đặt nó cho cơ sở dữ liệu tương ứng của bạn.

Bây giờ bạn đã cài đặt và thử nghiệm thành công H2O trên máy tính của mình, bạn đã sẵn sàng để phát triển thực sự. Đầu tiên, chúng ta sẽ thấy sự phát triển từ Command prompt. Trong các bài học tiếp theo, chúng ta sẽ học cách thực hiện kiểm tra mô hình trong H2O Flow.

Phát triển trong Command Prompt

Bây giờ chúng ta hãy xem xét việc sử dụng H2O để phân loại thực vật của bộ dữ liệu mống mắt nổi tiếng được cung cấp miễn phí để phát triển các ứng dụng Học máy.

Khởi động trình thông dịch Python bằng cách nhập lệnh sau vào cửa sổ shell của bạn:

$ Python3

Điều này khởi động trình thông dịch Python. Nhập nền tảng h2o bằng lệnh sau:

>>> import h2o

Chúng tôi sẽ sử dụng thuật toán Rừng ngẫu nhiên để phân loại. Điều này được cung cấp trong gói H2ORandomForestEstimator. Chúng tôi nhập gói này bằng cách sử dụng câu lệnh nhập như sau:

>>> from h2o.estimators import H2ORandomForestEstimator

Chúng tôi khởi tạo môi trường H2o bằng cách gọi phương thức init của nó.

>>> h2o.init()

Khi khởi tạo thành công, bạn sẽ thấy thông báo sau trên bảng điều khiển cùng với thông tin cụm.

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

Bây giờ, chúng ta sẽ nhập dữ liệu mống mắt bằng phương thức import_file trong H2O.

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

Tiến trình sẽ hiển thị như trong ảnh chụp màn hình sau:

Sau khi tệp được tải vào bộ nhớ, bạn có thể xác minh điều này bằng cách hiển thị 10 hàng đầu tiên của bảng đã tải. Bạn sử dụnghead phương pháp để làm như vậy -

>>> data.head()

Bạn sẽ thấy kết quả sau ở định dạng bảng.

Bảng cũng hiển thị tên cột. Chúng tôi sẽ sử dụng bốn cột đầu tiên làm các tính năng cho thuật toán ML của chúng tôi và lớp cột cuối cùng làm kết quả dự đoán. Chúng tôi chỉ định điều này trong lệnh gọi đến thuật toán ML của chúng tôi bằng cách tạo hai biến sau.

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

Tiếp theo, chúng tôi chia dữ liệu thành đào tạo và thử nghiệm bằng cách gọi phương thức split_frame.

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

Dữ liệu được chia theo tỷ lệ 80:20. Chúng tôi sử dụng 80% dữ liệu để đào tạo và 20% để thử nghiệm.

Bây giờ, chúng tôi tải mô hình Rừng Ngẫu nhiên được tích hợp sẵn vào hệ thống.

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

Trong lệnh gọi trên, chúng ta đặt số lượng cây là 50, độ sâu tối đa của cây là 20 và số lần gấp để xác nhận chéo là 10. Bây giờ chúng ta cần đào tạo mô hình. Chúng tôi làm như vậy bằng cách gọi phương thức train như sau:

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

Phương thức train nhận các đặc trưng và đầu ra mà chúng ta đã tạo trước đó dưới dạng hai tham số đầu tiên. Tập dữ liệu đào tạo được thiết lập để đào tạo, là 80% trong tập dữ liệu đầy đủ của chúng tôi. Trong quá trình đào tạo, bạn sẽ thấy sự tiến bộ như được hiển thị ở đây -

Bây giờ, khi quá trình xây dựng mô hình đã kết thúc, đã đến lúc thử nghiệm mô hình. Chúng tôi thực hiện việc này bằng cách gọi phương thức model_performance trên đối tượng mô hình được đào tạo.

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

Trong lệnh gọi phương thức ở trên, chúng tôi đã gửi dữ liệu thử nghiệm dưới dạng tham số của chúng tôi.

Bây giờ là lúc để xem đầu ra, đó là hiệu suất của mô hình của chúng tôi. Bạn thực hiện việc này bằng cách in hiệu suất.

>>> print (performance)

Điều này sẽ cung cấp cho bạn kết quả sau:

Kết quả đầu ra cho thấy Lỗi hình vuông trung bình (MSE), Lỗi hình vuông gốc trung bình (RMSE), LogLoss và thậm chí cả Ma trận nhầm lẫn.

Chạy trong Jupyter

Chúng ta đã thấy việc thực thi lệnh và cũng hiểu mục đích của từng dòng mã. Bạn có thể chạy toàn bộ mã trong môi trường Jupyter, từng dòng một hoặc toàn bộ chương trình cùng một lúc. Danh sách đầy đủ được đưa ra ở đây -

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)

Chạy mã và quan sát đầu ra. Bây giờ bạn có thể đánh giá cao mức độ dễ dàng áp dụng và thử nghiệm thuật toán Rừng ngẫu nhiên trên tập dữ liệu của mình. Sức mạnh của H20 vượt xa khả năng này. Điều gì sẽ xảy ra nếu bạn muốn thử một mô hình khác trên cùng một tập dữ liệu để xem liệu bạn có thể đạt được hiệu suất tốt hơn hay không. Điều này được giải thích trong phần tiếp theo của chúng tôi.

Áp dụng một thuật toán khác

Bây giờ, chúng ta sẽ học cách áp dụng thuật toán Gradient Boosting cho tập dữ liệu trước đó của chúng ta để xem nó hoạt động như thế nào. Trong danh sách đầy đủ ở trên, bạn sẽ chỉ cần thực hiện hai thay đổi nhỏ như được đánh dấu trong đoạn mã bên dưới -

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)

Chạy mã và bạn sẽ nhận được kết quả sau:

Chỉ cần so sánh kết quả như MSE, RMSE, Ma trận nhầm lẫn, v.v. với kết quả đầu ra trước đó và quyết định sử dụng kết quả nào để triển khai sản xuất. Trên thực tế, bạn có thể áp dụng một số thuật toán khác nhau để quyết định chọn thuật toán tốt nhất đáp ứng mục đích của bạn.