R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)

1.朴素贝叶斯分类原理解析
根据已知的先验概率P(A|B),利用贝叶斯公式P(B|A)=P(A|B)P(B)/P(A)求出后验概率P(B|A),即该样本属于某一类的概率,然后选择具有最大后验概率的类作为该样本所属的类.
也就是说,对于给出的待分类样本,求出在此样本出现条件下各个类别出现的概率,哪个最大,就认为此样本属于哪个类别.
其优势在于不怕噪声和无关变量,不足之处在于,它假设各个特征属性是无关的,而现实情况往往不是如此.
2.在R语言中的应用
朴素贝叶斯分类主要用到了klaR包里面的NaiveBayes(formula,data,...,subset,na,action=na.pass)函数。
3.以iris数据集为例进行判别分析
1)应用模型并观察结果

library(klaR)
fit_Bayes1=NaiveBayes(Species~.,data_train)
fit_Bayes1[1:length(fit_Bayes1)]

R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)_第1张图片
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)


2)做出密度曲线
plot(fit_Bayes1)
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)_第2张图片
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)_第3张图片
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)_第4张图片
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)_第5张图片


3)预测分析并对模型进行评测

pre_Bayes1=predict(fit_Bayes1,data_test)
pre_Bayes1

R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)_第6张图片

table(data_test$Species,pre_Bayes1$class)
 error_Bayes1=sum(as.numeric(as.numeric(pre_Bayes1$class)!=as.numeric(data_test$Species)))/nrow(data_test); error_Bayes1

R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)_第7张图片

http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html

你可能感兴趣的:(R语言)