• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

Naïve Bayes Sınıflandırma Algoritması

  • Posted by Kodedu
  • Categories Genel, Uncategorized, Yazılar
  • Date 28 Mayıs 2014

Naïve Bayes sınıflandırma algoritması, adını Matematikçi Thomas Bayes’den alan bir sınıflandırma/ kategorilendirme algoritmasıdır. Naïve Bayes sınıflandırması olasılık ilkelerine göre tanımlanmış bir dizi hesaplama ile, sisteme sunulan verilerin sınıfını yani kategorisini tespit etmeyi amaçlar.

Naïve Bayes sınıflandırmasında sisteme belirli bir oranda öğretilmiş veri sunulur (Örn: 100 adet). Öğretim için sunulan verilerin mutlaka bir sınıfı/kategorisi bulunmalıdır. Öğretilmiş veriler üzerinde yapılan olasılık işlemleri ile, sisteme sunulan yeni test verileri, daha önce elde edilmiş olasılık değerlerine göre işletvilir ve verilen test verisinin hangi kategoride olduğu tespit edilmeye çalışılır. Elbette öğretilmiş veri sayısı ne kadar çok ise, test verisinin gerçek kategorisini tespit etmek o kadar kesin olabilmektedir.

Naïve Bayes sınıflandırma yönteminin birçok kullanım alanı bulunabilir fakat, burada neyin sınıflandırıldığından çok nasıl sınıflandırıldığı önemli. Yani öğretilecek veriler binary veya text veriler olabilir, burada veri tipinden ve ne olduğundan ziyade, bu veriler arasında nasıl bir oransal ilişki kurduğumuz önem kazanıyor.

Örnek:

Aşağıda yer alan tabloda 4 adet döküman, bunların içerikleri ve kategorileri yer almaktadır. Tabloda yer alan bilgiler Multinominal Naive Bayes sınıflandırma yöntemi ile sisteme öğretilecek bilgilerdir. Buradaki amaç ise, sisteme yeni sunulan bir dökümanın hangi kategoriye ait olduğunu bulmaktır.

Döküman numarası Öğretilen içerik/cümle Kategori
1 Chinese Beijing Chinese Ç
2 Chinese Chinese Shanghai Ç
3 Chinese Macao Ç
4 Tokyo Japan Chinese J

Multinominal Naïve Bayes sınıflandırmasına göre ilk olarak bir kategorinin tüm satırlara göre oranı bulunmalıdır.

Örneğin:

P(Ç) = 3/4 = 0.75 (Öğretilecek verilerde Ç kategorisindeki satırların tüm satırlara oranı)

P(J) = 1/4 = 0.25 (Öğretilecek verilerde Japonya kategorisindeki satırların tüm satırlara oranı)

Sonrasında ise, öğretilecek kelimelerin ait olduğu kategoriye göre koşullu olasılığı bulunur

P(X| Y) =( Y kategorisindeki satırlarda “X” ifadesinin tekrar sayısı +1) / (Y kategorisindeki satırlarda bulunan tüm kelimelerin sayısı + Öğretilen veri sayısı)

Koşullu olasılıklar (6 adet)

P(Chinese | Ç) = (5 + 1) / (8 + 6) = 0.428
P(Tokyo | Ç)   = (0 + 1) / (8 + 6) = 0.071
P(Japan| Ç)    = (0 + 1) / (8 + 6) = 0.071
P(Chinese | J) = (1 + 1) / (3 + 6) = 0.222
P(Tokyo| J)    = (1 + 1) / (3 + 6) = 0.222
P(Japan| J)    = (1 + 1) / (3 + 6) = 0.222

Yeni bir dökümanın test edilmesi

Şimdi ise herhangi bir cümlenin öğretilen 6 bilgiye göre kategorisini bulmaya çalışalım.

Not: Eğer test için sunulan kelimelerden herhangi  biri için olasılık değeri bulunmuyorsa, etkisini indirgemek adına çarpma işleminde etkisiz eleman olan “1” oran olarak verilebilir. (Örn: İstanbul, Lüleburgaz..)

