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

版权声明:本文为作者创作,转载请注明出处:http://blog.csdn.net/claroja,如有商业用途请联系QQ:63183535。 https://blog.csdn.net/claroja/article/details/55046725

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)
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)


2)做出密度曲线
plot(fit_Bayes1)
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)
R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)


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

pre_Bayes1=predict(fit_Bayes1,data_test)
pre_Bayes1

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

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)

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

展开阅读全文

没有更多推荐了,返回首页