H2O ve Python ile Makine Öğrenmesi Modeli Oluşturma

May 27 2017 Published by under machine learning, python

H2O (https://www.h2o.ai/h2o/) makine öğrenmesini kolaylaştıran ve en önemli özelliği hafif  (lightweight) olması ve az kaynak tüketmesi olan bir yapay zeka kütüphanesidir. Kendi içinde barındırdığı dağıtık bellek (in memory distributed k/v store) sayesinde makine öğrenme modellerinin eğitilmesi bir hayli hızlı olmaktadır zira belleğe her bir erişim ortalama 150 nanosaniye sürmektedir (NonBlockingHashMap için). Yine kendi içerisinde bulunan ve yine hafif (lightweight) olan MapReduce katmanı sayesinde milyonlarca satırı paralel olarak işleyebilir.

H2O ile bir modeli eğitip ardından modeli bir java sınıfı (POJO) olarak kaydedebilirsiniz. Böylece eğittiğiniz modeli istediğiniz sunucuya sadece java bağımlılığıyla yükleyebilirsiniz.

Bunu Python, Pandas ve H2O üçlüsü ile yapmak için:

 

Referanslar:

https://github.com/h2oai/h2o-tutorials/blob/master/tutorials/gbm-randomforest/GBM_RandomForest_Example.py

https://blog.h2o.ai/2014/03/h2o-architecture/

http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.read_sql_query.html

https://groups.google.com/forum/#!msg/h2ostream/DCBG9auR2qw/bKEiGBeJBwAJ

Comments are off for this post

Spark ML’e Kategori Değişkenlerini Belirtme

Mar 08 2017 Published by under machine learning, scala, software development

Spark ML’de sınıflandırma algoritmalarını kullanırken iki tip değişkeniniz vardır: Sürekli Değişkenler ve Kategori Değişkenleri. Sürekli değişkenler, değerin kendisinin ve değişimlerinin (artma veya azalma) sizin için önemli olduğu değişkenlerdir. Kategori değişkenleri ise sınıfsal değişkenlerdir.  (maksimum x farklı değer alabilirler.)

Algoritmanızı geliştirirken sürekli değişkenler ve kategori değişkenlerini birbirinden ayırmanız gerekmektedir. Bunun için Spark ML’de VectorIndexer sınıfı kullanılır.

İlk olarak kategori değişkenlerinizi bir Vector’de tutarsınız:

Ardından maksimum alacakları değer çeşitliliğine göre VectorIndexer sınıfını kullanarak bu değerlerinizi index’ler ve maksimum değer sayısını Indexer’a parametre olarak verebilirsiniz.

Bu alanlar artık kategori değerleri olarak index’lenmiştir ve Spark Pipeline’ına ekleyebilirsiniz:

Referans:

https://spark.apache.org/docs/latest/ml-features.html#vectorindexer

Comments are off for this post