Test verisi Chinese Chinese İstanbul Chinese Tokyo Japan Kategori = ???

P(Ç | Test) = P(Ç) * P(Chinese | Ç) * P(Chinese | Ç) * P(İstanbul| Ç) * P(Chinese | Ç) * P(Tokyo| Ç) * P(Japan| Ç)

P(Ç | Test) = 0.75 * 0.428 * 0.428 * 1 * 0.428 * 0.071 * 0.071 = 0.0003

P(Japonya| Test) = P(J) * P(Chinese | J) * P(Chinese | J) * P(İstanbul| J) * P(Chinese | J) * P(Tokyo| J) * P(Japan| J)

P(Japonya| Test) = 0.25 * 0.222 * 0.222 * 1 * 0.222 * 0.022 * 0.022 = 0.0001

Sonuç:

P(Ç | Test) > P(J | Test) olduğundan dolayı, Test verisinin Ç grubunda olma olasılığı olmama olasılığının yaklaşık 3 katıdır. Bu yüzden kategori olarak Ç denilebilir.

Referanslar

[1] http://www.stanford.edu/class/cs124/lec/naivebayes.pdf

[2] http://www.dcs.bbk.ac.uk/~dell/teaching/ir/examples/nb_example.pdf

[3] http://en.wikipedia.org/wiki/Naive_Bayes_classifier

Bir sonraki yazıda Apache Spark ile örnek bir veri kümesi üzerinde Naïve Bayes sınıflandırmasından bahsedeceğiz.

Yeni yazı burada: Apache Spark ile Naive Bayes Sınıflandırma

Tekrar görüşmek dileğiyle..

  • Share:
author avatar
Kodedu

Previous post

Bower Nedir ? Nasıl Kullanılır ?
28 Mayıs 2014

Next post

Github Atom Editörü
6 Haziran 2014

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

    12 Comments

  1. Furkitolki
    25 Şubat 2015
    Cevapla

    Gayet sade ve açıklayıcı olmuş teşekkür ederim.

    • Rahman Usta
      27 Şubat 2015
      Cevapla

      Teşekkürler

  2. Hakan
    31 Mart 2015
    Cevapla

    Çok sade ve anlaşılır gerçekten, tebrikler

  3. Ahmet Cevahir ÇINAR
    14 Mart 2017
    Cevapla

    Teşekkürler. Allah razı olsun.

  4. seval
    4 Haziran 2017
    Cevapla

    merhaba P(Ç | Test) cevabı nasıl 0.0003 oluyor anlayamadım o sonuç çıkmıyor yardımcı olabilirmisiniz

    • Rahman Usta
      4 Haziran 2017
      Cevapla

      Sayıları çarpınca kaç çıkıyor?

      • seval
        4 Haziran 2017
        Cevapla

        2.964 çıkıyor

        • Rahman Usta
          4 Haziran 2017
          Cevapla

          Sorun olmaz her halukarda diğerinden büyük 🙂 Yazarken yukarı yuvarlamış olabilirim.

          • seval
            4 Haziran 2017

            tamam teşekkür ederim hocamızda sizin yazdığınız sonucu yazdırmıştı o yüzden farklı birşeymi var diye düşünmüştüm.

  5. Mete
    19 Nisan 2022
    Cevapla

    Merhaba, koşullu olasılıklara Beijing, Shangai ve Macao metinlerini dahil etmedik acaba?

    • Rahman Usta
      19 Nisan 2022
      Cevapla

      Test verisinde onları kullanmadığım için es geçmişim. Eğer ihtiyacımız olsaydı onları da hesaplamak gerekecekti.

Leave A Reply Cevabı iptal et

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

E-posta listesine kayıt olun!






Gözde yazılar

Dağıtık uygulama çatılarının karşılaştırılması (Hadoop, GridGain, Hazelcast, DAC) Bölüm II
28Kas2011
Webiner videosu : Javascript ve Rest iletişimi
27Eyl2012
Java EE 7 – Concurrency Utilities
10Eyl2013
Dekoratör Tasarım Kalıbı
15May2012

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • Coupling ve Cohesion Kavramları Nedir? için Hilal
  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.