Makine Öğreniminde Naif Bayes Algoritması

Naive Bayes Sınıflandırıcı Algoritması

Naive Bayes Sınıflandırıcı Algoritması

Sınıflandırıcı, verileri bir dizi "sınıfa" bir veya daha fazlasına kategorize eden bir makine öğrenme algoritmasıdır. E-posta sınıflandırıcı, e-postaları Spam veya Spam Değil sınıf etiketine göre filtrelemek için tarayan bir sınıflandırıcı örneğidir.

Makine öğrenimindeki Naive Bayes Sınıflandırıcı, sınıflandırma görevleri için Denetimli bir makine öğrenimidir.

Naive Bayes Sınıflandırıcı Algoritması

Naive Bayes sınıflandırma problemlerini çözmek için kullanılır. Bir nesnenin olasılığına dayanarak tahminde bulunur. Naive Bayes, Bayes Teoremini temel alır ve çoğunlukla metin sınıflandırma amacıyla kullanılır. Naive Bayes, uygulanması kolay ve eğitilmesi hızlı olan olasılıksal bir sınıflandırma algoritmasıdır.

Naive Bayes sınıflandırıcısı Bayes teoremine dayandığından olasılık sınıflandırıcısı olarak bilinir. Bir öğenin olasılığına göre tahmin yapar.

Naïve Bayes olarak anılmanın nedeni?

Naive Bayes sınıflandırıcısının iki kelimesi vardır: Naive ve Bayes. Neden Navie? Bu algoritma tüm kelime cümlelerini aynı olarak ele alır. Örneğin “Sen” ve “Sen misin” bu algoritma için aynıdır. Özelliklere veya özelliklerin oluşumuna bağlı değildir. Elma meyvesini tanımlamak istiyorsanız, elma olarak tanıyabilmek için kırmızı renge, küresel şekle ve tatlı tada ihtiyacınız vardır. Bu, bu özelliklerin birbirinden bağımsız olduğu anlamına gelir.

  • Naive Bayes sınıflandırıcısı özelliklerin birbirinden bağımsız olduğunu varsayar. Gerçek hayattaki verilerde bu nadiren mümkün olduğundan, sınıflandırıcıya saf denir.
  • Bu sınıflandırma algoritması, Naive Bayes Sınıflandırıcı olarak bilinen Bayes teoremine dayanmaktadır.

Naif Bayes Teoremi

Bayes teoremi, ön bilgiye bağlı koşullu olasılıklara sahip bir hipotezin olasılığını bulmak için kullanılır. Bu teorem Thomas Bayes'in adını almıştır. Naive Bayes sınıflandırıcısı, Bayes teoreminin verdiği koşullu olasılık ilkesine göre çalışır.

Bayes teoremini anlamak için, iki madeni paranın atılmasıyla ilgili basit, saf bir bayes sınıflandırıcı örneğine bakalım. Bu örnek uzayları iki madeni para atarak elde edebiliriz: {HH, HT, TH, TT}. Buna göre bu olayların olasılıkları şöyle olacaktır:

  • İki tura almak = 1/4
  • En az bir kuyruk = 3/4
  • İlk paraya tura verilen ikinci para yazı = 1/2
  • İlk para verildiğinde iki tura gelmesi tura = 1/2

Bayes teoremi, daha önce gerçekleşmiş olan farklı bir olayın olasılığına dayalı olarak bir olayın gerçekleşme olasılığını hesaplar. Bayes teoreminin formülü şu şekilde verilir:

P(A|B) = (P(B|A) * P(A)) / P(B)

P(A|B) B bile zaten meydana gelmişken, A'nın bile olasılığı. Olasılık P(B) sıfır olmamalıdır.

  • B olayı (kanıt) doğru olduğunda verilen A olayının olasılığını bulmanız gerekir.
  • P(A), A'nın a priori'sidir (a priori, yani gözlemlenen bir olayın kanıtlanmadan önceki olasılığı). Burada B olayı, bilinmeyen bir örneğin değeridir.
  • P(A|B), B olayının sonsal olasılığıdır, yani olayın delillere bakıldıktan sonraki olasılığıdır.

Naïve Bayes Sınıflandırıcısının çalışma örneği

Bayes Naive Classifier'ın çalışmasını anlamak için alışveriş örneğini ele alalım. Bu veri setinde bu örnek için 30 satırlık küçük bir örnek veri seti bulunmaktadır.

Veri kümesi

Naïve Bayes Sınıflandırıcısının Çalışma Örneği

Sorun, Naive Bayes Teoremini kullanarak bir kişinin belirli bir Gün, İndirim ve Ücretsiz Teslimat kombinasyonunda bir ürün satın alıp almayacağını tahmin etmektir.

Naïve Bayes Sınıflandırıcısının Çalışma Örneği

) 1 Adım Veri kümesinde belirtilen gün, indirim ve ücretsiz teslimat gibi giriş türlerini kullanarak her özellik için sıklık tabloları oluşturacağız.

Naïve Bayes Sınıflandırıcısının Çalışma Örneği

