Makine Öğrenimi: Bölüm 2 – Naive Bayes

Selam! “Makine Öğrenimi” dersinin ilk bölümünde öğrenme, makine öğrenmesi gibi tanımlardan ve öğrenim çeşitlerinden örneklerle bahsetmeye çalışmıştım. Bunun devamı olarak da şimdi Bayes Karar Teorisi (Naive Bayes) kavramından bahsedeceğim.

KOŞULLU OLASILIK

Bu konuyu kavrayabilmek için başta koşullu olasılık kavramının ve nasıl işlediğinin bilincinde olmak gerekiyor. Olasılık dersim için paylaştığım bir bölümde bundan bahsetmiştim. Buraya tıklayarak ulaşabilirsiniz. Hatta orada Bayes Teoremi‘ni de göreceksiniz, fakat buradaki Bayes yaklaşımı işin biraz daha makine öğrenimi yüzüyle alakalı olacak.

 

NAIVE BAYES

Bu karar teoremi, basitçe verilen bir veri için her sınıfa ait olma olasılığını bir olasılık dağılım fonksiyonu olarak düşünüyor ve o noktada baskın olan olasılık fonksiyonunu seçerek sınıflandırma yapıyor. Hatırladığımız üzere Bayes denklemimizi aşağıdaki gibi kurmuştuk;

    \[P\left(C|x\right) = \frac{P(C) P(x|C)}{P(x)} \]

Buradaki denklem elemanlarımızı önce isimlendirmemiz ve anlamlarından, bizim için ne ifade ettiklerinden bahsetmemiz gerekecek.

    \[P\left(C|x\right) : Posterior \]

    \[P\left(C\right) : Prior\]

    \[P\left(x|C\right) : Likelihood\]

    \[P\left(x\right) : Evidence\]

Burada karşılıklarını yazmasına yazdık ama, bir olay üzerinde bu denklemi etüt ederken neye karşılık geldiklerini bilmemiz gerek.

Prior: Olaya genel olarak bakıldığında seçili sınıfın olma olasılığı

Posterior: Seçilen verinin belirli bir sınıfa ait olma olasılığı

Likelihood: Belirli bir sınıftan seçilen rasgele bir verinin bizim önceden seçtiğimiz veri olma olasılığı

Evidence: Verinin seçilme olasılığı. Bu kısım genelde normalizasyon (standardizasyon) için kullanılır. Çoğu kıyaslamada payda kısmını katmamıza gerek kalmayacak.

Discriminant Function: Posteriorları kıyaslayarak sonuca gidecek olan karar fonksiyonu. g(x) olarak gösterilir.

Bizim karar mekanizmamızı posterior olasılığımız belirleyecek. Seçtiğimiz, sorguya soktuğumuz verinin hangi sınıfa ait olmasının olasılığı daha yüksekse, Bayes seçimimiz de o sınıfın lehine olacak.

Örnek bir olay olarak 2 tür girdi ve 2 olası çıktı içeren bir problem düşünelim. Girdilerimiz ve olası çıktılarımız (sınıflarımız) şu şekilde olsun;

    \[x = [x_1, x_2]^T\]

    \[C = \{0, 1\}\]

Gördüğümüz gibi iki tip değişkenimiz var, bu değişkenlerin aldığı değerler ile de sınıf tahmini yapmaya çalışacağız. Aynı şekilde görebileceğiniz gibi iki çeşit de olası sınıfımız var, yani bizim seçim olarak 0 veya 1 dememiz gerekiyor. Önceden de bahsettiğim gibi posterior olasılığı yüksek olan sınıflandırmayı seçmemiz gerek. Mevcut problemde iki tip sınıfımız olduğu için posterior olasılığı 50%’den yüksek gelen sınıflandırmayı seçebiliriz.

    \[P(C = 1 | x_1, x_2) \geq 0.5 \Rightarrow C=1\]

    \[P(C = 2 | x_1, x_2) < 0.5 \Rightarrow C=2\]

Yukarıda görülen eşitsizlikleri şöyle açıklayabiliriz; Verilen 2 girdi değerime göre sınıf olasılığımı hesapladığımda olasılığım yarımdan büyükse seçimimi bu sınıf doğrultusunda, değilse diğer sınıf doğrultusunda yapıyorum.

    \[P(C = 0) + P(C = 1) = 1\]

İki tip sınıfa ait olma olasılığım var, bütün ihtimalleri topladığım için evrensel kümeyi elde etmiş oluyorum.

    \[P(x) = P(x|C=1)P(C=1)+P(x|C=1)P(C=1)\]

Verilen sınıflara dahil olduğunu bilerek belirli bir veriyi seçme olasılıklarımı topluyorum, bu da bana o veriyi bütün veriseti içerisinden seçme olasılığımı veriyor.

    \[P(C=0|x)+P(C=1|x) = 1\]

Bütün verisetinde işlediği gibi, tek bir veri bazında da iki tip sınıflandırma ihtimalim olacağı için yine sınıflandırmada evrensel kümeye ulaşmış oluyorum.

Şimdi örnek bir sınıflandırma problemini aşağıdaki verisetine bakarak çözelim ve bir Bayes sınıflandırıcısı tasarlayalım.

IDx1x2x3y
1100-
2010-
3001-
4000+
5111+

Gördüğümüz gibi 3 tane girdi ve bir tane de sınıf değerimiz var. Girdilerimiz ve sınıfımız 2 farklı değer alabiliyor. Biz bu sınıflandırıcımızı 5 adet veri kombinasyonu ile eğitmeye çalışacağız.

Öncelikle prior olasılıklarımızı, yani sınıfların genel olarak ortaya çıkma ihtimallerini yazalım.

    \[P(y = +) = \frac{2}{5}\]

    \[P(y = -) = \frac{3}{5}\]

Şimdi de likelihood olasılıklarını yazalım, bunlar da belirli sınıflar içerisinde verinin istenen değeri alma olasılıkları. Bu biraz uzun sürecek.

    \[P(x_1 = 1 | y = -) = \frac{1}{3}\]

    \[P(x_1 = 0 | y = -) = \frac{2}{3}\]

    \[P(x_2 = 1 | y = -) = \frac{1}{3}\]

    \[P(x_2 = 0 | y = -) = \frac{2}{3}\]

    \[P(x_3 = 1 | y = -) = \frac{1}{3}\]

    \[P(x_3 = 0 | y = -) = \frac{2}{3}\]

    \[P(x_1 = 1 | y = +) = \frac{1}{2}\]

    \[P(x_1 = 0 | y = +) = \frac{1}{2}\]

    \[P(x_2 = 1 | y = +) = \frac{1}{2}\]

    \[P(x_2 = 0 | y = +) = \frac{1}{2}\]

    \[P(x_3 = 1 | y = +) = \frac{1}{2}\]

    \[P(x_3 = 0 | y = +) = \frac{1}{2}\]

Bu ayrık likelihood formlarını birleşik bir girdi vektörü olarak yazıp prior değerleri ile çarparsak, aşağıdaki gibi bir formul edebiliriz;

    \[P(x | y = -)P(y = -) = P(x_1 | y = -)P(x_2 | y = -)P(x_3 | y = -)P(y = -)\]

    \[P(x | y = +)P(y = +) = P(x_1 | y = +)P(x_2 | y = +)P(x_3 | y = +)P(y = +)\]

Bu şekilde ana bir girdi vektörü oluşturduk;

    \[x = [x_1, x_2, x_3]\]

Yukarıda yazdığımız denklemler aslında Bayes formülümüzün pay kısmı, ancak paydalar her iki tahmin denklemi için de aynı olacağından, hesaba katmayacağız.

Şimdi önceden hiç hesaba katmadığımız yeni bir veri uyduralım ve sınıfını tahmin edelim;

    \[x_t = [x_1 = 1, x_2 = 1, x_3 = 0]\]

Karar mekanizmamız olan ayırma fonksiyonumuzu yukarıda bulduğumuz tanıma göre yazalım ve verilen değerler ile sonucu hesaplayalım;

    \[g(x_t)_{(y = -)} = P(x_1 = 1 | y = -)P(x_2 = 1 | y = -)P(x_3 = 0 | y = -)P(y = -)\]

    \[g(x_t)_{(y = +)} = P(x_1 = 1 | y = +)P(x_2 = 1 | y = +)P(x_3 = 0 | y = +)P(y = +)\]

    \[g(x_t)_{(y = -)} = \frac{1}{3}\frac{1}{3}\frac{2}{3}\frac{3}{5} = \frac{2}{45}\]

    \[g(x_t)_{(y = +)} = \frac{1}{2}\frac{1}{2}\frac{1}{2}\frac{2}{5} = \frac{1}{20}\]

    \[g(x_t)_{(y = +)} > g(x_t)_{(y = -)}\]

Bu yüzden bu yeni noktamızı + olarak sınıflandırmış olduk.

 

 

 

Kimler Neler Demiş?

avatar
  Subscribe  
Notify of