H2O ile Yapay Zeka Geliştirme

Jul 19 2017 Published by under java, machine learning, python

iyzico’da yaptığım H2O ile Yapay Zeka Geliştirme sunumuna aşağıdaki linkten erişebilirsiniz:

https://www.slideshare.net/YalnYenign/ai-development-with-h2oai

Not: Sunum İngilizce’dir.

 

Comments are off for this post

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

Building a Data Driven Product with Machine Learning

Jan 29 2017 Published by under machine learning

Garaj oluşumu için KWorks’te yaptığım “Building a Data Driven Product with Machine Learning” sunumuna aşağıdaki linkten ulaşabilirsiniz.

http://www.slideshare.net/YalnYenign/building-data-driven-applications-with-machine-learning-71497185 

Comments are off for this post

Spark 2.0 – MLLib Yenilikleri

Aug 16 2016 Published by under machine learning

Spark 2.0 ile birlikte MLLib’te (Spark’ın machine learning kütüphanesi) önemli geliştirmeler yayına alındı. Aynı zamanda MLLib’e en fazla kodun ve özelliğin gönderildiği sürüm olma özelliğini taşıyor:

Screen Shot 2016-08-17 at 09.42.49

 

Spark 2.0 ile birlikte yayına alınan en temel MLLib özellikleri ise şu şekilde:

  • DataFrame arayüzü temel arayüz olarak kullanılmaya başlandı. Spark MLLib’in başından beri varolan RDD arayüzü (spark.mllib paketindeki) ise rafa kalktı. Artık RDD arayüzüne yeni geliştirme yapılmayacak. Sadece hataları giderilecek.Bu geliştirmenin temel sebepleri DataFrame’in daha kullanıcı dostu arayüzü olması ve sorgu iyileştirmeleri olarak görünüyor. DataFrame ve RDD’nin temel farklarını daha detaylı okumak için: http://www.adsquare.com/comparing-performance-of-spark-dataframes-api-to-spark-rdd/
  • DataFrame arayüzü kullanılarak oluşturulan Machine Learning modelini kaydetme ve okuma özelliği geldi. Bu özellik Scala, Java, Python ve R arayüzü kullanılarak geliştirilebiliyor. Detaylar için: https://databricks.com/blog/2016/05/31/apache-spark-2-0-preview-machine-learning-model-persistence.html
  • SparkR’a yeni MLLib algoritmaları eklendi. (naive bayes, k-means clustering, survival regression..vs.)
  • Python ile desteklenen MLLib algoritmalarına yenileri eklendi. (LDA, Gaussian Mixture Model, Generalized Linear Regression..vs.)
  • DataFrame arayüzüne yeni algoritmalar ve arayüzler eklendi. (Bisecting K-Means clustering, Gaussian Mixture Model, MaxAbsScaler feature transformer)
  • DataFrame ile kaydedilen vektör ve matrisler daha etkin bir “serialization” yöntemi kullanmaya başladı. Bu sayede MLLib algoritmalarını çağırırken ortaya çıkan performans maliyeti azaldı.

Referanslar:

http://spark.apache.org/docs/2.0.0/ml-guide.html

https://spark-summit.org/2016/events/apache-spark-mllib-20-preview-data-science-and-production/

 

 

Comments are off for this post

Yapay Zeka ile Öğrenme (Machine Learning) Terimleri

Aug 03 2016 Published by under machine learning

Machine Learning: “Field of study that gives computers the ability to learn without being explicitly programmed” , Arthur Samuel

Bilgisayarların dışarıdan programlanmaya ihtiyaç duymadan kendi kendine öğrenme yeteneğine “machine learning” denir.

Feature: In machine learning and pattern recognition, a feature is an individual measurable property of a phenomenon being observed.

Yapay zeka ile öğrenmede birbirinden bağımsız her bir ölçülebilir ve gözlemlenebilir özelliğe “feature” denir.

Data Sampling: Data sampling is a statistical analysis technique used to select, manipulate and analyse a representative subset of data points in order to identify patterns and trends in the larger data set being examined.

Veri sadeleştirme bir veriden temsili bir alt küme çıkarmak için kullanılan istatistiksel analiz tekniğidir. Büyük veri kümesindeki ortak özellikleri alt kümenin de barındırması gerekir.

Training: a training set is a set of data used to discover potentially predictive relationships

Yapay zeka ile öğrenmede eğitim verisi, tahminde bulunmak ve makinenin öğrenmesi için kullanılan veri kümesidir.

ML Model: You can use the ML model to get predictions on new data for which you do not know the target

Eğitim verisiyle eğitilen ve yeni veri hakkında tahmin yürüten yapay zekaya “machine learning model” denir.

Cross Validation: a model validation technique for assessing how the results of a statistical analysis will generalize to an independent data set

Bağımsız veriyle modeli doğrulama tekniğine “cross validation” denir.

Comments are off for this post