'Satın Al' olayı 'A' olarak ve 'İndirim', 'Ücretsiz teslimat' ve 'Gün' gibi bağımsız değişkenler 'B' olarak gösterilsin. Bayes teoremini uygulamak için bu olayları ve değişkenleri kullanacağız.

) 2 Adım Şimdi Olasılık tablolarını tek tek hesaplayalım.

Naïve Bayes Sınıflandırıcısının Çalışma Örneği

Örnek 1:

Bu olabilirlik tablosuna dayanarak koşullu olasılıkları aşağıdaki gibi hesaplayacağız.

P(A) = P(No Buy) = 6/30 = 0.2
P(B) = P(Weekday) = 11/30 = 0.37
P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33

Bayes teoremini kullanarak P(A/B)'yi bulun,

P(A/B)
= P(No Buy / Weekday)
= P(Weekday / No Buy) * P(No Buy) / P(Weekday)
= (2/6 * 6/30) / (11/30)
= 0.1818

Benzer şekilde, eğer A Satın Al ise, o zaman

= P(Buy / Weekday)
= P(Weekday / Buy) * P(Buy) / P(Weekday)
= (9/24 * 24/30) / (11/30)
= 0.8181

Not: P(Satın Al | Hafta İçi) P(Satın Alma Yok | Hafta İçi) değerinden daha büyük olduğundan, bir müşterinin ürünü büyük olasılıkla Hafta içi bir günde satın alacağı sonucuna varabiliriz.

) 3 Adım Benzer şekilde, bir olayın gerçekleşme olasılığını üç değişkenin tümüne dayanarak hesaplayabiliriz. Şimdi yukarıdaki frekans tablolarını kullanarak her üç değişken için Olabilirlik tablolarını hesaplayacağız.

Naïve Bayes Sınıflandırıcısının çalışma örneği

Örnek 2:

Şimdi, bu üç Olasılık tablosunu kullanarak, bir müşterinin belirli bir 'Gün', 'İndirim' ve 'Ücretsiz teslimat' kombinasyonuna dayalı olarak satın alma olasılığının olup olmadığını hesaplayacağız.

Burada bu faktörlerin bir kombinasyonunu ele alalım:

  • Gün = Tatil
  • İndirim = Evet
  • Ücretsiz Teslimat = Evet

Ne zaman, A = Satın Al

Aşağıdaki gün, indirim ve ücretsiz teslimat kombinasyonunda satın alma işleminin koşullu olasılığını hesaplayın.

B nerede:

  • Gün = Tatil
  • İndirim = Evet
  • Ücretsiz Teslimat = Evet

Ve A = Satın Al

Bu nedenle,

= P(A/B)
= P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30)
= 0.986

Ne zaman, A = Satın Alma Yok

Benzer şekilde, gün, indirim ve ücretsiz teslimat kombinasyonunun satın alma koşullu olasılığını hesaplayın.

B nerede:

  • Gün = Tatil
  • İndirim = Evet
  • Ücretsiz Teslimat = Evet

Ve A = Satın Alma Yok

Bu nedenle,

= P(A/B)
= P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30)
= 0.027

) 4 Adım Bu nedenle,

Satın alma olasılığı = 0.986

Satın almama olasılığı = 0.027

Son olarak, bu gün satın almak için koşullu olasılıklarımız var. Şimdi olayların olabilirliğini elde etmek için bu olasılıkları genelleştirelim.

  • Olasılıkların toplamı = 0.986 + 0.027 = 1.013
  • Satın alma olasılığı = 0.986 / 1.013 = %97.33
  • Satın Almama Olasılığı = 0.027 / 1.013 = %2.67

%97.33'ün %2.67'den büyük olduğunu unutmayın. Ortalama bir müşterinin tatilde indirimli ve ücretsiz teslimatla satın alacağı sonucuna varabiliriz.

Naif Bayes Modeli Türleri

Naive Bayes Sınıflandırıcılarının birçok türü vardır. Burada Multinomial, Bernoulli ve Gaussian Naive Bayes sınıflandırıcılarını tartıştık.

1. Çok Terimli Naive Bayes

Bu tür Naive Bayes modeli belge sınıflandırma problemlerinde kullanılır. Bir belgedeki kelimelerin sıklığını temsil eden özelliklerle çalışır. Sınıflandırıcı, bir belgenin spor, politika veya teknoloji gibi belirli bir kategoriye ait olma olasılığını belirlemek için kelimelerin oluşumunu ve sayısını dikkate alır.

2. Bernoulli Saf Bayes

Bu, çok terimli Naive Bayes'e benzer. Belge sınıflandırma görevleri için Bernoulli Naive Bayes sınıflandırıcısı kullanılır. Ancak boole tahmincilerini kullanır. Bir kelimenin var olup olmadığını temsil eder ve yalnızca Evet veya Hayır değerlerini alır. Sınıflandırıcı, bir kelimenin metinde bulunup bulunmamasına göre olasılıkları hesaplar.

3. Gauss Saf Bayes

Bu sınıflandırıcı sürekli değer durumunda kullanılır ancak ayrık değerde kullanılmaz. Bu sınıflandırıcı olasılıkları aşağıdaki parametreleri kullanarak hesaplar: Gauss dağılım, yani ortalama ve varyans.

