Ada banyak pembahasan seputar algoritma pembelajaran mesin sekaligus kebutuhan akan para ahlinya. Kita semua tahu ada kesenjangan keterampilan yang cukup besar. Tujuan H2O adalah menyediakan platform yang memudahkan non-ahli untuk bereksperimen dengan pembelajaran mesin.
Arsitektur H2O dapat dibagi menjadi beberapa lapisan, di mana lapisan teratas adalah berbagai API, dan lapisan terbawah adalah H2O JVM.
Kode inti H2O ditulis dalam Java yang mengaktifkan seluruh kerangka kerja untuk multi-threading. Meskipun ditulis dalam Java, H2O menyediakan antarmuka untuk R, Python, dan beberapa lainnya seperti terlihat pada arsitektur, sehingga dapat digunakan secara efisien.
Intinya, H2O adalah perangkat lunak pembelajaran mesin dan analitik prediktif yang bersifat open source, in-memory, terdistribusi, cepat, dan skalabel, yang memungkinkan pembangunan model pembelajaran mesin menjadi lebih mudah.
Proses Instalasi
R
Jika Anda ingin menggunakan fungsionalitas H2O di R, Anda dapat dengan mudah memasang paket H2O menggunakan perintah install.packages("h2o").
##
## ----------------------------------------------------------------------
##
## Your next step is to start H2O:
## > h2o.init()
##
## For H2Opackage documentation, ask forhelp:
## >??h2o
##
## After starting H2O, you can use the Web UI at http://localhost:54321
## For more information visit http://docs.h2o.ai
##
## ----------------------------------------------------------------------
##
## Attaching package:'h2o'
## The following objects are masked from'package:stats':
##
## cor, sd,var
## The following objects are masked from'package:base':
##
## %*%,%in%,&&,||, apply,as.factor,as.numeric, colnames,
## colnames<-, ifelse, is.character, is.factor, is.numeric, log,
## log10, log1p, log2, round, signif, trunc
Didukung oleh
## Connection successful!
##
## R is connected to the H2Ocluster:
## H2O cluster uptime:32 minutes 57 seconds
## H2O cluster timezone: Asia/Kolkata
## H2O data parsing timezone:UTC
## H2O cluster version:3.20.0.2
## H2O cluster version age:3 months and 22 days !!!
## H2O cluster name: H2O_started_from_R_NSingh1_wou076
## H2O cluster total nodes:1
## H2O cluster total memory:1.55GB
## H2O cluster total cores:4
## H2O cluster allowed cores:4
## H2O cluster healthy:TRUE
## H2O Connection ip: localhost
## H2O Connection port:54321
## H2O Connection proxy:NA
## H2O Internal Security:FALSE
## H2OAPIExtensions: Algos, AutoML, Core V3, Core V4
## RVersion:R version 3.5.1(2018-07-02)Didukung oleh
Inisialisasi H2O mungkin memunculkan galat di sistem Anda jika Anda tidak memiliki JDK 64-bit. Jika masalah seperti itu muncul, silakan pasang JDK 64-bit terbaru; setelah itu akan berfungsi tanpa masalah.
Python
Jika Anda menggunakan Python, caranya sama: dari command line jalankan pip install -U h2o dan h2o akan dipasang untuk lingkungan Python Anda. Proses yang sama berlaku untuk menginisialisasi h2o.
Perintah h2o.init() cukup pintar dan melakukan banyak pekerjaan. Pertama, ia mencari instance h2o aktif sebelum memulai yang baru, dan hanya akan memulai yang baru ketika tidak ada instance yang berjalan.
Ada argumen yang membantu mengalokasikan sumber daya ke instance h2o; yang sering digunakan adalah:
nthreads: Secara default bernilai -1 yang berarti instance dapat menggunakan semua inti CPU. Kita dapat menetapkan jumlah inti yang digunakan dengan memberikan nilai pada argumen ini.
max_mem_size: Dengan memberikan nilai pada argumen ini Anda dapat membatasi memori maksimum yang dialokasikan ke instance. Tipe string; Anda dapat memberikan argumen seperti ‘2g’ atau ‘2G’ untuk 2 GB memori, sama halnya jika ingin mengalokasikan dalam MB.
Setelah instance dibuat, Anda dapat mengakses Flow dengan mengetik http://localhost:54321 di peramban Anda. Flow adalah nama antarmuka web yang merupakan bagian dari h2o, tidak memerlukan instalasi tambahan, dan ditulis dalam CoffeeScript (bahasa mirip JavaScript). Anda dapat menggunakannya untuk melakukan hal-hal berikut:
Mengunggah data secara langsung
Melihat data yang diunggah oleh klien
Membuat model secara langsung
Melihat model yang dibuat oleh Anda atau klien Anda
melihat prediksi
Menjalankan prediksi secara langsung
Antarmukanya cukup berguna dan memudahkan pengguna non-ahli. Saya menyarankan untuk mencobanya dan melakukan beberapa eksperimen sendiri.
AutoML
Sekarang tentang bagian AutoML dari H2O, AutoML membantu pelatihan dan penyetelan banyak model secara otomatis dalam batas waktu yang ditentukan pengguna.
Versi saat ini dari fungsi AutoML dapat melatih dan melakukan cross-validate Random Forest, Extremely-Randomized Forest, grid acak Gradient Boosting Machines (GBM), grid acak Deep Neural Nets, lalu melatih Stacked Ensemble menggunakan semua model tersebut.
Ketika kita menyebut AutoML, ia harus mencakup aspek persiapan data, pembuatan model, dan ensemble serta menyediakan sesedikit mungkin parameter agar pengguna dapat melakukan tugas dengan jauh lebih sedikit kebingungan. H2O AutoML melakukan tugas ini dengan mudah dengan parameter minimal yang diberikan pengguna.
Di API R maupun Python, digunakan argumen terkait data yang sama x, y, training_frame, validation frame di mana y dan training_frame adalah parameter wajib dan sisanya opsional. Anda juga dapat mengatur nilai untuk max_runtime_sec dan max_models; di sini parameter max_runtime_sec wajib, dan max_model opsional. Jika Anda tidak memberikan parameter, nilainya akan menjadi NULL secara default.
Parameter x adalah vektor prediktor dari training_frame. Jika Anda tidak ingin menggunakan semua prediktor dari frame yang Anda berikan, Anda dapat menentukannya dengan meneruskannya ke x.
Sekarang mari bahas beberapa parameter opsional dan lain-lain; cobalah mengutak-atik parameter meskipun Anda belum mengenalnya, ini akan membantu Anda mempelajari topik lanjutan:
validation_frame: Parameter ini digunakan untuk early stopping model individual dalam automl. Ini adalah dataframe yang Anda berikan untuk validasi model atau dapat menjadi bagian dari data pelatihan jika tidak Anda berikan.
leaderboard_frame: Jika diberikan, model akan diberi skor menurut nilai-nilai tersebut alih-alih menggunakan metrik cross-validation. Lagi-lagi nilainya akan menjadi bagian dari data pelatihan jika tidak Anda berikan.
nfolds: Cross-validation K-fold, default 5; dapat memengaruhi kinerja model.
fold_columns: Menentukan indeks untuk cross-validation.
weights_column: Jika Anda ingin memberikan bobot pada kolom tertentu Anda dapat menggunakan parameter ini; memberikan bobot 0 berarti Anda mengecualikan kolom tersebut.
ignored_columns: Hanya di Python, kebalikan dari x.
stopping_metric: Menentukan metrik untuk early stopping pada pencarian grid dan model; nilai default adalah logloss untuk klasifikasi dan deviance untuk regresi.
sort_metric: Parameter untuk mengurutkan model pada leaderboard di akhir. Defaultnya adalah AUC untuk klasifikasi biner, mean_per_class_error untuk klasifikasi multinomial, dan deviance untuk regresi.
Parameter validation_frame dan leaderboard_frame bergantung pada parameter cross-validation yaitu nfolds.
Skenario berikut dapat terjadi dalam dua kasus:
saat kita menggunakan cross-validation dalam automl: * Hanya training frame yang diberikan - Data akan dibagi 80-20 untuk training dan validation frame. * training dan leaderboard frame diberikan - Tidak ada perubahan pada pembagian 80-20 data pada training dan validation frame. * Saat training dan validation frame diberikan - Tidak ada pembagian. * saat ketiga frame diberikan - Tidak ada pembagian.
Saat kita tidak menggunakan cross-validation yang akan sangat memengaruhi leaderboard frame (nfolds = 0): * Hanya training frame yang diberikan - Data dibagi 80/10/10 untuk training, validation, dan leaderboard. * training dan leaderboard frame diberikan - Data dibagi 80-20 untuk training dan validation frame. * Saat training dan validation frame diberikan - Data validation_frame dibagi 50-50 untuk validation dan leaderboard. * saat ketiga frame diberikan - Tidak ada pembagian.
Implementasi di R dan Python
R
H2O mengimpor data sebagai Frame yang berbeda dari data frame yang kita gunakan di R dan Python untuk berbagai manipulasi.
##
|||0%||=================================================================|100%Didukung oleh
Menetapkan prediktor dan respons.
y <-"response"
x <- setdiff(names(train), y)Didukung oleh
Buat objek automl dengan memberikan parameter wajib. Kita hanya memberikan training frame, dan parameter nfolds menggunakan nilai default. Anda dapat menambah waktu jalan model sesuai kebutuhan.
train[,y]<- as.factor(train[,y])
aml <- h2o.automl(x = x, y = y,
training_frame = train,
max_runtime_secs =30)Didukung oleh
##
|||0%||=|1%||=|2%||==|3%||===|4%||===|5%||====|6%||=====|8%||======|9%||======|10%||========|13%||==========|15%||==========|16%||===========|16%||===========|17%||===========|18%||============|18%||==============================================================|95%||=================================================================|100%Didukung oleh
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Mengenal H2O
Ada banyak pembahasan seputar algoritma pembelajaran mesin sekaligus kebutuhan akan para ahlinya. Kita semua tahu ada kesenjangan keterampilan yang cukup besar. Tujuan H2O adalah menyediakan platform yang memudahkan non-ahli untuk bereksperimen dengan pembelajaran mesin.
Arsitektur H2O dapat dibagi menjadi beberapa lapisan, di mana lapisan teratas adalah berbagai API, dan lapisan terbawah adalah H2O JVM.
Kode inti H2O ditulis dalam Java yang mengaktifkan seluruh kerangka kerja untuk multi-threading. Meskipun ditulis dalam Java, H2O menyediakan antarmuka untuk R, Python, dan beberapa lainnya seperti terlihat pada arsitektur, sehingga dapat digunakan secara efisien.
Intinya, H2O adalah perangkat lunak pembelajaran mesin dan analitik prediktif yang bersifat open source, in-memory, terdistribusi, cepat, dan skalabel, yang memungkinkan pembangunan model pembelajaran mesin menjadi lebih mudah.
Proses Instalasi
R
Jika Anda ingin menggunakan fungsionalitas H2O di R, Anda dapat dengan mudah memasang paket H2O menggunakan perintah
install.packages("h2o").Inisialisasi H2O mungkin memunculkan galat di sistem Anda jika Anda tidak memiliki JDK 64-bit. Jika masalah seperti itu muncul, silakan pasang JDK 64-bit terbaru; setelah itu akan berfungsi tanpa masalah.
Python
Jika Anda menggunakan Python, caranya sama: dari command line jalankan
pip install -U h2odan h2o akan dipasang untuk lingkungan Python Anda. Proses yang sama berlaku untuk menginisialisasi h2o.Perintah h2o.init() cukup pintar dan melakukan banyak pekerjaan. Pertama, ia mencari instance h2o aktif sebelum memulai yang baru, dan hanya akan memulai yang baru ketika tidak ada instance yang berjalan.
Ada argumen yang membantu mengalokasikan sumber daya ke instance h2o; yang sering digunakan adalah:
nthreads: Secara default bernilai -1 yang berarti instance dapat menggunakan semua inti CPU. Kita dapat menetapkan jumlah inti yang digunakan dengan memberikan nilai pada argumen ini.
max_mem_size: Dengan memberikan nilai pada argumen ini Anda dapat membatasi memori maksimum yang dialokasikan ke instance. Tipe string; Anda dapat memberikan argumen seperti ‘2g’ atau ‘2G’ untuk 2 GB memori, sama halnya jika ingin mengalokasikan dalam MB.
Setelah instance dibuat, Anda dapat mengakses Flow dengan mengetik http://localhost:54321 di peramban Anda. Flow adalah nama antarmuka web yang merupakan bagian dari h2o, tidak memerlukan instalasi tambahan, dan ditulis dalam CoffeeScript (bahasa mirip JavaScript). Anda dapat menggunakannya untuk melakukan hal-hal berikut:
Antarmukanya cukup berguna dan memudahkan pengguna non-ahli. Saya menyarankan untuk mencobanya dan melakukan beberapa eksperimen sendiri.
AutoML
Sekarang tentang bagian AutoML dari H2O, AutoML membantu pelatihan dan penyetelan banyak model secara otomatis dalam batas waktu yang ditentukan pengguna.
Versi saat ini dari fungsi AutoML dapat melatih dan melakukan cross-validate Random Forest, Extremely-Randomized Forest, grid acak Gradient Boosting Machines (GBM), grid acak Deep Neural Nets, lalu melatih Stacked Ensemble menggunakan semua model tersebut.
Ketika kita menyebut AutoML, ia harus mencakup aspek persiapan data, pembuatan model, dan ensemble serta menyediakan sesedikit mungkin parameter agar pengguna dapat melakukan tugas dengan jauh lebih sedikit kebingungan. H2O AutoML melakukan tugas ini dengan mudah dengan parameter minimal yang diberikan pengguna.
Di API R maupun Python, digunakan argumen terkait data yang sama
x,y,training_frame,validation framedi manaydantraining_frameadalah parameter wajib dan sisanya opsional. Anda juga dapat mengatur nilai untukmax_runtime_secdanmax_models; di sini parametermax_runtime_secwajib, danmax_modelopsional. Jika Anda tidak memberikan parameter, nilainya akan menjadi NULL secara default.Parameter
xadalah vektor prediktor daritraining_frame. Jika Anda tidak ingin menggunakan semua prediktor dari frame yang Anda berikan, Anda dapat menentukannya dengan meneruskannya kex.Sekarang mari bahas beberapa parameter opsional dan lain-lain; cobalah mengutak-atik parameter meskipun Anda belum mengenalnya, ini akan membantu Anda mempelajari topik lanjutan:
validation_frame: Parameter ini digunakan untuk early stopping model individual dalam automl. Ini adalah dataframe yang Anda berikan untuk validasi model atau dapat menjadi bagian dari data pelatihan jika tidak Anda berikan.
leaderboard_frame: Jika diberikan, model akan diberi skor menurut nilai-nilai tersebut alih-alih menggunakan metrik cross-validation. Lagi-lagi nilainya akan menjadi bagian dari data pelatihan jika tidak Anda berikan.
nfolds: Cross-validation K-fold, default 5; dapat memengaruhi kinerja model.
fold_columns: Menentukan indeks untuk cross-validation.
weights_column: Jika Anda ingin memberikan bobot pada kolom tertentu Anda dapat menggunakan parameter ini; memberikan bobot 0 berarti Anda mengecualikan kolom tersebut.
ignored_columns: Hanya di Python, kebalikan dari
x.stopping_metric: Menentukan metrik untuk early stopping pada pencarian grid dan model; nilai default adalah logloss untuk klasifikasi dan deviance untuk regresi.
sort_metric: Parameter untuk mengurutkan model pada leaderboard di akhir. Defaultnya adalah AUC untuk klasifikasi biner, mean_per_class_error untuk klasifikasi multinomial, dan deviance untuk regresi.
Parameter validation_frame dan leaderboard_frame bergantung pada parameter cross-validation yaitu
nfolds.Skenario berikut dapat terjadi dalam dua kasus:
saat kita menggunakan cross-validation dalam automl: * Hanya training frame yang diberikan - Data akan dibagi 80-20 untuk training dan validation frame. * training dan leaderboard frame diberikan - Tidak ada perubahan pada pembagian 80-20 data pada training dan validation frame. * Saat training dan validation frame diberikan - Tidak ada pembagian. * saat ketiga frame diberikan - Tidak ada pembagian.
Saat kita tidak menggunakan cross-validation yang akan sangat memengaruhi leaderboard frame (nfolds = 0): * Hanya training frame yang diberikan - Data dibagi 80/10/10 untuk training, validation, dan leaderboard. * training dan leaderboard frame diberikan - Data dibagi 80-20 untuk training dan validation frame. * Saat training dan validation frame diberikan - Data validation_frame dibagi 50-50 untuk validation dan leaderboard. * saat ketiga frame diberikan - Tidak ada pembagian.
Implementasi di R dan Python
R
H2O mengimpor data sebagai Frame yang berbeda dari data frame yang kita gunakan di R dan Python untuk berbagai manipulasi.
Menetapkan prediktor dan respons.
Buat objek automl dengan memberikan parameter wajib. Kita hanya memberikan training frame, dan parameter nfolds menggunakan nilai default. Anda dapat menambah waktu jalan model sesuai kebutuhan.
Melihat leaderboard dari berbagai model.
Python
Jika Anda ingin belajar lebih lanjut di Python, ikuti kursus DataCamp Parallel Computing with Dask.