Naive Bayes Sınıflandırma Uygulaması H a r u n ÇETİN 10280161 Fen Bilimleri Enstitüsü
Naive Bayes Sınıflandırma Uygulaması GİRİŞ VE VERİ ÖN İŞLEME
Naive Bayes Sınıflandırma Uygulaması Veri seti olarak http://kdd.ics.uci.edu/summary.task.type.html (Summary of Task Files...
Naive Bayes Sınıflandırma Uygulaması 11-15 (Wilderness area) ve 15-55 (Soil type) aralıklarındaki nitelikler internet sayf...
Naive Bayes Sınıflandırma Uygulaması GELİŞTİRME ORTAMI VE UYGULAMA
Naive Bayes Sınıflandırma Uygulaması Geliştirme dili olarak Java tercih edildi. Geliştirme ortamı olarak ise NetBeans İDE ...
Naive Bayes Sınıflandırma Uygulaması “Siniflayici” Soyut Sınıfı Geliştirilen uygulamanın en önemli iki sınıfından ilki ola...
Naive Bayes Sınıflandırma Uygulaması Diğer bir metot KosulluSec(DefaultTableModel ornekler, int col, Object kosul) metodud...
Naive Bayes Sınıflandırma Uygulaması Sonraki sınıf ise soyut prototipi verilmiş olan ModeliEğit(DefaultTableModel egitimSe...
Naive Bayes Sınıflandırma Uygulaması “NaiveBayes” Sınıfı NaiveBayes(Object[] kategoriler, int sinifKolonu, DefaultTableMod...
Naive Bayes Sınıflandırma Uygulaması İkinci parametre olan int türündeki “sinifKolonu“ parametresi ile hangi nitelik kolon...
Naive Bayes Sınıflandırma Uygulaması ModeliEgit(DefaultTableModel table): Sınıflayıcı soyut sınıfından alınan bu metot ilk...
Naive Bayes Sınıflandırma Uygulaması “DataSet<String, DefaultTableModel>”, Siniflayici sınıfından gelen Hashtable yapısınd...
Naive Bayes Sınıflandırma Uygulaması Sinifla(Object[] ornek): Bu metot Object türündeki “ornek” dizisine bir veri örneği a...
Naive Bayes Sınıflandırma Uygulaması Ardından kategori (sınıf) sayısı kadar döngüye girilerek öncelikle sınıf dağılımları ...
Naive Bayes Sınıflandırma Uygulaması Daha sonra px değişkenine verinin olasılığı ve “sonuc” değişkenine ise bayes formülü ...
Naive Bayes Sınıflandırma Uygulaması Döngülerin bitiminden sonra ise ArgMax metodu ile “kosulluolslar” vektöründeki maksim...
Naive Bayes Sınıflandırma Uygulaması SONUÇLAR
Naive Bayes Sınıflandırma Uygulaması Weka yazılımı yardımıyla yapılan sınıflama sonuçları geliştirilen uygulama ile karşıl...
Naive Bayes Sınıflandırma Uygulaması WEKA GELİŞTİRİLEN UYGULAMA Nitelik Sayısı: 5...
Naive Bayes Sınıflandırma Uygulaması WEKA GELİŞTİRİLEN UYGULAMA Nitelik Sayısı: 55 ...
Naive Bayes Sınıflandırma Uygulaması WEKA GELİŞTİRİLEN UYGULAMA Nitelik Sayısı: 55...
TEŞEKKÜRLER
of 23

Naive Bayes Sınıflandırma Uygulaması

Veri Madenciliği yüksek lisans dersi için hazırlamış olduğum projenin sunumudur.
Published on: Mar 3, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - Naive Bayes Sınıflandırma Uygulaması

  • 1. Naive Bayes Sınıflandırma Uygulaması H a r u n ÇETİN 10280161 Fen Bilimleri Enstitüsü
  • 2. Naive Bayes Sınıflandırma Uygulaması GİRİŞ VE VERİ ÖN İŞLEME
  • 3. Naive Bayes Sınıflandırma Uygulaması Veri seti olarak http://kdd.ics.uci.edu/summary.task.type.html (Summary of Task Files by Type) Sayfasındaki «Forest Cover Type» veri seti kullanıldı. Yine aynı sitenin veri setiyle ilgili sayfasında belirtildiği üzere sınıflama çalışması orman örtü türünü belirleme üzerine yapıldı. Veri setinde 55 nitelik ve 581012 örnek bulunmakta. Hesaplama kolaylığı açısından nitelik sayısı veri setinin alındığı internet sayfasındaki talimatlara uygun olarak azaltıldı.
  • 4. Naive Bayes Sınıflandırma Uygulaması 11-15 (Wilderness area) ve 15-55 (Soil type) aralıklarındaki nitelikler internet sayfasında verilen açıklamalara uygun olarak iki ayrı nitelik olarak birleştirildi. Böylece yeni veri setinin nitelik sayısı 13 oldu. Örnek sayısı da azaltılarak 100000 örneklik yeni bir veri seti oluşturuldu.
  • 5. Naive Bayes Sınıflandırma Uygulaması GELİŞTİRME ORTAMI VE UYGULAMA
  • 6. Naive Bayes Sınıflandırma Uygulaması Geliştirme dili olarak Java tercih edildi. Geliştirme ortamı olarak ise NetBeans İDE tercih edildi. Javanın tercih edilmesinin sebebi geliştiriciye sağladığı kolaylıklar (Nesne yönelimli vb.) ve çoklu platform desteği ayrıca NetBeans ve Javanın açık kaynak lisanslı olmasıdır. Burada sınıflamayı yapan temel sınıflara ve metotlara yer verilecektir.
  • 7. Naive Bayes Sınıflandırma Uygulaması “Siniflayici” Soyut Sınıfı Geliştirilen uygulamanın en önemli iki sınıfından ilki olan Sınıflayıcı soyut sınıfı, sınıflama işlemini yapacak olan diğer sınıflar için genel bir arayüz sağlamaktadır. Bu sınıf içerisindeki ilk metot olan int ArgMax (Vector<Object> girdi) metodu Object türünde veri vektörü almakta ve bu vektör içindeki değerlerin sayı olarak en büyüğünün indeks numarasını int türünde döndürmektedir.
  • 8. Naive Bayes Sınıflandırma Uygulaması Diğer bir metot KosulluSec(DefaultTableModel ornekler, int col, Object kosul) metodudur. Bu metot ise kendisine üç parametre almakta ve Object türünde bir Vector döndürmektedir. Bu metot kendi içerisinde bütün eğitim örneklerini dolaşacak şekilde döngü kurmakta ve kendisine gelen kosul parametresini alarak kategori kolonunda bu kosul değerine karşılık gelen satırdaki int türündeki col parametresiyle verilmiş kolondaki veriyi alarak Object türünde veri alan bir vektöre eklemektedir. Dönen değer ise bu eklemeler sonucu oluşan nihai vektördür.
  • 9. Naive Bayes Sınıflandırma Uygulaması Sonraki sınıf ise soyut prototipi verilmiş olan ModeliEğit(DefaultTableModel egitimSeti) metodudur. Diğer metot Sinifla(Object[] veri) ise Object türünde bir veri dizisi alarak geriye String türünde sınıflama sonucunu döndürür. Test() metodu ise herhangi bir parametre almadan Sınıfla() metodunu kullanarak test verileri üzerinden uygulamanın başarım testini gerçekleştirir ve sonucu yüzde cinsinden double olarak döndürür.
  • 10. Naive Bayes Sınıflandırma Uygulaması “NaiveBayes” Sınıfı NaiveBayes(Object[] kategoriler, int sinifKolonu, DefaultTableModel dagilimlar): Sınıfın ilklendirme metodu olan NaiveBayes metodu üç parametre almakta. Bu parametrelerin ilki olan “kategoriler” parametresi Object türünde bir nesne dizisidir. Bu diziye sınıflama yapılacak kategori etiketleri alınır.
  • 11. Naive Bayes Sınıflandırma Uygulaması İkinci parametre olan int türündeki “sinifKolonu“ parametresi ile hangi nitelik kolonunun sınıflama niteliği olarak kullanılacağı belirtilir. Üçüncü parametre olan “dagilimlar” parametresi ise niteliklerin minimum, maksimum, ortalama, varyans gibi dağılım özelliklerini tablo yapısında metoda sunmaktadır.
  • 12. Naive Bayes Sınıflandırma Uygulaması ModeliEgit(DefaultTableModel table): Sınıflayıcı soyut sınıfından alınan bu metot ilk parametresi olan tablo yapısındaki “table” parametresi ile veri setini almaktadır. İnt türündeki “ToplamOrnekSay” değişkeni veri setindeki toplam örnek sayısını tutmaktadır. Sonraki değişken olan int türündeki “EgitimOrnekSay” değişkeni ise kullanıcı arayüzünden alınan “EgitimSetiOrani” değişkeni ile “ToplamOrnekSay” değişkeninin çarpılarak yüzdesinin alınması sonucu elde edilen eğitim amaçlı kullanılacak veri setinin örnek sayısını belirtir.
  • 13. Naive Bayes Sınıflandırma Uygulaması “DataSet<String, DefaultTableModel>”, Siniflayici sınıfından gelen Hashtable yapısında bir değişkendir. Burada söz konusu durum sıralamaktan ziyade bir anahtarla ulaşmak olduğundan hashtable kullanımı uygun görülmüştür. SinifDagilimlari değişkeni ise sınıfların nitelikler bazındaki ortalama ve varyanslarını tablo şeklinde tutmakta. Gauss dağılımı hesaplama aşamasında bu tablodan faydalanıldı. Daha sonra bu değişkeni DataSet hashtable içerisine alarak sınıf içindeki diğer metotlarda kullanılması sağlandı.
  • 14. Naive Bayes Sınıflandırma Uygulaması Sinifla(Object[] ornek): Bu metot Object türündeki “ornek” dizisine bir veri örneği almaktadır. Object türündeki “kosulluolslar” vektörü ve Object türündeki “siniflar” değişkenleri koşullu olasılıkları ve sınıfları tutmak amacıyla oluşturuldu.
  • 15. Naive Bayes Sınıflandırma Uygulaması Ardından kategori (sınıf) sayısı kadar döngüye girilerek öncelikle sınıf dağılımları tablosundan ele alınacak sınıfın olasılığı “pc” değişkenine alındı. Daha sonra sınıf dağılımları tablosunun sütun sayısı kadar döngü oluşturularak sınıf dağılımları tablosundan her bir sınıfın ortalama ve varyanları ve ilgili örneğin her niteliği için ortalama (pxort) ve varyans (pxvar) değişkenine alındı.
  • 16. Naive Bayes Sınıflandırma Uygulaması Daha sonra px değişkenine verinin olasılığı ve “sonuc” değişkenine ise bayes formülü ile hesaplanan değer verildi. Bu sonuçlar “kosullulslar” vektörüne, üzerinde işlem yapılan sınıf ise “siniflar” vektörüne eklendi.
  • 17. Naive Bayes Sınıflandırma Uygulaması Döngülerin bitiminden sonra ise ArgMax metodu ile “kosulluolslar” vektöründeki maksimum değerin indeksini alınarak “siniflar” vektörüne verildi. “siniflar” vektöründe ilgili indekse karşılık gelen sınıf “bayes” String değişkeni içierisine alınarak metoda dönüş değeri olarak verildi.
  • 18. Naive Bayes Sınıflandırma Uygulaması SONUÇLAR
  • 19. Naive Bayes Sınıflandırma Uygulaması Weka yazılımı yardımıyla yapılan sınıflama sonuçları geliştirilen uygulama ile karşılaştırıldı.
  • 20. Naive Bayes Sınıflandırma Uygulaması WEKA GELİŞTİRİLEN UYGULAMA Nitelik Sayısı: 55 Nitelik Sayısı: 13 Sınıf Sayısı: 7 Sınıf Sayısı: 7 Ayrılış: %80 Ayrılış: %801 Toplam Örnek Sayısı: 100000 Toplam Örnek Sayısı: 100000 Doğru Sınıflanan Örnek Sayısı = 14661 Doğru Sınıflanan Örnek Sayısı=6022 Test Örnek Sayısı = 19988 Test Örnek Sayısı=20000 Doğruluk Yüzdesi: % 73.349 Doğruluk Yüzdesi: % 30.11
  • 21. Naive Bayes Sınıflandırma Uygulaması WEKA GELİŞTİRİLEN UYGULAMA Nitelik Sayısı: 55 Nitelik Sayısı: 13 Sınıf Sayısı: 7 Sınıf Sayısı: 7 Ayrılış: %70 Ayrılış: %70 Toplam Örnek Sayısı: 100000 Toplam Örnek Sayısı: 1000002 Doğru Sınıflanan Örnek Sayısı= 21929 Doğru Sınıflanan Örnek Sayısı=13949 Test Örnek Sayısı= 29982 Test Örnek Sayısı=30000 Doğruluk Yüzdesi: % 73.140 Doğruluk Yüzdesi: % 46.497
  • 22. Naive Bayes Sınıflandırma Uygulaması WEKA GELİŞTİRİLEN UYGULAMA Nitelik Sayısı: 55 Nitelik Sayısı: 13 Sınıf Sayısı: 7 Sınıf Sayısı: 7 Ayrılış: %66 Ayrılış: %66 Toplam Örnek Sayısı: 100000 Toplam Örnek Sayısı: 1000003 Doğru Sınıflanan Örnek Sayısı= 24826 Doğru Sınıflanan Örnek Sayısı=16794 Test Örnek Sayısı= 33980 Test Örnek Sayısı=34000 Model Başarımı: 73.060 Model Başarımı: 49.394
  • 23. TEŞEKKÜRLER

Related Documents