Gauss Saf Bayes

Koşullu olasılık formülü şu şekilde değişir:

Gauss Saf Bayes

Naive Bayes Sınıflandırıcının Faydaları ve Sınırlamaları

Naive Bayes algoritmasının makine öğrenmesinde çeşitli avantajları ve dezavantajları bulunmaktadır.

Naive Bayes Sınıflandırıcının Faydaları

  • Sadelik ve Verimlilik: Naive Bayes'in eğitilmesi ve uygulanması basit ve kolaydır. Hesaplama maliyetinin düşük olması nedeniyle verimlidir. Büyük veri kümelerini verimli bir şekilde işleyebilir.
  • Hızlı Eğitim ve Tahmin: Naive Bayes, özellikler arasındaki bağımsızlık nedeniyle çok fazla eğitim verisine ihtiyaç duymaz. Model eğitildikten sonra hızlı bir şekilde tahmin yapabilir.
  • Ölçeklenebilirlik: Naive Bayes, çok sayıda özelliğe sahip yüksek boyutlu veri kümelerini işleyebilir. Özellik sayısı eğitim örneklerinin sayısından fazla olduğunda bile iyi performans gösterir. Veri noktalarının ve tahmincilerin sayısına göre ölçeklenir. Hem sürekli hem de ayrık verileri işler.
  • İlgisiz Özelliklere Karşı Sağlamlık: İlgisiz özelliklere duyarlı değildir.
  • Küçük Eğitim Setleriyle iyi çalışır: Naive Bayes, sınırlı eğitim verileriyle bile makul sonuçlar sağlayabilir. Eğitim örneklerinin sayısının az olduğu durumlarla başa çıkabilir. Çok fazla eğitim verisi gerektirmez.

Naive Bayes Sınıflandırıcının Sınırlandırılması

Naif Bayes makine öğrenme tüm özelliklerin birbirinden bağımsız olduğunu varsayar. Dolayısıyla verideki farklı özellikler arasındaki ilişkileri öğrenemez. Her özelliğe diğerleriyle hiçbir ilişkisi yokmuş gibi davranır.

Bu sorunun üstesinden gelmek için şunları kullanabilirsiniz: Karar ağaçları, Rastgele Ormanlar, Destek Vektör Makineleri (SVM), Sinir Ağları vb. Bu algoritmalar, verilerdeki özellikler arasındaki karmaşık ilişkileri ve bağımlılıkları öğrenme yeteneğine sahiptir. Bu nedenle daha doğru sonuçları tahmin edebilirler.

Naive Bayes Sınıflandırıcı Uygulamaları

Bu algoritma hızlı ve etkili olduğundan gerçek zamanlı tahminler yapmak için kullanabilirsiniz.

İstenmeyen Posta Algılama

E-posta hizmetleri (Gmail gibi) bir e-postanın spam olup olmadığını belirlemek için bu algoritmayı kullanır. Bu algoritma spam filtreleme için mükemmeldir.

Duygu Analizi

Kelime seçimi, cümle yapısı ve bağlam gibi özelliklere göre metni olumlu, olumsuz veya nötr olarak sınıflandırabilir. Sosyal medya izleme, müşteri incelemeleri ve pazar araştırmalarında uygulama alanı bulur.

Belge Sınıflandırma

Belgeleri, belgedeki belirli kelimelerin veya özelliklerin sıklığına veya varlığına göre spor, politika, teknoloji veya finans gibi kategorilere ayırabilir.

Tavsiye Sistemleri

Ürün, film veya makale önermeye yönelik kullanıcı ilgi alanlarını veya tercihlerini tahmin etmek için kullanıcı tercihlerini, geçmiş verileri ve öğe özelliklerini analiz edebilir.

Bu sınıflandırıcı algoritma aynı zamanda Yüz Tanıma, Hava Durumu Tahmini, Tıbbi Teşhis, Alışveriş, Haber Sınıflandırma vb. alanlarda da kullanılmaktadır. Naive Bayes'i Python. Naive Bayes sınıflandırıcısı sklearn vardır, yani sklearn.naive_bayes. Bu algoritmayı uygulayan modüldür.

Sonuç

Makine öğrenimindeki Naive Bayes algoritmaları çoğunlukla spam tespiti, haber sınıflandırması, duygu analizi, hava durumu tahmini, alışveriş vb. alanlarda kullanılan sınıflandırıcılardır. Naive Bayes algoritmaları Bayes Teoremine dayanmaktadır. Bu algoritma basit ve uygulaması kolaydır. Hızlı olduğundan gerçek zamanlı uygulamalarda kullanabiliriz. En büyük dezavantajı bağımsız özellikler üstlenmesidir (Bağımsız özellikler gerçek hayatta nadiren mümkün olduğundan Naif olarak bilinir). Her özelliği eşit olarak ele alır. Bu dezavantajın üstesinden gelmek için Karar Ağacı, Rastgele Orman, Destek Vektör Makinesi (SVM) vb. gibi diğer sınıflandırıcıları kullanabilirsiniz.