【统计分析数学模型】判别分析(三):Bayes判别法
- 一、Bayes判别法
- 二、R语言实现Bayes判别法
- 1. 运行NaiveBayes()函数
- 2. 绘制密度曲线
- 3. 计算回判正确率
一、Bayes判别法
Bayes判别法假定对研究对象有一定的认识,这种认识用先验概率描述,再利用样本信息来修正已有的先验概率,从而得到后验概率,最后根据后验概率判断各样品的类别。
朴素Bayes分类(naive Bayes classifier) 是一种简单而实用的分类算法,其基本原理是Bayes定理。
klaR包里的 NaiveBayes()
函数实现朴素Bayes分类算法。
二、R语言实现Bayes判别法
1. 运行NaiveBayes()函数
library(klaR)
thyroid.bayes<-NaiveBayes(Diagnosis~RT3U+T4+T3+TSH+DTSH,data=thyroid)
names(thyroid.bayes)
函数NaiveBayes()共有7项输出结果,其中apriori是使用的先验概率,tables存储了用于建立判别规则的所有变量在各类别下的条件概率。
结果如下:
> names(thyroid.bayes)
[1] "apriori" "tables" "levels" "call" "x" "usekernel" "varnames"
2. 绘制密度曲线
用上面建立的判别规则thyroid.bayes绘制参与规则建立的5个变量在不同类别下的密度曲线:
plot(thyroid.bayes)
3. 计算回判正确率
通过回代法查看判别效果:
thyroid.pred<-predict(thyroid.bayes)
table(thyroid.pred$class,thyroid$Diagnosis)
运行结果如下:
> table(thyroid.pred$class,thyroid$Diagnosis)
Normal Hyper Hypo
Normal 149 1 4
Hyper 0 34 0
Hypo 1 0 26
一共有6个对象被错判,回判正确率为97.2%。