Distribuirano strojno učenje kroz H2O

Big data / Rudarenje podataka

Distribuirano strojno učenje kroz H2O

Sve veća količina podataka koja se generira u internetskom dobu zahtjeva i robusnije sustave koji se moraju suočiti s obradom i analizom takvih podataka. Jedan od njih je i H2O sustav. H2O je distribuirani in-memory engine za strojno učenje koji daje novu vrijednost u izradi prediktivnih modela nad velikom količinom podataka. H2O uklanje nedostatke data mining aplikacija kao što su IBM SPSS Modeler, KNIME ili Rapid Miner koje ponekad nisu najefikasnije pri izradi prediktivnih modela nad velikom količinom podataka.

H2O ima sličnu arhitekturu kao i Hadoop, što znači da se H2O algoritmi za strojno učenje mogu pokretati na više nodova (računala) unutar klastera gdje svaki node izvršava svoj dio posla na setu podataka putem MapReduce programske paradigme. Razlika je u tome što se podaci unutar H2O sustava spremaju i računaju u RAM memoriji umjesto na hard disku što uvelike poboljšava performanse izvođenja kompleksnih algoritama za strojno učenje. Interakcija s H2O sustavom se izvršava putem intuitivnog web sučelja ili putem različitih programskih jezika kao što su Java, Scala, Python i R.  H2O kao sustav može funkcionirati kao standalone server ili kao dio  Hadoop sustava gdje iskorištava resurse Hadoop-a i MapReduce paradigmu.

 Izvori podataka koji se importaju u H2O mogu dolaziti iz različitih izvora kao što su: csv, txt, relacijske baze podataka, Excel, Hive te HDFS (Hadoop Distributed File System) gdje se podaci importani podaci pretvaraju u .hex format.

Capture

 

Izgled H2O dashboarda (klikni na sliku za uvećanje)

Nakon što smo importali podatke u H2O sustav, sljedeći cilj nam je odabrati cilj kod strojnog učenja. Ukoliko želimo nešto predvidjeti, primjerice prevenciju churn-a ili detekciju prevare (fraud detection) onda ćemo koristiti klasifikacijske algoritme, međutim ukoliko nam je cilj predvidjeti neku brojku, primjerice kolika je cijena nekretnina ili koliki je broj korisnika koji će odustati od nekog proizvoda onda koristimo regresijske algoritme. Također, H2O posjeduje i algoritme za klasteriranje ukoliko nam je cilj pronaći poveznice među podacima, primjerice demografiju korisnika.

Najbolji dio H2O je što posjeduje neke od najnovijih algoritama koji postoje u svijetu strojnog učenja / rudarenja podataka. Popis algoritama:

Regresijski algoritmi:

  • Generalized linear models – uključuje familiju algoritama kao što je (linearna regresija, logistička regresija te regresijske modele s regularizacijskim parametrima)

Klasifikacijski algoritmi:

  • Gradient Boosting Machines (GBM)
  • Random Forest (single node i distribuirani)
  • Naive Bayes
  • Neuronske mreže
  • Deep Learning

“Unsupervised” algoritmi:

  • K-means algoritam za klasterizaciju
  • PCA (Principal Component Analysis)

 

Iris

 

Prikaz performansi Random Forest algoritma (klikni na sliku za uvećanje)

H2O posjeduje funkcionalnost “grid – search” koja omogućuje optimizaciju parametara algoritama (broj stabla, max depth, regularizacijski parametri L1 i L2, stopu učenja – gradient descent itd.) koji pararelno izrađuju više prediktvnih modela među kojima biramo onaj koji ima najbolje performanse, bilo da je riječ o klasifikaciji ili regresiji. Nakon što smo našli optimalni model, naučeno možemo primjeniti na novom setu podataka, kako bi predvidjeli ishode.

H2O je open source sustav i očekivano je da nije gotov proizvod, međutim iz dana u dan se popravljaju bug-ovi. Međutim H2O pruža novi pogled na big data analitiku koji je do nedavno bila dostupna samo onim najvećim poput Google-a,  Amazona ili Netflixa.

Gdje se H2O može koristiti? Područja primjene H2O-a su raznolika, ali već postoje studije slučaja u telekomunikacijskim churn preventionima , fraud detection u bankarstvu te sustavima preporuke unutar web aplikacija.

U ovom članku nisam išao detaljno u tehničku izradu modela, što ne znači da izrade modela nećemo pokriti u sljedećim člancima.

Do tada, uživajte u našoj u našim ostalim člancima vezanim za podatke ! 🙂