Apache Spark – MLib ile Text Sınıflandırma(Naive Bayes)

naive-bayes

Bu bölümde Apache Spark MLib kütüphanesi(machine learning library) ile text sınıflandırma yapacağız. Kullanacağımız algoritma ise sınıflandırma(classification) algoritmalarından Naive Bayes olacak

Naive Bayes algoritması ile verinin özelliklerine(feature set) göre kategorilendirme  yapabiliriz

Alttaki örnek için algoritmayı inceleyelim.Bu örnekte belirli hava koşullarında oyun oynanıp oynanmadığı bilgisi veriliyor.Bu bilgilere göre bir model oluşturup,sonraki hava koşullarında oyun oynanıp oynanma ihtimali hesaplanabilir

bayes-data
formulasyon

Öncelikle frekans hesaplaması için ortadaki tabloyu oluşturuyoruz.

Bu tablodan güneşli havada oynanma ihtimalini hesaplayalım

P(yes|sunny) = P(sunny|yes)  *  P(yes) / P(Sunny)

  • P(sunny|yes) = 3/9 = 0.33
  • P(yes) = 9 / 14 = 0.64
  • P(Sunny) = 5 / 14 = 0.35

Sonuç = 0.6   –>   0.6 ihtimalle güneşli havada oyun olacaktır

Şimdi adım adım Spark ile text sınıflandırması yapalım

Örnekleri buradan indirebilirsiniz  (http://www.cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/www/data/news20.html)


Adım 1  : Öncelikle  java sınıfı oluşturalım

Adım 2 : Farklı veri gruplarını uygulamaya yükleyelim

Adım 3 : Text içerisindeki her bir kelime bizim için bir özelliktir(feature). Bu bilgileri HashingTF ile kullanabiliriz

Adım 4 : Yüklediğimiz verileri etiketlememiz(label) gerekmektedir.Bunun için spark LabeledPoint sınıfını kullanabiliriz.Her bir kategoriye farklı bir etiket vermeniz gerekir.Mesela bu örnekte motorcycles 15 değeriyle etiketleniyor

Adım 5 : Rdd snıflarımızı birleştirelim ve Naive Bayes modelini oluşturalım. İlerleyen aşamalarda bu modele text dosyalarının kategorilerini soracagız

Adım 6 : İndirdiğimiz dosyaların altında farklı kategorilere ait yazılar bulabiliriz.Bunları modele sorup doğru tahmin edip edemediğini öğreneceğiz

Adım 7 : Veri kümelerini modele sorup tahmin yaptırıyoruz

 

Uygulamayı çalıştırıp sonuçları gördüğümüzde algoritmanın doğru tahminleme yaptığını görmüş olduk

spark-naive-bayes-sonuclar

Apache Spark MLib kütüphanesi(machine learning library) ile text sınıflandırma yaptık .Diğer büyük veri yazıları için sitemizi takip edebilirsiniz


Bizi takip edebileceğiniz sosyal medya platformları

–> Facebook –> Linkedin  -> Twitter)

 

Please follow and like us:

Yazar: serkan sakınmaz

serkansakinmaz@gmail.com

“Apache Spark – MLib ile Text Sınıflandırma(Naive Bayes)” için 1 yorum

  1. Merhaba,

    Öncelikle yazınız için teşekkür ediyorum, türkçe çok güzel bir kaynak olmuş. Spark konfigürasyonundan da biraz bahseder misiniz? Şöyle ki küçük bir dataset train edildiği zaman sıkıntı olmuyor ama daha büyük veri kümeleri eğitilmek istendiği zaman çeşitli hatalar ile karşılaşıyoruz. RPCTimeOut, OutOfMemoryError gibi hatalar ile karşılaşıyoruz. Bu gibi hataları ortadan kaldırmak için nasıl bir konfigürasyon gereklidir?

    Şimdiden teşekkür ederim.

Bir Cevap Yazın

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