Naive Bayes Sınıflandırıcısı Nedir? Basit Örneklerle Konu Anlatımı

Naive Bayes sınıflandırıcısı, olasılık teorisinin temelini oluşturan Bayes Teoremine dayanan ve makine öğreniminde veri noktalarını gruplara ayırmak için kullanılan süpervizeli (gözetimli) bir sınıflandırma algoritmasıdır. Günlük hayatta e-postaların spam olarak işaretlenmesinden duygu analizine, hastalık teşhisinden metin kategorizasyonuna kadar pek çok yapay zeka ve veri madenciliği uygulamasında yüksek hızı ve etkinliği nedeniyle tercih edilmektedir.
- Bayes Teoreminin temel mantığını ve matematiksel formülünü kavramak
- Naive Bayes algoritmasının neden ‘saf’ (naive) olarak adlandırıldığını öğrenmek
- Sınıflandırıcının üç ana türü (Gaussian, Multinomial, Bernoulli) arasındaki farkları ayırt etmek
- Basit bir veri seti üzerinde adım adım olasılık hesaplaması yapabilmek
- Algoritmanın güçlü, zayıf yönlerini ve gerçek dünyadaki kullanım alanlarını analiz etmek
- Olasılık Temelli Yapı: Kesin kurallar yerine ‘olasılık değerlerine’ göre karar verir.
- Bağımsızlık Varsayımı: Tüm özniteliklerin (özelliklerin) birbirinden tamamen bağımsız olduğunu kabul eder.
- Yüksek Hız ve Verimlilik: Eğitim süreci son derece hızlıdır ve az miktarda veriyle başarılı sonuçlar üretebilir.
- Metin Madenciliği Başarısı: Doğal dil işleme ve spam tespitinde en popüler algoritmalardan biridir.
Naive Bayes Sınıflandırıcısı Nedir ve Nasıl Çalışır?
Makine öğrenimi dünyasında veri sınıflandırma, karmaşık veri kümesindeki bir girdinin hangi kategoriye ait olduğunu tahmin etme sürecidir. Naive Bayes sınıflandırıcısı, bu süreci olasılık hesapları üzerinden gerçekleştirir. Algoritma, geçmiş verilerden öğrenerek yeni gelen bir bilginin A sınıfına mı yoksa B sınıfına mı ait olma ihtimalinin daha yüksek olduğunu belirler.
Algoritmanın çalışma prensibi oldukça anlaşılırdır. Öncelikle eldeki eğitim verileri incelenerek her bir durumun gerçekleşme sıklığı hesaplanır. Yeni bir veri noktası geldiğinde, bu noktanın taşıdığı özelliklerin her bir sınıf için oluşturduğu olasılıklar ayrı ayrı çarpılır. En yüksek olasılık değerini üreten kategori, tahmin edilen sınıf olarak seçilir.
Örneğin bir hava durumu tahmin modelinde ‘Rüzgarlı’, ‘Nemli’ ve ‘Bulutlu’ verilerini inceleyen Naive Bayes algoritması, geçmiş tecrübelere bakarak ‘Yağmur Yağacak’ veya ‘Yağmur Yağmayacak’ olasılıklarını hesaplar. Hangi seçeneğin yüzdesi yüksek çıkarsa tahmin o yönde şekillenir.
Bayes Teoremi ve Matematiksel Temeli
Naive Bayes algoritmasının arkasındaki güç, 18. yüzyılda İngiliz matematikçi Thomas Bayes tarafından geliştirilen Bayes Teoreminden gelir. Bayes Teoremi, bir olayın gerçekleşme olasılığını, o olayla ilgili önceden bilinen koşullara dayanarak hesaplamamızı sağlar. Bu kavrama literatürde koşullu olasılık adı verilir.
Bayes Teoreminin temel matematiksel ifadesi şu şekildedir:
Formülde yer alan bileşenlerin anlamları şu şekildedir:
- P(A|B) (Posterior – Sonsal Olasılık): B olayı gerçekleştiğinde A olayının meydana gelme olasılığıdır. Tahmin etmek istediğimiz nihai değerdir.
- P(B|A) (Likelihood – Olabilirlik): A olayının doğru olduğu bilindiğinde B olayının gözlemlenme olasılığıdır.
- P(A) (Prior – Önsel Olasılık): B olayı dikkate alınmadan önce A olayının gerçekleşme olasılığıdır.
- P(B) (Marginal Likelihood – Marjinal Olabilirlik / Kanıt): B olayının genel gerçekleşme olasılığıdır. Sabit bir değer olduğu için genellikle karşılaştırmalarda bölen olarak göz ardı edilebilir.
Makine öğrenimi diline uyarladığımızda; ‘A’ harfi tahmin etmek istediğimiz hedef sınıfı (örneğin Spam E-posta), ‘B’ harfi ise elimizdeki öznitelikleri (örneğin e-postada geçen kelimeleri) temsil eder. Model, verilen kelimelere bakarak e-postanın spam olma olasılığını tam olarak bu denklem üzerinden bulur.
Neden “Naive” (Saf / Toy) Olarak Adlandırılır?
İngilizcedeki ‘Naive’ kelimesi Türkçe’ye ‘saf’, ‘toy’ veya ‘deneyimsiz’ olarak çevrilebilir. Algoritmanın bu şekilde adlandırılmasının çok özel ve kritik bir nedeni vardır: Algoritma, modele giren tüm özelliklerin (özniteliklerin) birbirinden tamamen bağımsız olduğunu varsayar.
Gerçek hayatta özellikler genellikle birbirleriyle ilişkilidir. Örneğin bir meyveyi sınıflandırırken renginin kırmızı, şeklinin yuvarlak ve çapının 7 cm olması birbirini etkileyen durumlar olabilir. Ancak Naive Bayes algoritması bu üç özelliğin birbiriyle hiçbir bağı olmadığını, her birinin nihai karara birbirinden habersiz şekilde katkı sağladığını kabul eder.
Bu bağımsızlık varsayımı sayısal hesaplamaları inanılmaz derecede basitleştirir. Karmaşık matris işlemleri veya değişken etkileşim hesapları yerine, sadece basit çarpma işlemleri yapılarak devasa veri kümeleri saniyeler içinde işlenebilir hâle gelir.
Naive Bayes Sınıflandırıcı Türleri
İşlenen verinin türüne ve dağılımına bağlı olarak Naive Bayes algoritmasının farklı varyasyonları kullanılır. Doğru veri tipi için doğru varyasyonu seçmek, modelin başarısını doğrudan etkiler. Makine Öğrenimi ile Tahminleme: Regresyon Analizi Konu Anlatımı, bu açıdan bakıldığında konuyu tamamlayan güzel bir örnektir.
| Algoritma Türü | Veri Tipi | Kullanım Alanı Örneği |
|---|---|---|
| Gaussian Naive Bayes | Sürekli (Ondalıklı/Sayısal) Veriler | Boy, kilo, sıcaklık, kan basıncı değerleri |
| Multinomial Naive Bayes | Kesikli Frekans Verileri | Kelime sayımları, metin kategorizasyonu |
| Bernoulli Naive Bayes | İkili (Binary 0/1) Veriler | Kelime var/yok durumu, Evet/Hayır tercihleri |
1. Gaussian Naive Bayes
Verilerin sürekli (continuous) sayısal değerlerden oluştuğu durumlarda tercih edilir. Değişkenlerin normal dağılıma (Gauss / Çan Eğrisi dağılımı) uyduğu varsayılır. Örneğin bir insanın yaşı, boyu ve kilosu üzerinden cinsiyet tahmini yapılırken Gaussian Naive Bayes kullanılır.
2. Multinomial Naive Bayes
Özellikle metin sınıflandırma problemlerinde en sık kullanılan türdür. Verilerin belirli olayların gerçekleşme sıklığını (frekansını) temsil ettiği senaryolarda çalışır. Bir makalede veya e-postada kelimelerin kaçar kez geçtiği bilgisi Multinomial model ile analiz edilir.
3. Bernoulli Naive Bayes
Özniteliklerin ikili (binary) yani sadece iki farklı değer (0 veya 1, Var veya Yok, Doğru veya Yanlış) alabildiği durumlar için tasarlanmıştır. Örneğin bir e-postada ‘indirim’ kelimesinin kaç kez geçtiği değil, sadece ‘var mı yok mu’ bilgisi üzerinden karar verilecekse Bernoulli Naive Bayes kullanılır.
Adım Adım Basit Bir Örnek Hesaplama
Konuyu tam olarak pekiştirmek için küçük bir hava durumu veri seti üzerinden hesaplama yapalım. Amacımız, havanın durumuna bakarak futbol oynanıp oynanamayacağını tahmin etmektir. Denetimli ve Denetimsiz Öğrenme Nedir? Örneklerle Konu Anlatımı da bu konunun pratikteki bir başka yansımasını gösterir.
Elimizde 10 günlük bir geçmiş veri olduğunu varsayalım:
- Toplam Gün Sayısı: 10
- Futbol Oynanan Günler (Evet): 6 gün
- Futbol Oynanmayan Günler (Hayır): 4 gün
Geçmiş Veri Dağılımı:
- Güneşli havalarda: 3 kez ‘Evet’, 1 kez ‘Hayır’ denmiş.
- Yağmurlu havalarda: 3 kez ‘Evet’, 3 kez ‘Hayır’ denmiş.
Soru: Hava Güneşli olduğunda futbol oynanma olasılığı nedir?
Çözüm Adımları:
- Önsel Olasılıklar (Prior):
P(Evet) = 6 / 10 = 0.6
P(Hayır) = 4 / 10 = 0.4 - Olabilirlik (Likelihood) Değerleri:
P(Güneşli | Evet) = 3 / 6 = 0.5
P(Güneşli | Hayır) = 1 / 4 = 0.25 - Sonsal Olasılık Hesaplama (Posterior Unnormalized):
P(Evet | Güneşli) ∝ P(Güneşli | Evet) × P(Evet) = 0.5 × 0.6 = 0.30
P(Hayır | Güneşli) ∝ P(Güneşli | Hayır) × P(Hayır) = 0.25 × 0.4 = 0.10 - Normalize Etme (Yüzdeye Çevirme):
Toplam Olasılık = 0.30 + 0.10 = 0.40
P(Evet | Güneşli) = 0.30 / 0.40 = %75
P(Hayır | Güneşli) = 0.10 / 0.40 = %25
Sonuç: Hava Güneşli olduğunda %75 olasılıkla futbol oynanacaktır. Algoritma girdi verisini ‘Evet’ olarak sınıflandırır.
Naive Bayes Algoritmasının Kullanım Alanları
Hesaplama kolaylığı ve düşük kaynak tüketimi sayesinde Naive Bayes, endüstride ve akademide geniş bir uygulama alanına sahiptir.
- E-Posta Spam Filtreleme: Gelen kutunuza düşen e-postaların ‘Spam’ mi yoksa ‘Gelen Kutusu’ mu olduğunu içerikteki kelimelerin olasılıklarına bakarak anında ayırt eder.
- Duygu Analizi (Sentiment Analysis): Müşteri yorumlarını, tweetleri veya ürün değerlendirmelerini inceleyerek metnin ‘Pozitif’, ‘Negatif’ ya da ‘Nötr’ olduğunu belirler.
- Haber ve İçerik Kategorizasyonu: Gazete ve blog yazılarının otomatik olarak ‘Spor’, ‘Siyaset’, ‘Teknoloji’ gibi başlıklar altında sınıflandırılmasını sağlar.
- Tıbbi Teşhis Sistemleri: Hastanın şikayetleri ve tahlil sonuçlarına bakarak belirli bir hastalığa yakalanma olasılığını hesaplar ve doktorlara karar destek sunar.
- Gerçek Zamanlı Öneri Sistemleri: Hızlı hesaplama kapasitesi sayesinde kullanıcının anlık hareketlerine göre içerik önerisinde bulunur.
Naive Bayes Algoritmasının Avantajları ve Dezavantajları
Her algoritma gibi Naive Bayes’in de kendine özgü güçlü yanları ve sınırlılıkları bulunur. Bir projede bu algoritmayı seçmeden önce artılarını ve eksilerini değerlendirmek kritik önem taşır.
Avantajları
- Aşırı Hızlıdır: Eğitim ve tahmin süreçleri diğer karmaşık makine öğrenimi modellerine (Derin Öğrenme, SVM vb.) kıyasla son derece hızlı gerçekleşir.
- Küçük Veri Setlerinde Başarılıdır: Az sayıda eğitim verisiyle bile makul ve kararlı tahminler üretebilir.
- Çok Sınıflı (Multi-class) Tahminler: Birden fazla kategorinin olduğu sınıflandırma problemlerinde kolayca ölçeklenebilir.
- Kolay Uygulanır: Matematiksel altyapısının basitliği sayesinde kodlaması ve anlaşılması oldukça rahattır.
Dezavantajları ve Dikkat Edilmesi Gerekenler
- Sıkı Bağımsızlık Varsayımı: Gerçek hayattaki verilerde öznitelikler genellikle ilişkilidir. Bağımsızlık varsayımı aşırı derecede ihlal edildiğinde modelin performansı düşebilir.
- Olasılık Değerlerinin Güvenilirliği: Sınıflandırma kararı doğru olsa bile hesaplanan olasılık yüzdeleri her zaman gerçekçi olmayabilir.
Diğer Sınıflandırma Algoritmalarıyla Karşılaştırma
Sınıflandırma problemlerinde sıklıkla Karar Ağaçları (Decision Trees), Lojistik Regresyon ve K-En Yakın Komşu (KNN) gibi alternatif algoritmalar da tercih edilir. Naive Bayes’i bu yöntemlerden ayıran temel farklar şunlardır:
- Karar Ağaçları (Decision Trees): Karar ağaçları verideki karmaşık ilişkileri ve kural yapılarını öğrenmede başarılıdır ancak aşırı öğrenmeye (overfitting) yatkındır. Naive Bayes ise parametre sayısı az olduğu için kolay kolay aşırı öğrenmez.
- Lojistik Regresyon: Lojistik regresyon değişkenler arasındaki ilişkileri katsayılarla modeller. Büyük boyutlu metin verilerinde Naive Bayes genellikle Lojistik Regresyondan daha hızlı eğitilir.
- KNN (K-Nearest Neighbors): KNN verileri hafızasında tutar ve tahmin anında tüm mesafeleri tekrar hesaplar, bu da büyük veride yavaşlamaya neden olur. Naive Bayes ise modeli önceden eğittiği için tahmin anında milisaniyeler içinde yanıt verir.
Öğrendiklerinizi Pekiştirin: Pratik Yapma Zamanı
Naive Bayes sınıflandırıcısı, yapay zeka dünyasına adım atan her öğrencinin ve veri bilimcinin mutlaka bilmesi gereken temel bir köşetaşıdır. Mantığını anlamak, daha karmaşık algoritmaları kavramak için sağlam bir zemin hazırlar. Konu ilerledikçe Model Başarısında Yanlılık ve Varyans Dengesi Konu Anlatımı ile bağlantılı noktalar da karşımıza çıkar.
Geliştireceğiniz projelerde metin veri kümesiyle çalışıyorsanız ya da hızlı bir başlangıç modeli (baseline model) kurmak istiyorsanız, Naive Bayes her zaman ilk başvurmanız gereken etkili yöntemlerden biri olmalıdır. Python dilinde scikit-learn kütüphanesinde yer alan GaussianNB, MultinomialNB veya BernoulliNB sınıflarını kullanarak yalnızca birkaç satır kodla kendi modelinizi kolayca oluşturabilirsiniz.
- Naive Bayes algoritmasının adındaki “Naive” (Saf) kelimesi hangi temel varsayımdan kaynaklanmaktadır?
- Sıfır Frekans (Zero Frequency) problemi nedir ve bu sorunu çözmek için hangi matematiksel teknik kullanılır?
- Metin sınıflandırması ve spam e-posta tespiti yaparken hangi Naive Bayes türünü tercih etmek daha uygundur?
- Sürekli (ondalıklı) sayısal veriler içeren bir veri setinde hangi Naive Bayes türü kullanılmalıdır?
- Temel İlke: Algoritma, olasılıksal tahminler için Bayes Teoremini kullanır.
- Öznitelik Bağımsızlığı: Tüm özelliklerin birbirinden bağımsız olduğu kabul edilir.
- Üç Ana Tür: Sayısal veriler için Gaussian, metin frekansları için Multinomial, ikili veriler için Bernoulli kullanılır.
- Laplace Düzeltmesi: Sıfır frekans hatasını önlemek için kullanılan önemli bir tekniktir.
- En Güçlü Yönü: Doğal dil işleme, duygu analizi ve spam filtrelemede yüksek hız ve başarı gösterir.
Sıkça Sorulan Sorular
- TÜBİTAK Bilim Genç — Yapay zeka ve makine öğrenimi temel kavramları bilgilendirme kaynağı
- MEB Mesleki ve Teknik Eğitim Genel Müdürlüğü — Yazılım ve Veri Tabanı Eğitimi Ders Materyalleri



