樸素貝葉斯演算法在r語言中的應用,對應klar包中的*****bayes()方法。問題描述:主要通過樸素貝葉斯演算法對於測試資料集中的nmkat屬性值進行**,我們使用的資料是kknn包中的自帶資料miete資料。主要對於該資料進行劃分:1/3為測試資料,2/3為訓練資料,通過對於資料的觀察,**測試資料中的nmkat對應的值。
載入包
#樸素貝葉斯演算法
library(klar)
nb1=*****bayes(nmkat~.,data_train)
劃分資料集
data_train=getdata(miete[,c(-1,-3,-12)],sub_train$id_unit)
data_test=getdata(miete[,c(-1,-3,-12)],-sub_train$id_unit)
test_nb=*****bayes(data_train[,-12],data_train[,12])
**
predice_nb=predict(nb1,data_test)
predice_nb
table(data_test$nmkat,predice_nb$class)
評估error_nb=sum(as.numeric(as.numeric(predice_nb$class)!=as.numeric(data_test$nmkat)))/nrow(data_test)
error_nb
1-error_nb
結果:1 2 3 4 5
1 37 26 8 0 4
2 20 30 23 8 5
3 9 11 21 21 4
4 3 2 15 28 16
5 0 1 2 8 60
準確率:
> error_nb
[1] 0.5138122
> 1-error_nb
[1] 0.4861878
樸素貝葉斯演算法
首先樸素貝葉斯分類演算法利用貝葉斯定理來 乙個未知類別的樣本屬於各個類別的可能性,選擇可能性最大的乙個類別作為該樣本的最終類別。對於計算而言,需要記住乙個公式。p c x p x c p c p x 類似於概率論條件概率公式。其中x代表含義為最終類別,例如 yes?no。c為屬性。使用樸素貝葉斯演算...
樸素貝葉斯演算法
計算貝葉斯定理中每乙個組成部分的概率,我們必須構造乙個頻率表 因此,如果電子郵件含有單詞viagra,那麼該電子郵件是垃圾郵件的概率為80 所以,任何含有單詞viagra的訊息都需要被過濾掉。當有額外更多的特徵時,此概念的使用 利用貝葉斯公式,我們可得到如下概率 分母可以先忽略它,垃圾郵件的總似然為...
樸素貝葉斯演算法
對於樸素貝葉斯演算法,我的理解就是 使用已知的概率和結果,來 事情的條件。舉乙個例子就是,我們通過統計得到了不同年齡段喜歡吃冰激凌的比例,比如各採訪了500個青少年 中年人和老年人,得到有450個青少年 300個中年人和50個老年人喜歡吃冰激凌。我們還通過統計,知道了在社會中假設小孩子佔20 中年人...