貝葉斯方法把計算“具有某特征的條件下屬于某類”的概率轉(zhuǎn)換成需要計算“屬于某類的條件下具有某特征”的概率,屬于有監(jiān)督學習唬格。
樸素貝葉斯這種學習方法是基于條件概率進行的,通過給定已知的其他東西颜说,來推斷一件事情發(fā)生的可能性购岗。假定在一個類中,某個特征存在(或不存在)與其他特征存在(或不存在)沒有任何關(guān)系门粪。
優(yōu)勢:只需要少量的訓練數(shù)據(jù)進行分類所需的參數(shù)(變量的均值和方差)估計喊积。因為假定變量之間是相互獨立的,所以只需要確定每一類變量的方差玄妈,而不需要整個協(xié)方差矩陣乾吻。
特點:各特征之間相互獨立髓梅。
其流程如下:
準備階段, 根據(jù)具體情況確定特征屬性绎签, 對每個特征屬性進行適當劃分枯饿, 然后由人工對一部分待分類項進行分類,形成訓練樣本集合诡必。這一階段的輸入是所有待分類數(shù)據(jù)鸭你,輸出是特征屬性和訓練樣本。這一階段是整個樸素貝葉斯分類中唯一需要人工完成的階段擒权, 其質(zhì)量對整個過程將有重要影響袱巨,分類器的質(zhì)量很大程度上由特征屬性、特征屬性劃分及訓練樣本質(zhì)量決定碳抄。
分類器訓練階段愉老, 這個階段的任務(wù)就是生成分類器,主要工作是計算每個類別在訓練樣本中的出現(xiàn)頻率及每個特征屬性劃分對每個類別的條件概率估計剖效, 并將結(jié)果記錄嫉入。 其輸入是特征屬性和訓練樣本,輸出是分類器璧尸。這一階段是機械性階段咒林, 根據(jù)前面討論的公式可以由程序自動計算完成。
應(yīng)用階段爷光。 這個階段的任務(wù)是使用分類器對待分類項進行分類垫竞, 其輸入是分類器和待分類項, 輸出是待分類項與類別的映射關(guān)系蛀序。這一階段也是機械性階段欢瞪, 由程序完成。
# 準備data
data("iris")
n<-nrow(iris)
ntrain<-round(n*0.6)
set.seed(333)
tindex<-sample(n,ntrain)
train_iris<-iris[tindex,]
test_iris<-iris[-tindex,]
str(train_iris)
# 樸素貝葉斯分類器
library(e1071)
nb1<-naiveBayes(Species~.,data=train_iris)
nb1
nb1$apriori
nb1$tables$Petal.Length
table(train_iris$Species)
# 畫預(yù)測變量的高斯分布
plot(function(x)dnorm(x,1.48,0.1349329),0,8,lty=1,main="Petal length dis")
curve(dnorm(x,4.306897,0.3890749),add=TRUE,lty=2)
curve(dnorm(x,5.577419,0.5321088),add=TRUE,lty=5)
legend("topright",legend=c("setosa","versicolor","virginica"),lty=c(1,2,5),bty="o")
# bty可以取6種字符徐裸,分別為“o”遣鼓、“l(fā)”、“7”重贺、“c”骑祟、“u”、“]”气笙。這些字符代 表6種邊框次企。
# 對test樣本進行預(yù)測
prediction<-predict(nb1,test_iris[,-5], type=class)
# type默認是class,若是raw表示具體概率;
xtab<-table(prediction,test_iris$Species)
xtab
- A-priori probabilities健民,先驗概率抒巢,是樣本中個類別出現(xiàn)的頻率
- Conditional probabilities,特征屬性為離散值時秉犹,以每一類別中各樣本類型出現(xiàn)的頻率作為其概率值蛉谜;特征屬性為連續(xù)性值時,假設(shè)特征屬性服從正態(tài)分布崇堵,用各類別的樣本均值及標準差作為正態(tài)分布的參數(shù)型诚。
- 預(yù)測變量都是連續(xù)的,樸素貝葉斯分類器為每個預(yù)測變量生成了3個高斯(正太)分布赏廓;
e1071包參數(shù)介紹
參考