Size daha iyi hizmet sunabilmek için çerezleri kullanıyoruz.
Web sitemizde gezinme deneyiminizi geliştirmek, size kişiselleştirilmiş içerik ve hedefli reklamlar göstermek, web sitesi trafiğimizi analiz etmek ve ziyaretçilerimizin nereden geldiğini anlamak için çerezleri ve diğer izleme teknolojilerini kullanıyoruz.
⚠️
KVKK ve Çerez Politikası Bilgilendirmesi
6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK) ve Aydınlatma Yükümlülüğü kapsamında; web sitemizin temel fonksiyonlarının çalışabilmesi, veri güvenliğinin sağlanması ve performans analizi yapılabilmesi için zorunlu çerezlerin kullanımı gerekmektedir. Çerez kullanımını reddetmeniz halinde, teknik imkansızlıklar ve veri senkronizasyonu kesintileri nedeniyle web sitemizdeki hizmetlerden yararlanmanız mümkün olmamaktadır. Sitemizdeki içeriklere erişebilmek için çerez kullanımını onaylamanız gerekmektedir.
Naive Bayes Algoritmasının Teorik Temelleri ve Uygulama Stratejileri
Makine öğrenmesi dünyasında olasılıksal yaklaşımlar, özellikle sınıflandırma problemlerinde sağlam ve hesaplama açısından verimli bir temel sunar. Naive Bayes, Bayes Teoremi’ni temel alan, değişkenler arasındaki bağımsızlık varsayımına dayanan “üretici” (generative) bir modelleme yaklaşımıdır. Karmaşık veri setlerinde dahi oldukça yüksek performans göstermesi, onu doğal dil işleme (NLP) ve spam tespiti gibi alanlarda vazgeçilmez bir araç haline getirir.
Şekil 1: Naive Bayes Algoritmasının Teorik Temelleri ve Uygulama Stratejileri.
Olasılıksal Çerçeve ve Bayes Teoremi
Naive Bayes, bir veri noktasının belirli bir sınıfa ait olma olasılığını, o sınıfa ait olan özniteliklerin (feature) koşullu olasılıkları üzerinden hesaplar. Bayes Teoremi şu formülle ifade edilir:
$$P(C|X) = \frac{P(X|C) \cdot P(C)}{P(X)}$$
Burada:
$P(C|X)$: Veri $X$ verildiğinde $C$ sınıfının gerçekleşme olasılığı (Posterior).
$P(X|C)$: $C$ sınıfı bilindiğinde $X$ veri noktasının gözlemlenme olasılığı (Likelihood).
$P(C)$: $C$ sınıfının toplam veri içindeki görülme sıklığı (Prior).
$P(X)$: Verinin genel dağılım olasılığı (Evidence).
Naive Bayes modelini “naif” (saf) yapan nokta, tüm özniteliklerin birbirinden bağımsız olduğu varsayımıdır. Yani, bir kelimenin bir e-postada geçmesi, diğer kelimelerin geçme olasılığını etkilemez. Matematiksel olarak:
Verinin yapısına bağlı olarak farklı Naive Bayes varyantları kullanılır:
1. Gaussian Naive Bayes
Özniteliklerin sürekli değerlere sahip olduğu ve normal (Gaussian) dağılım gösterdiği durumlarda tercih edilir. Her özniteliğin ortalama ($\mu$) ve varyansı ($\sigma^2$) kullanılarak olasılık yoğunluk fonksiyonu hesaplanır:
Metin sınıflandırma gibi frekans tabanlı verilerde kullanılır. Öznitelikler, bir olayın gerçekleşme sayısı (örneğin kelime sayısı) ile temsil edilir.
3. Bernoulli Naive Bayes
Özniteliklerin sadece ikili (boolean) olduğu durumlarda kullanılır (örneğin: kelime metinde var mı yok mu?).
Uygulama Pratiği ve Python Kütüphaneleri
Python ekosisteminde scikit-learn, Naive Bayes uygulamaları için en optimize kütüphanedir. Aşağıda, metin verileri üzerinde MultinomialNB kullanımına dair temel bir yapı bulunmaktadır.
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import make_pipeline
# Örnek veri setidata = ["spam reklam içeriği", "iş toplantısı raporu", "çekiliş kazandınız"]
labels = [1, 0, 1]
# Pipeline kurulumu: Vektörleştirme + Modelmodel = make_pipeline(CountVectorizer(), MultinomialNB())
# Eğitimmodel.fit(data, labels)
# Tahminprint(model.predict(["iş toplantısı"]))
Avantajlar ve Sınırlamalar
Naive Bayes, büyük veri setlerinde oldukça hızlı çalışır. Eğitim süreci, verinin tek bir geçişiyle tamamlanabilir ($O(n \cdot d)$ karmaşıklığı). Ancak, “bağımsızlık varsayımı” gerçek dünyadaki verilerde çoğu zaman ihlal edilir. Bir kelimenin anlamı, kendinden önceki kelimeye bağlıyken, Naive Bayes bu bağlamı görmezden gelir.
Not: Verideki özniteliklerden biri eğitim setinde hiç görülmemişse, olasılık çarpımı sıfır olacaktır. Bunu engellemek için Laplace Düzeltme (Laplace Smoothing) tekniği kullanılır. Bu teknik, tüm olasılıklara küçük bir değer ekleyerek sıfır olasılığı sorununu ortadan kaldırır.
İleri Seviye Optimizasyonlar
Modelin başarısını artırmak için şu stratejiler uygulanmalıdır:
Log-Space Hesaplama: Olasılık değerleri çok küçük olduğunda çarpma işlemi bilgisayarda “underflow” hatasına yol açar. Bu yüzden logaritmik toplama işlemi tercih edilir:
Dengeli Veri Seti: Naive Bayes, azınlık sınıflara karşı hassas olabilir. Örnekleme yöntemleri (oversampling/undersampling) ile veri seti dengelenmelidir.
Sonuç
Naive Bayes, basitliği ve matematiksel zarafeti ile makine öğrenmesi mimarilerinin yapı taşıdır. Derin öğrenme modelleri (Transformer, BERT vb.) kadar karmaşık olmasa da, kaynak kısıtlılığı olan sistemlerde ve hızlı prototipleme gerektiren durumlarda, doğru hiperparametre optimizasyonlarıyla hala en iyi modellerden biri olmaya devam etmektedir.