Naive Bayes Neden Basit Ama Etkili: Olasılık Temelleri

Naive Bayes, makine öğrenmesinin en sade ama güçlü yöntemlerinden biri. Adı "saf" anlamına gelen "naive" kelimesinden geliyor çünkü özelliklerin birbirinden bağımsız olduğunu varsayar, bu varsayım gerçekte çoğu zaman yanlış olsa da, yöntemi hızlı ve etkili kılar.

Temel fikir Bayes teoreminden gelir. Bir e-postanın spam olma olasılığını hesaplamak istiyorsun. Bayes teoremi şöyle der:

1P(Spam | Kelimeler) = P(Kelimeler | Spam) × P(Spam) / P(Kelimeler)

Bu formülde P(Spam | Kelimeler), e-postadaki kelimeleri gördüğümüzde bunun spam olma olasılığı. P(Kelimeler | Spam) ise spam e-postaların bu kelimeleri içerme olasılığı. Eğitim verilerinden bu olasılıkları hesaplayabilirsin.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Naive Bayes'in "saf" tarafı burada ortaya çıkıyor. Her kelimeyi bağımsız kabul eder. Yani "ücretsiz" ve "para" kelimeleri birlikte spam göstergesi olsa bile, algoritma onları ayrı ayrı hesaplar ve çarpar. Gerçekte kelimeler ilişkili olabilir ama bu basitleştirme hesaplamayı çok hızlandırır.

Python'da scikit-learn kütüphanesiyle bir örnek yapalım:

1from sklearn.naive_bayes import MultinomialNB
2from sklearn.feature_extraction.text import CountVectorizer
3
4# Eğitim verisi
5metinler = [
6"ücretsiz para kazan",
7"acil tıbbi yardım gerekli",
8"özel teklif sadece bugün",
9"merhaba nasılsın",
10"toplantı saatimiz 3'te"
11]
12etiketi = [1, 1, 1, 0, 0] # 1=spam, 0=normal
13
14# Metinleri sayılara çevir
15vectorizer = CountVectorizer()
16X = vectorizer.fit_transform(metinler)
17
18# Model eğit
19model = MultinomialNB()
20model.fit(X, etiketi)
21
22# Tahmin et
23test = vectorizer.transform(["ücretsiz para kazan"])
24print(model.predict(test)) # Çıktı: [1]
25print(model.predict_proba(test)) # Olasılıklar: [[0.33 0.67]]

Çıktı gösterir ki e-posta %67 olasılıkla spam. Naive Bayes hızlı çalışır ve az veriyle başarılı sonuçlar verir. Metin sınıflandırması, spam filtreleme ve haber kategorilendirmede standart seçimdir. Karmaşık ilişkileri modellemek için daha gelişmiş yöntemlere ihtiyaç duyarsan da, hızlı bir başlangıç için Naive Bayes her zaman iyi bir seçenektir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz