Apache Spark – MLib ile Karar Ağacı(Decision Trees)

Bu bölümde Apache Spark MLib kütüphanesi ile karar  ağacı(decision tree) modelini inceleyeceğiz. Geliştireceğimiz uygulama ile bisiklet almak isteyen kullanıcıların kararlarında hangi faktörlerin etkili olabileceğini hesaplayacağız

decision-tree

Örnek verirsek Titanic içerisinden kurtulanların veya ölenlerin çeşitli özelliklerine göre yukarıdaki karar ağacı oluşturulmuştur

sibsp -> kardeş sayısı

Mesela kadınların %36 ‘ sı kurtarılmıştır

Benzer bir örnek için hava yolu firmalarının uçuşlarının gecikmelerini analiz edebiliriz.Bu durumda ise iki tane label(etiket) bilgimiz olacaktır

  • Gecikmeli uçuş
  • Normal zamanlı uçuş

Şimdi adım adım BikeBuyer uygulamasını geliştirelim

Adım 1 : Öncelikle bisiklet almaya niyetli kullanıcıların bilgilerini içeren veri kümesini indirelim

Buradan indirebilirsiniz : https://github.com/Apress/predictive-analytics-w-msft-azure-ML/blob/master/Ch05-BikeBuyer.csv

Alternatif : Ch05-BikeBuyer

Adım 2 : Örnek veri kümesi alttaki gibi olacaktır

bike-buyer-data

Adım 3 : Csv dosyasından okuduğumuz veri formatında Bike sınıfı oluşturalım

Adım 4 : Dosyadan okuduğumuz verileri Bike sınıfına map eden yardımcı metodları geliştirelim.Bu metodları Bike sınıfına ekleyebiliriz

Adım 5 : Spark MLib uygulamalarında veri içerisindeki her bir alan(field) bizim için birer özelliktir(feature).Bu özelliklerin her birine bir değer verilir

Mesela alıcıların medeni durumları aslında birer özelliktir.Bu özellikleri geliştireceğimiz uygulamada bir değer ile eşleştirmemiz gerekmektedir

Alttaki özellik kümesini Bike sınıfına ekleyebiliriz

Devamında ise kategori bazındaki (maritialStatus,gender ..) gibi özellikleri bir Map içerisinde belirtmemiz gerekiyor . Bu metodu yine Bike sınıfına ekleyebiliriz

Adım 6 :  Şimdi modeli hazırlamak için BikeBuyer sınıfını oluşturalım. İlk olarak csv dosyasını RDD ile alalım

Adım 7 : Spark MLib kütüphanelerinde model oluşturmak için veri kümelerini belirli etiketlere(label) göre ayırmamız gerekmektedir.Bu durumda LabeledPoint sınıfına göre bir RDD oluşturabiliriz

Adım 8 :  Verileri iki bölüme ayırabiliriz. Genellikle makine öğrenmesi uygulamalarında verinin bir kısmı model oluşturmak için kullanılır , kalan kısmı ise bu modelin test edilmesi için kullanılır

Adım 9 :  Spark MLib kütüphanesi ile kolaylıkla karar ağacı modeli oluşturabiliriz.Bu model için DecisionTree.trainClassifier  metodunu kullanacağız

  • numClasses –> label sayısı
  • impurity –> sınıflandırma yapılırken “entropy” algoritması kullanılıyor
  • maxDepth –> Ağaçtaki maksimum derinliğin sayısı

Adım 10 : Modeli oluşturduktan sonra 10 kayıt için test edelim

spark-machine-learning

Bu bölümde Apache Spark MLib kütüphanesi ile karar ağacı(decision tree) modelini inceledik .


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter)

Online eğitimler için sitemizi takip edebilirsiniz

 

 

 

Please follow and like us:

Yazar: serkan sakınmaz

serkansakinmaz@gmail.com

“Apache Spark – MLib ile Karar Ağacı(Decision Trees)” için 1 yorum

  1. Merhaba Hocam,
    Modeli oluştururken “bikeBuyer” alanını LabeledPoint de veriyoruz aynı zamanda modelin içinde bir feature. Modeli train ettikten sonra datanın belirli bir kısmı ile test gerçekleştiriyoruz ve doğru sonucu alıyoruz. Ama benim anladığım kadarı ile test datasının içinde “bikeBuyer” alanını da gönderdiğimiz için doğru karar veriyor. Test ettiğimiz datanın içinde “bikeBuyer” göndermek istemiyorum. Çünkü bunu modelin bulmasını istiyorum. Kendi uygulamamda feature kısmından bikeBuyer a bende karşılık gelen alanı çıkardığımda, her test edişimde farklı sonuçlar alıyorum. Doğru çalışmıyor gibi. Bunu gibi bir hata ile uğraştınız mı?
    Teşekkürler,

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir