{"id":33154,"date":"2025-10-30T09:01:36","date_gmt":"2025-10-30T06:01:36","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/"},"modified":"2025-10-30T09:01:36","modified_gmt":"2025-10-30T06:01:36","slug":"r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/","title":{"rendered":"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya"},"content":{"rendered":"<p><body><\/p>\n<p>B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama g\u00fc\u00e7l\u00fc bir makine \u00f6\u011frenimi algoritmas\u0131 olan Na\u00efve Bayes ile bu karma\u015f\u0131k s\u0131n\u0131fland\u0131rma problemlerini R ortam\u0131nda nas\u0131l \u00e7\u00f6zebilece\u011finizi merak ediyor musunuz? Bu rehber, spam filtrelemeden duygu analizine kadar geni\u015f bir yelpazede ger\u00e7ek d\u00fcnya uygulamalar\u0131yla Na\u00efve Bayes&#8217;in t\u00fcm s\u0131rlar\u0131n\u0131 a\u00e7\u0131\u011fa \u00e7\u0131karacak.<\/p>\n<p>Dijital \u00e7a\u011fda, her g\u00fcn devasa miktarda veri \u00fcretiliyor ve bu verilerin anlaml\u0131 kategorilere ayr\u0131lmas\u0131, i\u015f s\u00fcre\u00e7lerinin optimize edilmesinden ki\u015fiselle\u015ftirilmi\u015f m\u00fc\u015fteri deneyimleri sunmaya kadar pek \u00e7ok alanda kritik bir ihtiya\u00e7 haline gelmi\u015ftir. E-posta gelen kutunuza d\u00fc\u015fen bir mesaj\u0131n spam mi yoksa \u00f6nemli mi oldu\u011funu otomatik olarak belirlemek veya bir \u00fcr\u00fcn hakk\u0131nda yaz\u0131lan binlerce yorumdan olumlu ve olumsuz olanlar\u0131 ay\u0131rt etmek gibi g\u00f6revler, s\u0131n\u0131fland\u0131rma algoritmalar\u0131n\u0131n yeteneklerini gerektirir. \u0130\u015fte tam bu noktada, basitli\u011fine ra\u011fmen \u015fa\u015f\u0131rt\u0131c\u0131 derecede etkili sonu\u00e7lar sunan Na\u00efve Bayes s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131 devreye giriyor.<\/p>\n<p>Na\u00efve Bayes, olas\u0131l\u0131k teorisinin temel ta\u015flar\u0131ndan biri olan Bayes Teoremi&#8217;ne dayanan bir makine \u00f6\u011frenimi algoritmas\u0131d\u0131r. Ad\u0131ndaki &#8220;Na\u00efve&#8221; (T\u00fcrk\u00e7e kar\u015f\u0131l\u0131\u011f\u0131 &#8220;naif&#8221; veya &#8220;saf&#8221;) kelimesi, modelin temel bir varsay\u0131mdan gelmektedir: t\u00fcm \u00f6zniteliklerin (veya \u00f6zelliklerin) birbirlerinden ko\u015fullu olarak ba\u011f\u0131ms\u0131z oldu\u011fu kabul edilir. Yani, bir e-postadaki &#8220;indirim&#8221; kelimesinin varl\u0131\u011f\u0131, &#8220;para&#8221; kelimesinin varl\u0131\u011f\u0131ndan ba\u011f\u0131ms\u0131z olarak spam olas\u0131l\u0131\u011f\u0131n\u0131 etkiler \u015feklinde basitle\u015ftirilmi\u015f bir bak\u0131\u015f a\u00e7\u0131s\u0131 benimser. Bu varsay\u0131m ger\u00e7ek d\u00fcnyada nadiren tam olarak do\u011fru olsa da, Na\u00efve Bayes&#8217;in pratikteki ba\u015far\u0131s\u0131n\u0131 engellemez; aksine, onu \u00f6zellikle b\u00fcy\u00fck boyutlu veri setleri ve y\u00fcksek boyutlu \u00f6zellik uzaylar\u0131 i\u00e7in hesaplama a\u00e7\u0131s\u0131ndan verimli ve h\u0131zl\u0131 bir \u00e7\u00f6z\u00fcm haline getirir.<\/p>\n<p>Bu algoritman\u0131n \u00f6nemi, birka\u00e7 temel avantaj\u0131ndan kaynaklanmaktad\u0131r. \u0130lk olarak, Na\u00efve Bayes, nispeten az e\u011fitim verisiyle bile ba\u015far\u0131l\u0131 sonu\u00e7lar elde edebilir. Bu, \u00f6zellikle veri toplaman\u0131n zor veya maliyetli oldu\u011fu durumlarda b\u00fcy\u00fck bir avantajd\u0131r. \u0130kinci olarak, algoritma olduk\u00e7a h\u0131zl\u0131d\u0131r. E\u011fitim ve tahmin s\u00fcre\u00e7leri, di\u011fer karma\u015f\u0131k s\u0131n\u0131fland\u0131r\u0131c\u0131lara g\u00f6re \u00e7ok daha az hesaplama g\u00fcc\u00fc gerektirir. Bu durum, ger\u00e7ek zamanl\u0131 s\u0131n\u0131fland\u0131rma uygulamalar\u0131 i\u00e7in Na\u00efve Bayes&#8217;i ideal bir aday yapar. \u00d6rne\u011fin, bir web sitesinde an\u0131nda sahte yorum tespiti veya bir g\u00fcvenlik sisteminde anomali belirleme gibi senaryolarda h\u0131zl\u0131 tepki s\u00fcreleri hayati \u00f6nem ta\u015f\u0131r. \u00dc\u00e7\u00fcnc\u00fc olarak, g\u00fcr\u00fclt\u00fcl\u00fc verilere kar\u015f\u0131 nispeten dayan\u0131kl\u0131d\u0131r. Yani, veri setinizdeki baz\u0131 hatal\u0131 veya eksik bilgilerin modelin genel performans\u0131 \u00fczerinde \u00e7ok b\u00fcy\u00fck bir olumsuz etkisi olmayabilir.<\/p>\n<p>\u00d6zetle, Na\u00efve Bayes, metin s\u0131n\u0131fland\u0131rmas\u0131ndan (spam alg\u0131lama, duygu analizi, konu s\u0131n\u0131fland\u0131rma) t\u0131bbi te\u015fhislere, hatta hava durumu tahminlerine kadar geni\u015f bir uygulama alan\u0131na sahiptir. Basit yap\u0131s\u0131, h\u0131zl\u0131 performans\u0131 ve d\u00fc\u015f\u00fck veri gereksinimi sayesinde, makine \u00f6\u011frenimine yeni ba\u015flayanlar i\u00e7in anla\u015f\u0131lmas\u0131 kolay bir ba\u015flang\u0131\u00e7 noktas\u0131 sunarken, deneyimli veri bilimciler i\u00e7in de g\u00fc\u00e7l\u00fc bir ara\u00e7 olmaya devam etmektedir. Ancak, her ara\u00e7 gibi Na\u00efve Bayes&#8217;in de s\u0131n\u0131rlar\u0131 vard\u0131r. &#8220;Naif&#8221; varsay\u0131m\u0131n k\u0131s\u0131tlamalar\u0131, \u00f6znitelikler aras\u0131nda g\u00fc\u00e7l\u00fc ba\u011f\u0131ml\u0131l\u0131klar\u0131n oldu\u011fu durumlarda performans d\u00fc\u015f\u00fc\u015f\u00fcne neden olabilir. Bu gibi durumlar\u0131 anlamak ve y\u00f6netmek, modelden en iyi verimi alman\u0131z\u0131 sa\u011flayacakt\u0131r. Bu rehber boyunca, bu avantajlar\u0131 nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve potansiyel s\u0131n\u0131rlamalar\u0131 nas\u0131l a\u015faca\u011f\u0131n\u0131z\u0131 derinlemesine inceleyece\u011fiz.<\/p>\n<h2 id=\"bayes-teoreminin-temelleri-naive-bayesin-kalbi-nasil-atar\">Bayes Teoremi&#8217;nin Temelleri: Na\u00efve Bayes&#8217;in Kalbi Nas\u0131l Atar?<\/h2>\n<p>Na\u00efve Bayes s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131n\u0131n i\u015fleyi\u015fini tam olarak anlamak i\u00e7in, Bayes Teoremi&#8217;nin temel prensiplerini kavramak hayati \u00f6neme sahiptir. \u00c7\u00fcnk\u00fc Na\u00efve Bayes, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 \u00fczere, bu teoremin olas\u0131l\u0131ksal bir yorumuna dayan\u0131r. Bayes Teoremi, bir olay\u0131n (A) meydana geldi\u011fi bilgisinin ba\u015fka bir olay\u0131n (B) meydana gelme olas\u0131l\u0131\u011f\u0131n\u0131 nas\u0131l de\u011fi\u015ftirdi\u011fini a\u00e7\u0131klar; yani ko\u015fullu olas\u0131l\u0131klar\u0131 g\u00fcncellemeyi sa\u011flar. Genel form\u00fcl\u00fc \u015fu \u015fekildedir:<\/p>\n<p><code>P(A|B) = P(B|A) * P(A) \/ P(B)<\/code><\/p>\n<p>Bu form\u00fcldeki terimleri Na\u00efve Bayes ba\u011flam\u0131nda a\u00e7\u0131klayal\u0131m:<\/p>\n<ul>\n<li><strong>P(A|B) (Posterior Olas\u0131l\u0131k):<\/strong> B olay\u0131 g\u00f6zlemlendi\u011finde A olay\u0131n\u0131n meydana gelme olas\u0131l\u0131\u011f\u0131d\u0131r. Bizim senaryomuzda, belirli \u00f6znitelikler (B) verildi\u011finde bir \u00f6rne\u011fin belirli bir s\u0131n\u0131fa (A) ait olma olas\u0131l\u0131\u011f\u0131d\u0131r. Bu, modelimizin tahmin etmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131 nihai olas\u0131l\u0131kt\u0131r.<\/li>\n<li><strong>P(B|A) (Likelihood &#8211; Olas\u0131l\u0131k Fonksiyonu):<\/strong> A olay\u0131 meydana geldi\u011finde B olay\u0131n\u0131n meydana gelme olas\u0131l\u0131\u011f\u0131d\u0131r. Yani, bir \u00f6rnek belirli bir s\u0131n\u0131fa (A) aitse, o \u00f6rne\u011fin belirli \u00f6zniteliklere (B) sahip olma olas\u0131l\u0131\u011f\u0131d\u0131r.<\/li>\n<li><strong>P(A) (Prior Olas\u0131l\u0131k):<\/strong> A olay\u0131n\u0131n B olay\u0131 g\u00f6zlemlenmeden \u00f6nceki (\u00f6nsel) olas\u0131l\u0131\u011f\u0131d\u0131r. Bu, veri setimizde belirli bir s\u0131n\u0131f\u0131n (A) genel olarak ne kadar s\u0131k g\u00f6r\u00fcnd\u00fc\u011f\u00fcd\u00fcr.<\/li>\n<li><strong>P(B) (Evidence &#8211; Kan\u0131t):<\/strong> B olay\u0131n\u0131n \u00f6nsel olas\u0131l\u0131\u011f\u0131d\u0131r. Bu terim, farkl\u0131 s\u0131n\u0131flar\u0131n posterior olas\u0131l\u0131klar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda genellikle sabittir, bu y\u00fczden genellikle g\u00f6z ard\u0131 edilebilir veya normalize edici bir fakt\u00f6r olarak kal\u0131r.<\/li>\n<\/ul>\n<p>Na\u00efve Bayes&#8217;i &#8220;naif&#8221; yapan as\u0131l nokta, B olay\u0131n\u0131n birden fazla \u00f6znitelik (x1, x2, &#8230;, xn) i\u00e7erdi\u011finde ortaya \u00e7\u0131kar. Bayes Teoremi&#8217;ne g\u00f6re, P(B|A) ifadesi asl\u0131nda P(x1, x2, &#8230;, xn | A) anlam\u0131na gelir. \u00d6zniteliklerin ko\u015fullu ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131 varsay\u0131m\u0131 sayesinde, bu karma\u015f\u0131k ifadeyi basitle\u015ftirerek a\u015fa\u011f\u0131daki gibi yazabiliriz:<\/p>\n<p><code>P(x1, x2, ..., xn | A) = P(x1 | A) * P(x2 | A) * ... * P(xn | A)<\/code><\/p>\n<p>\u0130\u015fte bu, Na\u00efve Bayes&#8217;in kalbidir. Her bir \u00f6zniteli\u011fin (\u00f6rne\u011fin, bir e-postadaki belirli bir kelimenin) s\u0131n\u0131f (spam\/ham) verildi\u011finde ortaya \u00e7\u0131kma olas\u0131l\u0131\u011f\u0131n\u0131 ayr\u0131 ayr\u0131 hesaplar ve sonra bunlar\u0131 \u00e7arparak genel olas\u0131l\u0131k fonksiyonunu elde eder. Bu basitle\u015ftirme, hesaplama y\u00fck\u00fcn\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r ve modelin h\u0131zl\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Somut bir \u00f6rnek \u00fczerinden gidelim: Hava durumuna g\u00f6re d\u0131\u015far\u0131da spor yap\u0131p yapmayaca\u011f\u0131m\u0131z\u0131 tahmin etmeye \u00e7al\u0131\u015fal\u0131m. \u00d6zniteliklerimiz: Nem (Y\u00fcksek\/D\u00fc\u015f\u00fck), S\u0131cakl\u0131k (S\u0131cak\/Il\u0131k\/So\u011fuk), R\u00fczgar (Var\/Yok). S\u0131n\u0131flar\u0131m\u0131z ise: Spor Yap (Evet\/Hay\u0131r).<\/p>\n<p>Yeni bir g\u00fcnde: Nem=Y\u00fcksek, S\u0131cakl\u0131k=Il\u0131k, R\u00fczgar=Yok. Bu g\u00fcnde spor yapma olas\u0131l\u0131\u011f\u0131m\u0131z nedir?<\/p>\n<p>Na\u00efve Bayes, her s\u0131n\u0131f i\u00e7in ayr\u0131 ayr\u0131 \u015fu olas\u0131l\u0131klar\u0131 hesaplar:<\/p>\n<ul>\n<li>P(Nem=Y\u00fcksek | Spor=Evet)<\/li>\n<li>P(S\u0131cakl\u0131k=Il\u0131k | Spor=Evet)<\/li>\n<li>P(R\u00fczgar=Yok | Spor=Evet)<\/li>\n<li>P(Spor=Evet) (\u00d6nsel olas\u0131l\u0131k)<\/li>\n<\/ul>\n<p>Ve benzer \u015fekilde &#8220;Spor=Hay\u0131r&#8221; s\u0131n\u0131f\u0131 i\u00e7in de hesaplamalar yapar. Ard\u0131ndan, bu olas\u0131l\u0131klar\u0131 \u00e7arparak her s\u0131n\u0131f i\u00e7in bir puan elde eder ve en y\u00fcksek puana sahip s\u0131n\u0131f\u0131 tahmin olarak belirler. Bu mekanizma, karma\u015f\u0131k ili\u015fkileri basitle\u015ftirerek yine de \u00e7o\u011fu durumda kabul edilebilir tahminler yapmas\u0131n\u0131 sa\u011flar. Ancak, &#8220;naif&#8221; varsay\u0131m\u0131n getirisi olan bu basitle\u015ftirme, bazen \u00f6znitelikler aras\u0131nda g\u00fc\u00e7l\u00fc korelasyonlar oldu\u011funda modelin performans\u0131n\u0131 s\u0131n\u0131rlayabilir. Bu durumu anlamak ve gerekti\u011finde alternatif yakla\u015f\u0131mlar\u0131 de\u011ferlendirmek, veri bilimci olarak sizin g\u00f6reviniz olacakt\u0131r.<\/p>\n<h2 id=\"r-ortaminda-naive-bayes-uygulamasi-adim-adim-rehber\">R Ortam\u0131nda Na\u00efve Bayes Uygulamas\u0131: Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>R, istatistiksel analiz ve veri bilimi i\u00e7in g\u00fc\u00e7l\u00fc bir ortam sunar ve Na\u00efve Bayes s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131n\u0131 uygulamak i\u00e7in bir\u00e7ok esnek ara\u00e7 sa\u011flar. Bu b\u00f6l\u00fcmde, R&#8217;da Na\u00efve Bayes modelini nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, e\u011fitece\u011finizi ve de\u011ferlendirece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehberde, yayg\u0131n olarak kullan\u0131lan &#8216;e1071&#8217; paketini ve veri manip\u00fclasyonu i\u00e7in &#8216;tidyverse&#8217; paketini kullanaca\u011f\u0131z.<\/p>\n<h3>Gerekli Paketlerin Kurulumu ve Y\u00fcklenmesi<\/h3>\n<p>\u00d6ncelikle, gerekli paketleri R ortam\u0131n\u0131za kurman\u0131z ve y\u00fcklemeniz gerekir. E\u011fer bu paketleri daha \u00f6nce kurmad\u0131ysan\u0131z, a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code>\ninstall.packages(\"e1071\") # Na\u00efve Bayes algoritmas\u0131n\u0131 i\u00e7erir\ninstall.packages(\"caret\")  # Model e\u011fitimi ve de\u011ferlendirmesi i\u00e7in\ninstall.packages(\"tidyverse\") # Veri manip\u00fclasyonu ve g\u00f6rselle\u015ftirme i\u00e7in (dplyr, ggplot2 vb.)\n<\/pre>\n<p><\/code><\/p>\n<p>Kurulum tamamland\u0131ktan sonra, bu paketleri her R oturumunuzda kullanmak i\u00e7in y\u00fcklemeniz gerekir:<\/p>\n<pre><code>\nlibrary(e1071)\nlibrary(caret)\nlibrary(tidyverse)\n<\/pre>\n<p><\/code><\/p>\n<h3>Veri Setinin Haz\u0131rlanmas\u0131 ve \u00d6n \u0130\u015fleme<\/h3>\n<p>Na\u00efve Bayes'i uygulamak i\u00e7in bir veri setine ihtiyac\u0131m\u0131z var. Bu \u00f6rnekte, R'da yerle\u015fik olarak bulunan ve \u00e7i\u00e7ek t\u00fcrlerini s\u0131n\u0131fland\u0131rmak i\u00e7in pop\u00fcler bir veri seti olan Iris veri setini kullanaca\u011f\u0131z. Iris veri seti, sepal uzunlu\u011fu, sepal geni\u015fli\u011fi, petal uzunlu\u011fu ve petal geni\u015fli\u011fi olmak \u00fczere d\u00f6rt say\u0131sal \u00f6znitelik ve \u00fc\u00e7 farkl\u0131 iris t\u00fcr\u00fc (setosa, versicolor, virginica) olmak \u00fczere bir kategorik hedef de\u011fi\u015fkenden olu\u015fur.<\/p>\n<p>\u0130lk ad\u0131m, veri setini incelemek ve e\u011fitim ile test setlerine b\u00f6lmektir. Bu, modelimizin yeni, daha \u00f6nce g\u00f6rmedi\u011fi verilere ne kadar iyi genellendi\u011fini de\u011ferlendirmemizi sa\u011flar.<\/p>\n<pre><code>\n# Iris veri setini y\u00fckle\ndata(iris)\n\n# Veri setini incele\nhead(iris)\nsummary(iris)\nstr(iris)\n\n# Hedef de\u011fi\u015fkenin (Species) fakt\u00f6r oldu\u011fundan emin ol\niris$Species <- as.factor(iris$Species)\n\n# Veriyi e\u011fitim ve test setlerine b\u00f6lme (70% e\u011fitim, 30% test)\nset.seed(123) # Tekrarlanabilir sonu\u00e7lar i\u00e7in\nindex <- createDataPartition(iris$Species, p = 0.7, list = FALSE)\ntrain_data <- iris[index, ]\ntest_data <- iris[-index, ]\n\n# B\u00f6l\u00fcnm\u00fc\u015f veri setlerinin boyutlar\u0131n\u0131 kontrol et\ndim(train_data)\ndim(test_data)\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kod blo\u011fu, Iris veri setini y\u00fckler, yap\u0131s\u0131n\u0131 inceler ve ard\u0131ndan <code>createDataPartition<\/code> fonksiyonunu kullanarak %70 e\u011fitim ve %30 test setlerine rastgele b\u00f6ler. <code>set.seed()<\/code> fonksiyonu, bu rastgele b\u00f6lme i\u015fleminin her seferinde ayn\u0131 sonu\u00e7lar\u0131 vermesini sa\u011flar, bu da analizlerinizin tekrarlanabilirli\u011fi i\u00e7in \u00f6nemlidir.<\/p>\n<h3>Na\u00efve Bayes Modelinin Olu\u015fturulmas\u0131 ve E\u011fitilmesi<\/h3>\n<p>Veri setlerimiz haz\u0131r oldu\u011funa g\u00f6re, Na\u00efve Bayes modelini e\u011fitmeye ge\u00e7ebiliriz. <code>e1071<\/code> paketindeki <code>naiveBayes()<\/code> fonksiyonu bu ama\u00e7la kullan\u0131l\u0131r. Form\u00fcl format\u0131nda (hedef_de\u011fi\u015fken ~ .) veya \u00f6zellik vekt\u00f6r\u00fc ve hedef vekt\u00f6r\u00fc olarak kullanabilirsiniz.<\/p>\n<pre><code>\n# Na\u00efve Bayes modelini e\u011fitim verisiyle e\u011fit\n# Species (t\u00fcr) hedef de\u011fi\u015fkenimizdir, di\u011fer t\u00fcm de\u011fi\u015fkenler ('.') \u00f6zniteliktir.\nmodel_nb <- naiveBayes(Species ~ ., data = train_data)\n\n# E\u011fitilen modeli incele\nprint(model_nb)\n<\/pre>\n<p><\/code><\/p>\n<p><code>print(model_nb)<\/code> \u00e7\u0131kt\u0131s\u0131, modelin her bir s\u0131n\u0131f (setosa, versicolor, virginica) i\u00e7in \u00f6zniteliklerin (Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) olas\u0131l\u0131k da\u011f\u0131l\u0131mlar\u0131n\u0131 (ortalama ve standart sapma) g\u00f6sterir. Na\u00efve Bayes, say\u0131sal \u00f6znitelikler i\u00e7in genellikle Gaussian (Normal) da\u011f\u0131l\u0131m varsay\u0131m\u0131n\u0131 kullan\u0131r.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Say\u0131sal \u00f6znitelikler i\u00e7in varsay\u0131lan olarak Gaussian da\u011f\u0131l\u0131m\u0131 kullan\u0131l\u0131r. E\u011fer \u00f6znitelikleriniz bu da\u011f\u0131l\u0131ma uymuyorsa, verilerinizi kategorik hale getirebilir veya di\u011fer Na\u00efve Bayes varyantlar\u0131n\u0131 (\u00f6rne\u011fin \u00e7ekirdek yo\u011funluk tahmini kullanan) d\u00fc\u015f\u00fcnebilirsiniz.\n<\/div>\n<h3>Tahmin Yapma ve Model De\u011ferlendirmesi<\/h3>\n<p>Modelimiz e\u011fitildikten sonra, test veri setimizdeki bilinmeyen \u00e7i\u00e7ek t\u00fcrlerini tahmin etmek i\u00e7in kullanabiliriz. Ard\u0131ndan, modelin performans\u0131n\u0131 de\u011ferlendirmek i\u00e7in \u00e7e\u015fitli metrikler kullanaca\u011f\u0131z.<\/p>\n<pre><code>\n# E\u011fitilen model ile test verisi \u00fczerinde tahmin yap\npredictions <- predict(model_nb, test_data)\n\n# Tahmin sonu\u00e7lar\u0131n\u0131 ve ger\u00e7ek de\u011ferleri kar\u015f\u0131la\u015ft\u0131r\nconfusionMatrix(predictions, test_data$Species)\n<\/pre>\n<p><\/code><\/p>\n<p><code>confusionMatrix()<\/code> fonksiyonu (<code>caret<\/code> paketinden), modelin performans\u0131n\u0131 \u00f6zetleyen bir kar\u0131\u015f\u0131kl\u0131k matrisi (confusion matrix) olu\u015fturur. Bu matris, ger\u00e7ek s\u0131n\u0131flarla tahmin edilen s\u0131n\u0131flar aras\u0131ndaki e\u015fle\u015fmeleri ve hatalar\u0131 g\u00f6sterir. Ayr\u0131ca, do\u011fruluk (accuracy), hassasiyet (precision), duyarl\u0131l\u0131k (recall) ve F1 skoru gibi \u00f6nemli performans metriklerini de sa\u011flar. Iris veri setinde, Na\u00efve Bayes genellikle olduk\u00e7a y\u00fcksek do\u011fruluk oranlar\u0131 elde eder, \u00e7\u00fcnk\u00fc \u00f6znitelikler aras\u0131ndaki ba\u011f\u0131ms\u0131zl\u0131k varsay\u0131m\u0131 bu veri seti i\u00e7in nispeten iyi \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>Bu ad\u0131m ad\u0131m rehber, R'da Na\u00efve Bayes s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131n\u0131 kullanarak basit bir s\u0131n\u0131fland\u0131rma modelini nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, e\u011fitece\u011finizi ve de\u011ferlendirece\u011finizi g\u00f6stermektedir. Bir sonraki b\u00f6l\u00fcmlerde, bu temel bilgileri ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l uygulayaca\u011f\u0131m\u0131z\u0131 ve daha karma\u015f\u0131k veri tipleriyle (\u00f6zellikle metin verileriyle) nas\u0131l ba\u015fa \u00e7\u0131kaca\u011f\u0131m\u0131z\u0131 ke\u015ffedece\u011fiz.<\/p>\n<h3 id=\"vaka-analizi-1-e-posta-spam-tespitinde-naive-bayes-nasil-kullanilir\">Vaka Analizi 1: E-posta Spam Tespitinde Na\u00efve Bayes Nas\u0131l Kullan\u0131l\u0131r?<\/h3>\n<p>E-posta spam tespiti, Na\u00efve Bayes algoritmas\u0131n\u0131n en klasik ve ba\u015far\u0131l\u0131 uygulama alanlar\u0131ndan biridir. Her g\u00fcn y\u00fcz milyonlarca spam e-postan\u0131n filtrelemesi, Na\u00efve Bayes gibi h\u0131zl\u0131 ve etkili algoritmalar sayesinde m\u00fcmk\u00fcn olmaktad\u0131r. Bu vaka analizinde, basitle\u015ftirilmi\u015f bir senaryo ile Na\u00efve Bayes'in e-posta spam tespitinde nas\u0131l kullan\u0131ld\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Metin verileriyle \u00e7al\u0131\u015f\u0131rken, veriyi makine \u00f6\u011frenimi modelinin anlayabilece\u011fi bir formata d\u00f6n\u00fc\u015ft\u00fcrmek, yani \u00f6n i\u015flemek kritik bir ad\u0131md\u0131r.<\/p>\n<h4>Problem Tan\u0131m\u0131 ve Veri Seti<\/h4>\n<p>Amac\u0131m\u0131z, gelen bir e-postan\u0131n i\u00e7eri\u011fine bakarak onun bir \"spam\" mi yoksa \"ham\" (normal) e-posta m\u0131 oldu\u011funu s\u0131n\u0131fland\u0131rmakt\u0131r. Bunun i\u00e7in, her bir e-postan\u0131n i\u00e7eri\u011fini analiz etmemiz gerekecek. Ger\u00e7ek bir veri seti yerine, \u00f6rnek ama\u00e7l\u0131 basit bir metin koleksiyonu olu\u015ftural\u0131m. Genellikle bu t\u00fcr veriler, b\u00fcy\u00fck e-posta ar\u015fivlerinden toplan\u0131r ve manuel olarak \"spam\" veya \"ham\" olarak etiketlenir.<\/p>\n<pre><code>\n# \u00d6rnek metin veri seti olu\u015fturma\nemails <- data.frame(\n  text = c(\n    \"Free money now! Click here!\",\n    \"Hi John, how are you?\",\n    \"Win a new car, claim your prize today!\",\n    \"Meeting agenda for tomorrow is attached.\",\n    \"Limited time offer! Get rich quick!\",\n    \"Regarding your recent inquiry.\",\n    \"Viagra online pharmacy for you\",\n    \"Don't miss out on this amazing opportunity!\",\n    \"Project status update.\",\n    \"Urgent: Your account needs verification.\"\n  ),\n  type = as.factor(c(\"spam\", \"ham\", \"spam\", \"ham\", \"spam\", \"ham\", \"spam\", \"spam\", \"ham\", \"spam\")),\n  stringsAsFactors = FALSE\n)\n\nprint(emails)\n<\/pre>\n<p><\/code><\/p>\n<h4>Metin Verilerinin \u00d6n \u0130\u015flenmesi<\/h4>\n<p>Ham metin verilerini do\u011frudan Na\u00efve Bayes modeline besleyemeyiz. Onlar\u0131 say\u0131sal bir formata d\u00f6n\u00fc\u015ft\u00fcrmemiz gerekir. Bu s\u00fcre\u00e7 genellikle \"Torba Kelimeler (Bag-of-Words)\" yakla\u015f\u0131m\u0131n\u0131 i\u00e7erir ve a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 kapsar:<\/p>\n<ol>\n<li><strong>Tokenizasyon:<\/strong> Metni kelimelere ay\u0131rma.<\/li>\n<li><strong>K\u00fc\u00e7\u00fck Harfe \u00c7evirme:<\/strong> T\u00fcm kelimeleri k\u00fc\u00e7\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcrme (\u00f6rne\u011fin \"Free\" ve \"free\" ayn\u0131 kelime kabul edilir).<\/li>\n<li><strong>Noktalama \u0130\u015faretlerini Kald\u0131rma:<\/strong> Metinden noktalama i\u015faretlerini \u00e7\u0131karma.<\/li>\n<li><strong>Say\u0131lar\u0131 Kald\u0131rma:<\/strong> Say\u0131lar\u0131 \u00e7\u0131karma (gerekiyorsa).<\/li>\n<li><strong>Durdurma Kelimelerini (Stop Words) Kald\u0131rma:<\/strong> \"Ve\", \"bir\", \"ile\" gibi s\u0131k kullan\u0131lan ancak genellikle anlam ta\u015f\u0131mayan kelimeleri \u00e7\u0131karma.<\/li>\n<li><strong>K\u00f6k Bulma (Stemming\/Lemmatization):<\/strong> Kelimeleri k\u00f6klerine indirgeme (\u00f6rne\u011fin \"ko\u015fuyor\", \"ko\u015fmak\" -> \"ko\u015f\").<\/li>\n<li><strong>Terim-Dok\u00fcman Matrisi (TDM) Olu\u015fturma:<\/strong> Her dok\u00fcmandaki (e-posta) her kelimenin frekans\u0131n\u0131 veya varl\u0131\u011f\u0131n\u0131 g\u00f6steren bir matris olu\u015fturma.<\/li>\n<\/ol>\n<p>R'da bu i\u015flemleri yapmak i\u00e7in <code>tm<\/code> (text mining) ve <code>SnowballC<\/code> paketlerini kullanabiliriz.<\/p>\n<pre><code>\n# tm ve SnowballC paketlerini y\u00fckle\n# install.packages(\"tm\")\n# install.packages(\"SnowballC\")\nlibrary(tm)\nlibrary(SnowballC)\n\n# Metin korpusu olu\u015ftur\ncorpus <- VCorpus(VectorSource(emails$text))\n\n# \u00d6n i\u015fleme ad\u0131mlar\u0131\ncorpus <- corpus %>%\n  tm_map(content_transformer(tolower)) %>% # K\u00fc\u00e7\u00fck harfe \u00e7evir\n  tm_map(removeNumbers) %>%                # Say\u0131lar\u0131 kald\u0131r\n  tm_map(removePunctuation) %>%            # Noktalama i\u015faretlerini kald\u0131r\n  tm_map(removeWords, stopwords(\"english\")) %>% # \u0130ngilizce durdurma kelimelerini kald\u0131r\n  tm_map(stemDocument) %>%                 # K\u00f6k bulma\n  tm_map(stripWhitespace)                  # Fazla bo\u015fluklar\u0131 kald\u0131r\n\n# Terim-Dok\u00fcman Matrisi (TDM) olu\u015ftur\ndtm <- DocumentTermMatrix(corpus)\n\n# Seyrek kelimeleri kald\u0131r (\u00d6rn: dok\u00fcmanlar\u0131n %99'undan fazlas\u0131nda ge\u00e7meyen kelimeler)\ndtm_sparse <- removeSparseTerms(dtm, 0.99) # %1'den az s\u0131kl\u0131kta ge\u00e7enleri kald\u0131r.\n                                          # Bu parametre ile denemeler yap\u0131lmas\u0131 gerekebilir.\n\n# DTM'i veri \u00e7er\u00e7evesine d\u00f6n\u00fc\u015ft\u00fcr\ndf_dtm <- as.data.frame(as.matrix(dtm_sparse))\n\n# S\u00fctun isimlerini ge\u00e7erli hale getir\ncolnames(df_dtm) <- make.names(colnames(df_dtm), unique = TRUE)\n\n# Hedef de\u011fi\u015fkeni (type) DTM'e ekle\nspam_data <- cbind(df_dtm, type = emails$type)\n\n# Veri setini incele\nhead(spam_data)\n<\/pre>\n<p><\/code><\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Metin \u00f6n i\u015fleme ad\u0131mlar\u0131, model performans\u0131n\u0131 do\u011frudan etkiler. Hangi durdurma kelimelerinin kald\u0131r\u0131laca\u011f\u0131, k\u00f6k bulma m\u0131 yoksa lemmatizasyon mu kullan\u0131laca\u011f\u0131 ve seyrek kelime kald\u0131rma e\u015fikleri gibi parametreler, veri setinize ve problem alan\u0131n\u0131za g\u00f6re optimize edilmelidir.\n<\/div>\n<h4>Modelin E\u011fitimi ve De\u011ferlendirilmesi<\/h4>\n<p>\u00d6n i\u015flenmi\u015f ve say\u0131sal hale getirilmi\u015f spam_data veri setimizle art\u0131k Na\u00efve Bayes modelini e\u011fitebiliriz. S\u00fcre\u00e7, Iris \u00f6rne\u011fine benzer olacakt\u0131r.<\/p>\n<pre><code>\n# Veriyi e\u011fitim ve test setlerine b\u00f6lme\nset.seed(123)\nindex_spam <- createDataPartition(spam_data$type, p = 0.7, list = FALSE)\ntrain_spam <- spam_data[index_spam, ]\ntest_spam <- spam_data[-index_spam, ]\n\n# Na\u00efve Bayes modelini e\u011fit\n# Laplacian d\u00fczeltme ekledik (laplace = 1), s\u0131f\u0131r frekans problemine kar\u015f\u0131.\nmodel_spam_nb <- naiveBayes(type ~ ., data = train_spam, laplace = 1)\n\n# Tahmin yap\npredictions_spam <- predict(model_spam_nb, test_spam)\n\n# Model de\u011ferlendirmesi\nconfusionMatrix(predictions_spam, test_spam$type)\n<\/pre>\n<p><\/code><\/p>\n<p><code>laplace = 1<\/code> parametresi, Laplace d\u00fczeltmesini etkinle\u015ftirir. Bu d\u00fczeltme, bir kelimenin belirli bir s\u0131n\u0131fta (\u00f6rne\u011fin \"spam\" e-postalar\u0131nda) hi\u00e7 g\u00f6r\u00fclmemesi durumunda ortaya \u00e7\u0131kan s\u0131f\u0131r olas\u0131l\u0131k sorununu \u00e7\u00f6zmeye yard\u0131mc\u0131 olur. Aksi takdirde, Bayes Teoremi'ndeki \u00e7arp\u0131m nedeniyle t\u00fcm olas\u0131l\u0131k 0 olurdu. Bu, metin s\u0131n\u0131fland\u0131rmas\u0131 gibi seyrek veri setlerinde \u00f6zellikle \u00f6nemlidir.<\/p>\n<p>Kar\u0131\u015f\u0131kl\u0131k matrisi ve di\u011fer metrikler, modelin spam e-postalar\u0131 ne kadar iyi tespit etti\u011fini ve normal e-postalar\u0131 yanl\u0131\u015fl\u0131kla spam olarak i\u015faretleme (yanl\u0131\u015f pozitif) veya spam e-postalar\u0131 g\u00f6zden ka\u00e7\u0131rma (yanl\u0131\u015f negatif) oranlar\u0131n\u0131 g\u00f6sterecektir. Spam tespiti gibi uygulamalarda, yanl\u0131\u015f negatiflerin (spam'in g\u00f6zden ka\u00e7mas\u0131) maliyeti genellikle yanl\u0131\u015f pozitiflerden (normal e-postan\u0131n spam olarak i\u015faretlenmesi) daha y\u00fcksek olabilir, bu nedenle hassasiyet ve duyarl\u0131l\u0131k dengesini iyi anlamak \u00f6nemlidir.<\/p>\n<p>Bu vaka analizi, Na\u00efve Bayes'in metin s\u0131n\u0131fland\u0131rmas\u0131ndaki g\u00fcc\u00fcn\u00fc ve metin verilerini anlaml\u0131 bir formata d\u00f6n\u00fc\u015ft\u00fcrmenin ne kadar kritik oldu\u011funu g\u00f6stermektedir. Benzer yakla\u015f\u0131mlar, duygu analizi, haber makalesi kategorizasyonu veya m\u00fc\u015fteri yorumlar\u0131n\u0131n s\u0131n\u0131fland\u0131r\u0131lmas\u0131 gibi di\u011fer metin tabanl\u0131 problemlerde de kullan\u0131labilir.<\/p>\n<h3 id=\"vaka-analizi-2-duygu-analizinde-naive-bayesin-rolu-nedir\">Vaka Analizi 2: Duygu Analizinde Na\u00efve Bayes'in Rol\u00fc Nedir?<\/h3>\n<p>Duygu analizi, veya bir di\u011fer ad\u0131yla fikir madencili\u011fi, metin verisindeki duygusal tonu (pozitif, negatif, n\u00f6tr) belirlemeye odaklanan bir do\u011fal dil i\u015fleme (NLP) alan\u0131d\u0131r. M\u00fc\u015fteri geri bildirimlerini, sosyal medya yorumlar\u0131n\u0131 veya \u00fcr\u00fcn incelemelerini analiz ederek markalar\u0131n itibar\u0131n\u0131 anlamalar\u0131na, \u00fcr\u00fcn geli\u015ftirme kararlar\u0131 almalar\u0131na ve m\u00fc\u015fteri memnuniyetini \u00f6l\u00e7melerine olanak tan\u0131r. Na\u00efve Bayes, basitli\u011fi, h\u0131z\u0131 ve metin verileriyle iyi \u00e7al\u0131\u015fmas\u0131 nedeniyle duygu analizi i\u00e7in pop\u00fcler bir ba\u015flang\u0131\u00e7 algoritmas\u0131d\u0131r.<\/p>\n<h4>Problem Tan\u0131m\u0131 ve Veri Seti<\/h4>\n<p>Bu vaka analizinde, bir \u00fcr\u00fcn hakk\u0131ndaki m\u00fc\u015fteri yorumlar\u0131n\u0131 pozitif veya negatif olarak s\u0131n\u0131fland\u0131rmay\u0131 hedefleyece\u011fiz. \u00d6rnek olarak, basitle\u015ftirilmi\u015f bir \u00fcr\u00fcn yorumlar\u0131 veri seti olu\u015ftural\u0131m. Ger\u00e7ek d\u00fcnyada bu veriler, e-ticaret sitelerinden, forumlardan veya sosyal medyadan toplanabilir.<\/p>\n<pre><code>\n# \u00d6rnek yorum veri seti olu\u015fturma\nreviews <- data.frame(\n  text = c(\n    \"Bu \u00fcr\u00fcn harika, kesinlikle tavsiye ederim!\",\n    \"\u00c7ok k\u00f6t\u00fc bir deneyim, pi\u015fman oldum.\",\n    \"Fiyat\u0131na g\u00f6re iyi say\u0131l\u0131r, beklentimi kar\u015f\u0131lad\u0131.\",\n    \"Asla almay\u0131n, param bo\u015fa gitti.\",\n    \"Kaliteli ve kullan\u0131\u015fl\u0131, \u00e7ok be\u011fendim.\",\n    \"Hayal k\u0131r\u0131kl\u0131\u011f\u0131, \u00e7al\u0131\u015fm\u0131yor bile.\",\n    \"M\u00fckemmel bir al\u0131\u015fveri\u015f, her \u015fey yolunda.\",\n    \"Berbat bir hizmet, bir daha almam.\",\n    \"Ortalama bir \u00fcr\u00fcn, ne iyi ne k\u00f6t\u00fc.\",\n    \"Beklentimin \u00fczerinde performans g\u00f6sterdi.\"\n  ),\n  sentiment = as.factor(c(\"positive\", \"negative\", \"positive\", \"negative\", \"positive\", \"negative\", \"positive\", \"negative\", \"neutral\", \"positive\")),\n  stringsAsFactors = FALSE\n)\n\nprint(reviews)\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte <code>sentiment<\/code> (duygu) de\u011fi\u015fkeni \"positive\", \"negative\" ve \"neutral\" olmak \u00fczere \u00fc\u00e7 kategoriye sahiptir. Na\u00efve Bayes, \u00e7ok s\u0131n\u0131fl\u0131 s\u0131n\u0131fland\u0131rma problemlerini de kolayca ele alabilir.<\/p>\n<h4>Metin Verilerinin \u00d6n \u0130\u015flenmesi ve TDM Olu\u015fturma<\/h4>\n<p>Spam tespitinde oldu\u011fu gibi, duygu analizinde de metin verilerini \u00f6n i\u015flemek ve bir Terim-Dok\u00fcman Matrisi (TDM) olu\u015fturmak esast\u0131r. T\u00fcrk\u00e7e metinlerle \u00e7al\u0131\u015f\u0131rken, T\u00fcrk\u00e7e durdurma kelimelerini ve T\u00fcrk\u00e7e k\u00f6k bulma algoritmalar\u0131n\u0131 kullanmak \u00f6nemlidir. Ancak <code>SnowballC<\/code> paketi varsay\u0131lan olarak T\u00fcrk\u00e7e stemming sa\u011flamaz. Bu \u00f6rnekte, basitlik ad\u0131na sadece durdurma kelimelerini kald\u0131raca\u011f\u0131z ve k\u00f6k bulmay\u0131 atlayaca\u011f\u0131z, ancak ger\u00e7ek bir T\u00fcrk\u00e7e NLP projesinde bu ad\u0131mlara dikkat etmek gerekir.<\/p>\n<pre><code>\n# T\u00fcrk\u00e7e durdurma kelimeleri i\u00e7in manuel bir liste olu\u015fturabiliriz\n# veya bir yerden indirebiliriz. Basit bir liste kullanal\u0131m:\nturkish_stopwords <- c(\"bir\", \"mi\", \"m\u0131\", \"mu\", \"m\u00fc\", \"ki\", \"de\", \"da\", \"ve\", \"ile\", \"i\u00e7in\", \"gibi\", \"\u00e7ok\", \"daha\", \"en\")\n\ncorpus_reviews <- VCorpus(VectorSource(reviews$text))\n\ncorpus_reviews <- corpus_reviews %>%\n  tm_map(content_transformer(tolower)) %>%\n  tm_map(removeNumbers) %>%\n  tm_map(removePunctuation) %>%\n  tm_map(removeWords, turkish_stopwords) %>% # T\u00fcrk\u00e7e durdurma kelimelerini kald\u0131r\n  tm_map(stripWhitespace)\n\ndtm_reviews <- DocumentTermMatrix(corpus_reviews)\n\n# Seyrek terimleri kald\u0131r (\u00f6rne\u011fin, t\u00fcm dok\u00fcmanlar\u0131n %90'\u0131ndan az\u0131nda ge\u00e7enler)\ndtm_reviews_sparse <- removeSparseTerms(dtm_reviews, 0.9)\n\ndf_dtm_reviews <- as.data.frame(as.matrix(dtm_reviews_sparse))\ncolnames(df_dtm_reviews) <- make.names(colnames(df_dtm_reviews), unique = TRUE)\n\nsentiment_data <- cbind(df_dtm_reviews, sentiment = reviews$sentiment)\n\nhead(sentiment_data)\n<\/pre>\n<p><\/code><\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: T\u00fcrk\u00e7e NLP projelerinde daha geli\u015fmi\u015f k\u00f6k bulma veya lemmatizasyon i\u00e7in <code>quanteda<\/code> veya <code>udpipe<\/code> gibi paketler, veya d\u0131\u015far\u0131dan sa\u011flanan T\u00fcrk\u00e7e NLP k\u00fct\u00fcphaneleri kullan\u0131labilir.\n<\/div>\n<h4>Modelin E\u011fitimi ve De\u011ferlendirilmesi<\/h4>\n<p>\u00d6n i\u015flenmi\u015f <code>sentiment_data<\/code> ile Na\u00efve Bayes modelini e\u011fitebiliriz.<\/p>\n<pre><code>\n# Veriyi e\u011fitim ve test setlerine b\u00f6lme\nset.seed(456)\nindex_sentiment <- createDataPartition(sentiment_data$sentiment, p = 0.7, list = FALSE)\ntrain_sentiment <- sentiment_data[index_sentiment, ]\ntest_sentiment <- sentiment_data[-index_sentiment, ]\n\n# Na\u00efve Bayes modelini e\u011fit, Laplace d\u00fczeltmesi ile\nmodel_sentiment_nb <- naiveBayes(sentiment ~ ., data = train_sentiment, laplace = 1)\n\n# Tahmin yap\npredictions_sentiment <- predict(model_sentiment_nb, test_sentiment)\n\n# Model de\u011ferlendirmesi\nconfusionMatrix(predictions_sentiment, test_sentiment$sentiment)\n<\/pre>\n<p><\/code><\/p>\n<p>Duygu analizinde, kar\u0131\u015f\u0131kl\u0131k matrisi modelin pozitif, negatif ve n\u00f6tr yorumlar\u0131 ne kadar do\u011fru s\u0131n\u0131fland\u0131rd\u0131\u011f\u0131n\u0131 g\u00f6sterecektir. \u00d6zellikle, yanl\u0131\u015f negatifler (negatif yorumun pozitif olarak alg\u0131lanmas\u0131) ve yanl\u0131\u015f pozitifler (pozitif yorumun negatif olarak alg\u0131lanmas\u0131) i\u015f kararlar\u0131 \u00fczerinde b\u00fcy\u00fck etkilere sahip olabilir. \u00d6rne\u011fin, bir markan\u0131n olumsuz geri bildirimleri g\u00f6zden ka\u00e7\u0131rmas\u0131 veya olumlu geri bildirimleri yanl\u0131\u015f de\u011ferlendirmesi, m\u00fc\u015fteri memnuniyetini yanl\u0131\u015f yorumlamas\u0131na yol a\u00e7abilir.<\/p>\n<p>Bu vaka analizi, Na\u00efve Bayes'in metin verilerini kullanarak duygu s\u0131n\u0131fland\u0131rmas\u0131 gibi daha karma\u015f\u0131k NLP g\u00f6revlerinde nas\u0131l uygulanabilece\u011fine dair temel bir anlay\u0131\u015f sunmaktad\u0131r. Algoritman\u0131n basitli\u011fi ve performans\u0131n\u0131n kombinasyonu, onu bu t\u00fcr ba\u015flang\u0131\u00e7 d\u00fczeyindeki analizler i\u00e7in cazip bir se\u00e7enek haline getirir.<\/p>\n<h2 id=\"naive-bayes-modelini-iyilestirme-ve-ileri-duzey-ipuclari\">Na\u00efve Bayes Modelini \u0130yile\u015ftirme ve \u0130leri D\u00fczey \u0130pu\u00e7lar\u0131<\/h2>\n<p>Na\u00efve Bayes algoritmas\u0131 basit olmas\u0131na ra\u011fmen, performans\u0131n\u0131 daha da optimize etmek ve belirli s\u0131n\u0131rlamalar\u0131n\u0131 a\u015fmak i\u00e7in \u00e7e\u015fitli ileri d\u00fczey teknikler ve ipu\u00e7lar\u0131 mevcuttur. Bu b\u00f6l\u00fcmde, modelinizi daha g\u00fc\u00e7l\u00fc hale getirecek bu stratejilere odaklanaca\u011f\u0131z.<\/p>\n<h3>Laplace D\u00fczeltmesi (Laplace Smoothing)<\/h3>\n<p>Yukar\u0131daki vaka analizlerinde de de\u011findi\u011fimiz gibi, Laplace d\u00fczeltmesi (veya di\u011fer ad\u0131yla add-1 smoothing), \u00f6zellikle metin s\u0131n\u0131fland\u0131rmas\u0131 gibi seyrek veri setlerinde kar\u015f\u0131la\u015f\u0131lan \"s\u0131f\u0131r frekans\" problemine bir \u00e7\u00f6z\u00fcmd\u00fcr. Bir kelime, e\u011fitim setindeki belirli bir s\u0131n\u0131f i\u00e7erisinde hi\u00e7 g\u00f6r\u00fclmedi\u011finde, o kelimenin o s\u0131n\u0131f i\u00e7in olas\u0131l\u0131\u011f\u0131 s\u0131f\u0131r olur. Bayes Teoremi'ndeki \u00e7arp\u0131m nedeniyle, bu s\u0131f\u0131r olas\u0131l\u0131k t\u00fcm posterior olas\u0131l\u0131\u011f\u0131 s\u0131f\u0131ra indirir ve modelin do\u011fru tahmin yapmas\u0131n\u0131 engeller.<\/p>\n<p>Laplace d\u00fczeltmesi, her kelimenin her s\u0131n\u0131fta en az bir kez g\u00f6r\u00fcld\u00fc\u011f\u00fcn\u00fc varsayarak bu sorunu \u00e7\u00f6zer. Bu, her say\u0131ma 1 ekleyerek ve payda k\u0131sm\u0131n\u0131 da buna g\u00f6re ayarlayarak yap\u0131l\u0131r. R'daki <code>e1071::naiveBayes<\/code> fonksiyonunda <code>laplace = 1<\/code> arg\u00fcman\u0131 ile bu d\u00fczeltmeyi kolayca uygulayabilirsiniz. Bu k\u00fc\u00e7\u00fck de\u011fi\u015fiklik, modelinizin daha genellenebilir ve kararl\u0131 tahminler yapmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>\u00d6znitelik Se\u00e7imi (Feature Selection) ve M\u00fchendisli\u011fi (Feature Engineering)<\/h3>\n<p>Bir modelin performans\u0131, kullan\u0131lan \u00f6zniteliklerin kalitesiyle do\u011frudan ili\u015fkilidir. \u00d6zellikle metin verilerinde, milyonlarca farkl\u0131 kelime olabilece\u011finden, t\u00fcm kelimeleri kullanmak hem hesaplama y\u00fck\u00fcn\u00fc art\u0131r\u0131r hem de \"g\u00fcr\u00fclt\u00fc\" ekleyerek modelin performans\u0131n\u0131 d\u00fc\u015f\u00fcrebilir. \u00d6znitelik se\u00e7imi, en bilgilendirici \u00f6znitelikleri belirleyip di\u011ferlerini d\u0131\u015flama s\u00fcrecidir.<\/p>\n<ul>\n<li><strong>Chi-Kare Testi (Chi-squared test):<\/strong> Her \u00f6zniteli\u011fin (kelimenin) hedef de\u011fi\u015fken (s\u0131n\u0131f) ile ili\u015fkisini \u00f6l\u00e7er. Y\u00fcksek Chi-Kare de\u011feri, \u00f6zniteli\u011fin s\u0131n\u0131fland\u0131rma i\u00e7in daha \u00f6nemli oldu\u011funu g\u00f6sterir.<\/li>\n<li><strong>Bilgi Kazanc\u0131 (Information Gain):<\/strong> Bir \u00f6zniteli\u011fin varl\u0131\u011f\u0131n\u0131n veya yoklu\u011funun s\u0131n\u0131fland\u0131rma konusunda ne kadar bilgi sa\u011flad\u0131\u011f\u0131n\u0131 \u00f6l\u00e7er.<\/li>\n<li><strong>TF-IDF (Term Frequency-Inverse Document Frequency):<\/strong> Bir kelimenin dok\u00fcmandaki s\u0131kl\u0131\u011f\u0131na ve t\u00fcm dok\u00fcmanlardaki nadirli\u011fine g\u00f6re a\u011f\u0131rl\u0131kland\u0131r\u0131lmas\u0131n\u0131 sa\u011flar. Bu, s\u0131k ge\u00e7en ancak anlams\u0131z kelimelerin (\u00f6rne\u011fin \"the\", \"a\" \u0130ngilizce i\u00e7in) etkisini azalt\u0131rken, daha nadir ve ay\u0131rt edici kelimelerin \u00f6nemini art\u0131r\u0131r.<\/li>\n<\/ul>\n<p>\u00d6znitelik m\u00fchendisli\u011fi ise mevcut \u00f6zniteliklerden yeni, daha anlaml\u0131 \u00f6znitelikler t\u00fcretme sanat\u0131d\u0131r. \u00d6rne\u011fin, metin verilerinde kelime \u00e7iftleri (bigramlar) veya \u00fc\u00e7l\u00fc kelime gruplar\u0131 (trigramlar) olu\u015fturmak, tekil kelimelerin yakalayamad\u0131\u011f\u0131 ba\u011flamsal bilgileri yakalayabilir. \"Not good\" ifadesindeki \"not\" ve \"good\" kelimeleri ayr\u0131 ayr\u0131 ele al\u0131nd\u0131\u011f\u0131nda farkl\u0131 anlamlar ta\u015f\u0131rken, bigram olarak \"not_good\" negatif bir duygu ta\u015f\u0131r.<\/p>\n<h3>\u00c7e\u015fitli Na\u00efve Bayes T\u00fcrleri: Ne Zaman Hangisini Kullanmal\u0131?<\/h3>\n<p>Na\u00efve Bayes'in farkl\u0131 varyantlar\u0131, verinizin do\u011fas\u0131na g\u00f6re en iyi performans\u0131 sa\u011flamak i\u00e7in tasarlanm\u0131\u015ft\u0131r:<\/p>\n<ul>\n<li><strong>Gaussian Na\u00efve Bayes:<\/strong> \u00d6zniteliklerin s\u00fcrekli (say\u0131sal) oldu\u011fu ve Gaussian (Normal) da\u011f\u0131l\u0131ma uydu\u011fu varsay\u0131ld\u0131\u011f\u0131nda kullan\u0131l\u0131r. Iris \u00f6rne\u011finde kulland\u0131\u011f\u0131m\u0131z budur.<\/li>\n<li><strong>Multinomial Na\u00efve Bayes:<\/strong> Metin s\u0131n\u0131fland\u0131rmas\u0131 gibi ayr\u0131k say\u0131m verileri i\u00e7in idealdir. \u00d6rne\u011fin, bir kelimenin bir dok\u00fcmanda ka\u00e7 kez ge\u00e7ti\u011fi gibi. Genellikle kelime frekanslar\u0131na dayal\u0131 Terim-Dok\u00fcman Matrisleri ile kullan\u0131l\u0131r.<\/li>\n<li><strong>Bernoulli Na\u00efve Bayes:<\/strong> \u0130kili (boolean) \u00f6znitelikler i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bir \u00f6zniteli\u011fin var olup olmad\u0131\u011f\u0131n\u0131 (1 veya 0) modellemek istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r. Metin verilerinde, bir kelimenin bir dok\u00fcmanda ge\u00e7ip ge\u00e7medi\u011fini (frekans\u0131n\u0131 de\u011fil) modellemek i\u00e7in kullan\u0131labilir.<\/li>\n<\/ul>\n<p>R'daki <code>e1071::naiveBayes<\/code> fonksiyonu, \u00f6znitelik tipine g\u00f6re otomatik olarak Gaussian veya di\u011fer varyantlar\u0131 kullanmaya \u00e7al\u0131\u015f\u0131r, ancak spesifik varyantlar\u0131 kullanmak isterseniz <code>klaR<\/code> veya <code>bnlearn<\/code> gibi paketler daha fazla kontrol sa\u011flayabilir.<\/p>\n<h3>S\u0131n\u0131rlamalar\u0131 A\u015fma: Di\u011fer Algoritmalarla K\u0131yaslama<\/h3>\n<p>Na\u00efve Bayes'in \"naif\" varsay\u0131m\u0131 (\u00f6znitelik ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131), basitli\u011fi ve h\u0131z\u0131 i\u00e7in bir bedeldir. \u00d6znitelikler aras\u0131nda g\u00fc\u00e7l\u00fc ba\u011f\u0131ml\u0131l\u0131klar\u0131n oldu\u011fu durumlarda, Na\u00efve Bayes'in performans\u0131 d\u00fc\u015febilir. Bu gibi senaryolarda, daha karma\u015f\u0131k algoritmalar genellikle daha iyi sonu\u00e7lar verir:<\/p>\n<ul>\n<li><strong>Lojistik Regresyon:<\/strong> Basit ve yorumlanabilir bir di\u011fer do\u011frusal s\u0131n\u0131fland\u0131r\u0131c\u0131d\u0131r. Ba\u011f\u0131ml\u0131l\u0131klar\u0131 bir dereceye kadar ele alabilir.<\/li>\n<li><strong>Destek Vekt\u00f6r Makineleri (SVM):<\/strong> Y\u00fcksek boyutlu uzaylarda etkili, genelleme yetene\u011fi y\u00fcksek bir algoritmad\u0131r.<\/li>\n<li><strong>Karar A\u011fa\u00e7lar\u0131 ve Rastgele Ormanlar:<\/strong> \u00d6znitelik ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve do\u011frusal olmayan ili\u015fkileri iyi modelleyebilir.<\/li>\n<li><strong>Gradient Boosting Algoritmalar\u0131 (XGBoost, LightGBM):<\/strong> Genellikle en iyi performans\u0131 g\u00f6steren modern algoritmalar aras\u0131ndad\u0131r.<\/li>\n<\/ul>\n<p>Veri biliminde her zaman \"tek bir en iyi algoritma\" yoktur. Na\u00efve Bayes'i bir ba\u015flang\u0131\u00e7 noktas\u0131 veya h\u0131zl\u0131 bir deneme modeli olarak kullanmak, ard\u0131ndan daha karma\u015f\u0131k modellerle kar\u015f\u0131la\u015ft\u0131rmak en iyi uygulamad\u0131r. \u00d6zellikle performans kritik uygulamalarda, farkl\u0131 algoritmalar\u0131n performans\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131rarak en uygun \u00e7\u00f6z\u00fcm\u00fc bulmak \u00f6nemlidir.<\/p>\n<h2 id=\"sonuc-naive-bayes-ile-veri-biliminde-ustalik\">Sonu\u00e7: Na\u00efve Bayes ile Veri Biliminde Ustal\u0131k<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, Na\u00efve Bayes s\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131n\u0131n temel prensiplerinden ba\u015flayarak R ortam\u0131nda ad\u0131m ad\u0131m nas\u0131l uygulanaca\u011f\u0131n\u0131, ger\u00e7ek d\u00fcnya senaryolar\u0131nda (spam tespiti ve duygu analizi) nas\u0131l kullan\u0131labilece\u011fini ve model performans\u0131n\u0131 art\u0131rmak i\u00e7in ileri d\u00fczey ipu\u00e7lar\u0131n\u0131 ke\u015ffettik. G\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, Na\u00efve Bayes, ad\u0131ndaki \"naif\" kelimesine ra\u011fmen, hem basitli\u011fi hem de \u015fa\u015f\u0131rt\u0131c\u0131 verimlili\u011fi ile veri bilimcileri i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. \u00d6zellikle b\u00fcy\u00fck metin veri setleriyle \u00e7al\u0131\u015f\u0131rken veya h\u0131zl\u0131 prototipleme gerekti\u011finde, Na\u00efve Bayes, g\u00fc\u00e7l\u00fc ve h\u0131zl\u0131 bir ilk tahmin modeli olarak \u00f6ne \u00e7\u0131kar.<\/p>\n<p>Algoritman\u0131n Bayes Teoremi'ne dayanmas\u0131 ve \u00f6znitelik ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131 varsay\u0131m\u0131, onu istatistiksel olarak sa\u011flam bir temele oturtur. R'daki <code>e1071<\/code> paketi sayesinde, bu g\u00fc\u00e7l\u00fc s\u0131n\u0131fland\u0131r\u0131c\u0131y\u0131 uygulamak son derece kolayd\u0131r. Ancak unutulmamal\u0131d\u0131r ki, her makine \u00f6\u011frenimi algoritmas\u0131 gibi Na\u00efve Bayes'in de belirli varsay\u0131mlar\u0131 ve s\u0131n\u0131rlamalar\u0131 vard\u0131r. \"Naif\" varsay\u0131m\u0131n ger\u00e7ek d\u00fcnyadaki karma\u015f\u0131k veri ili\u015fkileriyle \u00e7eli\u015fti\u011fi durumlarda, modelin performans\u0131 etkilenebilir. Bu gibi senaryolarda, Laplace d\u00fczeltmesi, \u00f6znitelik se\u00e7imi ve m\u00fchendisli\u011fi gibi ileri d\u00fczey teknikler devreye girer. Ayr\u0131ca, problem ve veri setinin do\u011fas\u0131na g\u00f6re Gaussian, Multinomial veya Bernoulli Na\u00efve Bayes gibi farkl\u0131 varyantlar\u0131 de\u011ferlendirmek de modelin do\u011frulu\u011funu art\u0131rabilir.<\/p>\n<p>Veri biliminde ustal\u0131k, tek bir algoritmay\u0131 ezbere bilmekten ziyade, farkl\u0131 ara\u00e7lar\u0131n g\u00fc\u00e7l\u00fc ve zay\u0131f y\u00f6nlerini anlamaktan ve do\u011fru arac\u0131 do\u011fru problem i\u00e7in se\u00e7mekten ge\u00e7er. Na\u00efve Bayes, bu ara\u00e7 setinde \u00f6nemli bir yer tutar. Metin s\u0131n\u0131fland\u0131rmas\u0131 gibi g\u00f6revlerde ba\u015flang\u0131\u00e7 i\u00e7in m\u00fckemmel bir se\u00e7enek olmas\u0131n\u0131n yan\u0131 s\u0131ra, di\u011fer algoritmalarla kar\u015f\u0131la\u015ft\u0131rmal\u0131 analizler i\u00e7in de de\u011ferli bir kar\u015f\u0131la\u015ft\u0131rma noktas\u0131 sunar. Bu rehberin, Na\u00efve Bayes'i R'da kullanma konusunda size sa\u011flam bir temel sa\u011flad\u0131\u011f\u0131n\u0131 ve daha karma\u015f\u0131k veri bilimsel problemlerini \u00e7\u00f6zmek i\u00e7in size ilham verdi\u011fini umuyoruz. Veri bilimi yolculu\u011funuzda ba\u015far\u0131lar dileriz!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4 id=\"naive-bayes-ne-zaman-tercih-edilmelidir\">Na\u00efve Bayes ne zaman tercih edilmelidir?<\/h4>\n<p>Na\u00efve Bayes, \u00f6zellikle metin s\u0131n\u0131fland\u0131rma (spam filtreleme, duygu analizi), t\u0131bbi te\u015fhis ve tavsiye sistemleri gibi alanlarda, h\u0131zl\u0131 prototipleme ve y\u00fcksek boyutlu veri setleri ile \u00e7al\u0131\u015f\u0131rken tercih edilmelidir. Nispeten az e\u011fitim verisiyle bile iyi sonu\u00e7lar verebilmesi ve h\u0131zl\u0131 i\u015flem yapabilmesi nedeniyle s\u0131k\u00e7a ba\u015fvurulan bir algoritmad\u0131r.<\/p>\n<h4 id=\"naif-varsayimin-bir-sorun-oldugu-durumda-ne-yapmaliyiz\">\"Naif\" varsay\u0131m\u0131n bir sorun oldu\u011fu durumda ne yapmal\u0131y\u0131z?<\/h4>\n<p>\u00d6znitelikler aras\u0131nda g\u00fc\u00e7l\u00fc ba\u011f\u0131ml\u0131l\u0131klar varsa ve bu durum model performans\u0131n\u0131 d\u00fc\u015f\u00fcr\u00fcyorsa, \u00f6ncelikle \u00f6znitelik m\u00fchendisli\u011fi veya \u00f6znitelik se\u00e7imi teknikleriyle ba\u011f\u0131ml\u0131l\u0131klar\u0131 azaltmaya \u00e7al\u0131\u015fabilirsiniz. Alternatif olarak, lojistik regresyon, Destek Vekt\u00f6r Makineleri (SVM) veya karar a\u011fa\u00e7lar\u0131 gibi di\u011fer s\u0131n\u0131fland\u0131rma algoritmalar\u0131n\u0131 denemek daha iyi sonu\u00e7lar verebilir.<\/p>\n<h4 id=\"metin-verileri-disindaki-alanlarda-naive-bayes-kullanilabilir-mi\">Metin verileri d\u0131\u015f\u0131ndaki alanlarda Na\u00efve Bayes kullan\u0131labilir mi?<\/h4>\n<p>Evet, kesinlikle! Na\u00efve Bayes, metin verilerinin yan\u0131 s\u0131ra \u00e7e\u015fitli di\u011fer veri t\u00fcrleriyle de kullan\u0131labilir. \u00d6rne\u011fin, t\u0131bbi te\u015fhis (semptomlara g\u00f6re hastal\u0131k s\u0131n\u0131fland\u0131rma), finansal doland\u0131r\u0131c\u0131l\u0131k tespiti, hava durumu tahmini ve m\u00fc\u015fteri segmentasyonu gibi alanlarda da ba\u015far\u0131yla uygulanm\u0131\u015ft\u0131r. Veri tipine ba\u011fl\u0131 olarak Gaussian, Multinomial veya Bernoulli Na\u00efve Bayes varyantlar\u0131 se\u00e7ilebilir.<\/p>\n<h4 id=\"model-performansini-artirmak-icin-neler-yapilabilir\">Model performans\u0131n\u0131 art\u0131rmak i\u00e7in neler yap\u0131labilir?<\/h4>\n<p>Model performans\u0131n\u0131 art\u0131rmak i\u00e7in \u015funlar\u0131 yapabilirsiniz: 1) Daha fazla ve kaliteli e\u011fitim verisi toplamak. 2) \u00d6znitelik m\u00fchendisli\u011fi ve se\u00e7imi ile daha anlaml\u0131 \u00f6znitelikler olu\u015fturmak. 3) Laplace d\u00fczeltmesi gibi tekniklerle s\u0131f\u0131r frekans sorununu gidermek. 4) Hiperparametre optimizasyonu yapmak (\u00f6rne\u011fin, seyrek terim kald\u0131rma e\u015fi\u011fini ayarlamak). 5) Farkl\u0131 Na\u00efve Bayes varyantlar\u0131n\u0131 veya ensemble y\u00f6ntemlerini denemek.<\/p>\n<h4 id=\"rda-naive-bayes-icin-baska-hangi-paketler-var\">R'da Na\u00efve Bayes i\u00e7in ba\u015fka hangi paketler var?<\/h4>\n<p>R'da <code>e1071<\/code> paketi en yayg\u0131n ve genel kullan\u0131ma sahip olan\u0131d\u0131r. Ancak <code>klaR<\/code> paketi, Gaussian, Multinomial ve Bernoulli Na\u00efve Bayes varyantlar\u0131 i\u00e7in daha spesifik fonksiyonlar sunar. Ayr\u0131ca, <code>bnlearn<\/code> paketi, Bayes a\u011flar\u0131 olu\u015fturmak ve \u00f6\u011frenmek i\u00e7in daha geni\u015f bir \u00e7er\u00e7eve sunar ve Na\u00efve Bayes bunun \u00f6zel bir durumudur.<\/p>\n<style>\n  \/* Basic Responsive Styling *\/\n  body {\n    font-family: Arial, sans-serif;\n    line-height: 1.6;\n    color: #333;\n    margin: 0 auto;\n    max-width: 900px;\n    padding: 20px;\n  }\n  h2, h3, h4 {\n    color: #2c3e50;\n    margin-top: 30px;\n    margin-bottom: 15px;\n  }\n  h2 {\n    border-bottom: 2px solid #3498db;\n    padding-bottom: 10px;\n  }\n  h3 {\n    color: #34495e;\n  }\n  p {\n    margin-bottom: 15px;\n  }\n  ul, ol {\n    margin-bottom: 15px;\n    padding-left: 20px;\n  }\n  pre {\n    background-color: #ecf0f1;\n    border-left: 5px solid #3498db;\n    padding: 15px;\n    overflow-x: auto; \/* Enable horizontal scrolling for wide code blocks *\/\n    margin-bottom: 20px;\n  }\n  code {\n    font-family: \"Courier New\", Courier, monospace;\n    color: #2c3e50;\n  }\n  .expert-tip {\n    background-color: #e8f6f3;\n    border-left: 4px solid #1abc9c;\n    padding: 15px;\n    margin: 20px 0;\n    font-style: italic;\n    color: #2e8b57;\n  }\n  table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n  }\n  th, td {\n    border: 1px solid #ddd;\n    padding: 8px;\n    text-align: left;\n  }\n  th {\n    background-color: #f2f2f2;\n  }<\/p>\n<p>  \/* Responsive Adjustments *\/\n  @media (max-width: 768px) {\n    body {\n      padding: 15px;\n    }\n    h2 {\n      font-size: 1.8em;\n    }\n    h3 {\n      font-size: 1.4em;\n    }\n    pre {\n      font-size: 0.9em;\n      padding: 10px;\n    }\n    table, thead, tbody, th, td, tr {\n      display: block; \/* Make table cells stack on small screens *\/\n    }\n    thead tr {\n      position: absolute;\n      top: -9999px;\n      left: -9999px;\n    }\n    tr {\n      border: 1px solid #ccc;\n      margin-bottom: 10px;\n    }\n    td {\n      border: none;\n      border-bottom: 1px solid #eee;\n      position: relative;\n      padding-left: 50%;\n      text-align: right;\n    }\n    td:before {\n      position: absolute;\n      top: 6px;\n      left: 6px;\n      width: 45%;\n      padding-right: 10px;\n      white-space: nowrap;\n      content: attr(data-label); \/* Use data-label for headers *\/\n      font-weight: bold;\n      text-align: left;\n    }\n  }\n<\/style>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-33154","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya<\/title>\n<meta name=\"description\" content=\"B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama g\u00fc\u00e7l\u00fc bir makine \u00f6\u011frenimi algoritmas\u0131 olan Na\u00efve Bayes ile bu karma\u015f\u0131k s\u0131n\u0131fland\u0131rma problemlerini R ortam\u0131nda nas\u0131l \u00e7\u00f6zebilece\u011finizi merak ediyor musunuz? Bu rehber, spam filtrelemeden duygu analizine kadar geni\u015f bir yelpazede ger\u00e7ek d\u00fcnya uygulamalar\u0131yla Na\u00efve Bayes&#039;in t\u00fcm s\u0131rlar\u0131n\u0131 a\u00e7\u0131\u011fa \u00e7\u0131karacak.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya\" \/>\n<meta property=\"og:description\" content=\"B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama g\u00fc\u00e7l\u00fc bir makine \u00f6\u011frenimi algoritmas\u0131 olan Na\u00efve Bayes ile bu karma\u015f\u0131k s\u0131n\u0131fland\u0131rma problemlerini R ortam\u0131nda nas\u0131l \u00e7\u00f6zebilece\u011finizi merak ediyor musunuz? Bu rehber, spam filtrelemeden duygu analizine kadar geni\u015f bir yelpazede ger\u00e7ek d\u00fcnya uygulamalar\u0131yla Na\u00efve Bayes&#039;in t\u00fcm s\u0131rlar\u0131n\u0131 a\u00e7\u0131\u011fa \u00e7\u0131karacak.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-30T06:01:36+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya\",\"datePublished\":\"2025-10-30T06:01:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/\"},\"wordCount\":4745,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/\",\"name\":\"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-30T06:01:36+00:00\",\"description\":\"B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama g\u00fc\u00e7l\u00fc bir makine \u00f6\u011frenimi algoritmas\u0131 olan Na\u00efve Bayes ile bu karma\u015f\u0131k s\u0131n\u0131fland\u0131rma problemlerini R ortam\u0131nda nas\u0131l \u00e7\u00f6zebilece\u011finizi merak ediyor musunuz? Bu rehber, spam filtrelemeden duygu analizine kadar geni\u015f bir yelpazede ger\u00e7ek d\u00fcnya uygulamalar\u0131yla Na\u00efve Bayes'in t\u00fcm s\u0131rlar\u0131n\u0131 a\u00e7\u0131\u011fa \u00e7\u0131karacak.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya","description":"B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama g\u00fc\u00e7l\u00fc bir makine \u00f6\u011frenimi algoritmas\u0131 olan Na\u00efve Bayes ile bu karma\u015f\u0131k s\u0131n\u0131fland\u0131rma problemlerini R ortam\u0131nda nas\u0131l \u00e7\u00f6zebilece\u011finizi merak ediyor musunuz? Bu rehber, spam filtrelemeden duygu analizine kadar geni\u015f bir yelpazede ger\u00e7ek d\u00fcnya uygulamalar\u0131yla Na\u00efve Bayes'in t\u00fcm s\u0131rlar\u0131n\u0131 a\u00e7\u0131\u011fa \u00e7\u0131karacak.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/","og_locale":"tr_TR","og_type":"article","og_title":"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya","og_description":"B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama g\u00fc\u00e7l\u00fc bir makine \u00f6\u011frenimi algoritmas\u0131 olan Na\u00efve Bayes ile bu karma\u015f\u0131k s\u0131n\u0131fland\u0131rma problemlerini R ortam\u0131nda nas\u0131l \u00e7\u00f6zebilece\u011finizi merak ediyor musunuz? Bu rehber, spam filtrelemeden duygu analizine kadar geni\u015f bir yelpazede ger\u00e7ek d\u00fcnya uygulamalar\u0131yla Na\u00efve Bayes'in t\u00fcm s\u0131rlar\u0131n\u0131 a\u00e7\u0131\u011fa \u00e7\u0131karacak.","og_url":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-30T06:01:36+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"8 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya","datePublished":"2025-10-30T06:01:36+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/"},"wordCount":4745,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/","url":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/","name":"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-30T06:01:36+00:00","description":"B\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131 aras\u0131nda anlaml\u0131 bilgileri ay\u0131klamak, g\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Peki, basit ama g\u00fc\u00e7l\u00fc bir makine \u00f6\u011frenimi algoritmas\u0131 olan Na\u00efve Bayes ile bu karma\u015f\u0131k s\u0131n\u0131fland\u0131rma problemlerini R ortam\u0131nda nas\u0131l \u00e7\u00f6zebilece\u011finizi merak ediyor musunuz? Bu rehber, spam filtrelemeden duygu analizine kadar geni\u015f bir yelpazede ger\u00e7ek d\u00fcnya uygulamalar\u0131yla Na\u00efve Bayes'in t\u00fcm s\u0131rlar\u0131n\u0131 a\u00e7\u0131\u011fa \u00e7\u0131karacak.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/r-ile-naive-bayes-siniflandiricisina-hakim-olun-konseptten-uygulamaya\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"R ile Na\u00efve Bayes S\u0131n\u0131fland\u0131r\u0131c\u0131s\u0131na Hakim Olun: Konseptten Uygulamaya"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33154","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33154"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33154\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33154"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}