H2O - การติดตั้ง
H2O สามารถกำหนดค่าและใช้กับห้าตัวเลือกที่แตกต่างกันตามรายการด้านล่าง -
ติดตั้งใน Python
ติดตั้งใน R
Flow GUI บนเว็บ
Hadoop
เมฆอนาคอนดา
ในส่วนต่อไปคุณจะเห็นคำแนะนำสำหรับการติดตั้ง H2O ตามตัวเลือกที่มี คุณมีแนวโน้มที่จะใช้ตัวเลือกใดตัวเลือกหนึ่ง
ติดตั้งใน Python
ในการรัน H2O ด้วย Python การติดตั้งจำเป็นต้องมีการอ้างอิงหลายอย่าง ดังนั้นให้เราเริ่มติดตั้งชุดการอ้างอิงขั้นต่ำเพื่อเรียกใช้ H2O
การติดตั้งการอ้างอิง
ในการติดตั้งการอ้างอิงให้ดำเนินการคำสั่ง pip ต่อไปนี้ -
$ pip install requests
เปิดหน้าต่างคอนโซลของคุณและพิมพ์คำสั่งด้านบนเพื่อติดตั้งแพ็คเกจคำขอ ภาพหน้าจอต่อไปนี้แสดงการทำงานของคำสั่งดังกล่าวบนเครื่อง Mac ของเรา -
หลังจากติดตั้งคำขอคุณต้องติดตั้งแพ็คเกจเพิ่มเติมอีกสามแพ็คเกจดังที่แสดงด้านล่าง -
$ 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()
หน้าจอของคุณจะแสดงข้อมูลคลัสเตอร์และควรมีลักษณะดังต่อไปนี้ในขั้นตอนนี้ -
ตอนนี้คุณพร้อมที่จะรันโค้ดตัวอย่างแล้ว พิมพ์คำสั่งต่อไปนี้บนพรอมต์ Python และดำเนินการ
>>>h2o.demo("glm")
การสาธิตประกอบด้วยโน้ตบุ๊ก Python พร้อมชุดคำสั่งต่างๆ หลังจากดำเนินการแต่ละคำสั่งผลลัพธ์จะปรากฏบนหน้าจอทันทีและคุณจะถูกขอให้กดปุ่มเพื่อดำเนินการต่อในขั้นตอนต่อไป ภาพหน้าจอบางส่วนในการดำเนินการคำสั่งสุดท้ายในสมุดบันทึกจะแสดงที่นี่ -
ในขั้นตอนนี้การติดตั้ง Python ของคุณเสร็จสมบูรณ์และคุณพร้อมสำหรับการทดลองของคุณเอง
ติดตั้งใน R
การติดตั้ง H2O สำหรับการพัฒนา R นั้นคล้ายกับการติดตั้งสำหรับ Python มากยกเว้นว่าคุณจะใช้ R prompt ในการติดตั้ง
เริ่ม R Console
เริ่มคอนโซล R โดยคลิกที่ไอคอนแอปพลิเคชัน R บนเครื่องของคุณ หน้าจอคอนโซลจะปรากฏดังที่แสดงในภาพหน้าจอต่อไปนี้ -
การติดตั้ง H2O ของคุณจะทำได้ในพรอมต์ R ด้านบน หากคุณต้องการใช้ RStudio ให้พิมพ์คำสั่งในหน้าต่างย่อย R console
การลบเวอร์ชันที่เก่ากว่า
ในการเริ่มต้นให้ลบเวอร์ชันเก่าโดยใช้คำสั่งต่อไปนี้ในพรอมต์ 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
ติดตั้ง H2O โดยพิมพ์คำสั่งต่อไปนี้บนพรอมต์ R -
> install.packages("h2o", type = "source", repos = (c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R")))
ภาพหน้าจอต่อไปนี้แสดงผลลัพธ์ที่คาดหวัง -
มีอีกวิธีหนึ่งในการติดตั้ง H2O ใน R
ติดตั้งใน R จาก CRAN
ในการติดตั้ง R จาก CRAN ให้ใช้คำสั่งต่อไปนี้บน R prompt -
> install.packages("h2o")
คุณจะถูกขอให้เลือกกระจก -
--- Please select a CRAN mirror for use in this session ---
กล่องโต้ตอบที่แสดงรายการมิเรอร์ไซต์จะปรากฏบนหน้าจอของคุณ เลือกตำแหน่งที่ใกล้ที่สุดหรือกระจกที่คุณเลือก
การทดสอบการติดตั้ง
ในพรอมต์ R พิมพ์และเรียกใช้รหัสต่อไปนี้ -
> library(h2o)
> localH2O = h2o.init()
> demo(h2o.kmeans)
ผลลัพธ์ที่สร้างขึ้นจะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้ -
การติดตั้ง H2O ใน R ของคุณเสร็จสมบูรณ์แล้ว
การติดตั้ง 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 ที่กำหนด http://localhost:54321ในเบราว์เซอร์ของคุณ หน้าจอต่อไปนี้จะปรากฏขึ้น -
ในขั้นตอนนี้การติดตั้ง Flow ของคุณเสร็จสมบูรณ์
ติดตั้งบน Hadoop / Anaconda Cloud
หากคุณไม่ได้เป็นนักพัฒนามืออาชีพคุณคงไม่คิดที่จะใช้ H2O กับ Big Data ก็เพียงพอแล้วที่จะกล่าวได้ว่าโมเดล H2O ทำงานได้อย่างมีประสิทธิภาพบนฐานข้อมูลขนาดใหญ่หลายเทราไบต์ หากข้อมูลของคุณอยู่ในการติดตั้ง Hadoop หรือในระบบคลาวด์ให้ทำตามขั้นตอนที่ให้ไว้ในไซต์ H2O เพื่อติดตั้งสำหรับฐานข้อมูลของคุณ
ตอนนี้คุณได้ติดตั้งและทดสอบ H2O บนเครื่องของคุณเรียบร้อยแล้วคุณก็พร้อมสำหรับการพัฒนาจริง ขั้นแรกเราจะเห็นการพัฒนาจากพรอมต์คำสั่ง ในบทเรียนต่อไปเราจะได้เรียนรู้วิธีการทดสอบโมเดลใน H2O Flow
การพัฒนาใน Command Prompt
ตอนนี้ให้เราพิจารณาใช้ H2O เพื่อจำแนกพืชของชุดข้อมูลไอริสที่รู้จักกันดีซึ่งมีให้ใช้งานฟรีสำหรับการพัฒนาแอปพลิเคชัน Machine Learning
เริ่มตัวแปล Python โดยพิมพ์คำสั่งต่อไปนี้ในหน้าต่างเชลล์ของคุณ -
$ Python3
สิ่งนี้เริ่มต้นล่าม Python นำเข้าแพลตฟอร์ม h2o โดยใช้คำสั่งต่อไปนี้ -
>>> import h2o
เราจะใช้อัลกอริทึม Random Forest ในการจำแนก สิ่งนี้มีให้ในแพ็คเกจ H2ORandomForestEstimator เรานำเข้าแพ็คเกจนี้โดยใช้คำสั่งนำเข้าดังต่อไปนี้ -
>>> from h2o.estimators import H2ORandomForestEstimator
เราเริ่มต้นสภาพแวดล้อม H2o โดยเรียกใช้วิธีการเริ่มต้น
>>> h2o.init()
เมื่อเริ่มต้นสำเร็จคุณควรเห็นข้อความต่อไปนี้บนคอนโซลพร้อมกับข้อมูลคลัสเตอร์
Checking whether there is an H2O instance running at http://localhost:54321 . connected.
ตอนนี้เราจะนำเข้าข้อมูลม่านตาโดยใช้เมธอด import_file ใน H2O
>>> 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 ตอนนี้เราจำเป็นต้องฝึกโมเดล เราทำได้โดยเรียกวิธีการรถไฟดังนี้ -
>>> model.train(x = features, y = output, training_frame = train)
เมธอด train ได้รับคุณสมบัติและเอาต์พุตที่เราสร้างขึ้นก่อนหน้านี้เป็นพารามิเตอร์สองตัวแรก ชุดข้อมูลการฝึกอบรมได้รับการตั้งค่าให้ฝึกอบรมซึ่งเป็น 80% ของชุดข้อมูลทั้งหมดของเรา ในระหว่างการฝึกคุณจะเห็นความคืบหน้าดังที่แสดงไว้ที่นี่ -
ขณะนี้กระบวนการสร้างแบบจำลองสิ้นสุดลงแล้วก็ได้เวลาทดสอบแบบจำลอง เราทำได้โดยเรียกเมธอด model_performance บนอ็อบเจ็กต์โมเดลที่ได้รับการฝึกฝน
>>> performance = model.model_performance(test_data=test)
ในการเรียกใช้วิธีการข้างต้นเราได้ส่งข้อมูลทดสอบเป็นพารามิเตอร์ของเรา
ได้เวลาดูผลลัพธ์ซึ่งก็คือประสิทธิภาพของโมเดลของเรา คุณทำได้โดยเพียงแค่พิมพ์ประสิทธิภาพ
>>> print (performance)
สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้ -
ผลลัพธ์จะแสดงค่า Mean Square Error (MSE), Root Mean Square Error (RMSE), LogLoss และแม้แต่ Confusion Matrix
วิ่งใน 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)
รันโค้ดและสังเกตผลลัพธ์ ตอนนี้คุณสามารถใช้งานและทดสอบอัลกอริทึม Random Forest บนชุดข้อมูลของคุณได้ง่ายเพียงใด พลังของ H20 ไปไกลกว่าความสามารถนี้ จะเกิดอะไรขึ้นหากคุณต้องการลองใช้โมเดลอื่นในชุดข้อมูลเดียวกันเพื่อดูว่าคุณจะได้รับประสิทธิภาพที่ดีขึ้นหรือไม่ นี่คือคำอธิบายในส่วนถัดไปของเรา
การใช้อัลกอริทึมที่แตกต่างกัน
ตอนนี้เราจะเรียนรู้วิธีการใช้อัลกอริธึม Gradient Boosting กับชุดข้อมูลก่อนหน้าของเราเพื่อดูว่ามันทำงานอย่างไร ในรายชื่อทั้งหมดข้างต้นคุณจะต้องทำการเปลี่ยนแปลงเล็กน้อยเพียงสองรายการตามที่ไฮไลต์ไว้ในโค้ดด้านล่าง -
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, Confusion Matrix และอื่น ๆ กับผลลัพธ์ก่อนหน้านี้และตัดสินใจว่าจะใช้ผลลัพธ์ใดสำหรับการปรับใช้การผลิต ตามความเป็นจริงคุณสามารถใช้อัลกอริธึมต่างๆเพื่อตัดสินใจเลือกสิ่งที่ดีที่สุดที่ตรงตามวัตถุประสงค์ของคุณ