R语言 奈何贝叶斯分类器
Naive Bayes是R编程中的一种监督式非线性分类算法。奈何贝叶斯分类器是一个简单的概率分类器系列,它基于应用贝叶定理和特征或变量之间的强(奈何)独立性假设。Naive Bayes算法之所以被称为 “Naive”,是因为它假设某个特征的出现与其他特征的出现无关。
。
理论
奈何贝叶斯算法是基于贝叶斯定理的。贝叶斯定理给出了在另一事件B发生的情况下事件A的条件概率。
其中,
P(A|B) = 给定B的A的条件概率。
P(B|A) = 给定A的B的条件概率。
P(A) = 事件A的概率。
P(B) = 事件B的概率。
对于许多预测者,我们可以把后验概率表述为:
p(a|b) = p(b1|a) * p(b2|a) * p(b3|a) * p(b4|a) …
例子
考虑一个样本空间。
{hh, ht, th, tt}。
其中,
H:头部
T:尾巴
P(第二枚硬币是头 = P(A|B)
第一枚硬币是尾巴) = P(A|B)
= [P(B|A) * P(A)] / P(B)
= [P(第一枚硬币是尾巴,给定第二枚硬币是头) *
P(第二枚硬币是头)] / P(b) / P(第一枚硬币是尾巴)
= [(1/2) * (1/2)] / (1/2)
= (1/2)
= 0.5
数据集
鸢尾花 数据集由3种鸢尾花(Iris setosa, Iris virginica, Iris versicolor)各50个样本组成,是英国统计学家和生物学家Ronald Fisher在其1936年的论文《多重测量在分类学问题中的应用》中提出的多变量数据集。从每个样本中测量了四个特征,即萼片和花瓣的长度和宽度,根据这四个特征的组合,Fisher开发了一个线性判别模型来区分物种。
在数据集上执行奈何贝叶斯算法
在包括11个人和6个变量或属性的数据集上使用Naive Bayes算法,
输出
- 模型 classifier_cl:
- 每个特征或变量的条件概率是由模型单独创建的。还计算了priori概率,表明我们的数据分布。
- 混淆矩阵:
- 因此,有20个Setosa被正确分类为Setosa。在16个Versicolor中,15个Versicolor被正确分类为Versicolor,1个被分类为virginica。在24个Virginica中,19个Virginica被正确分类为Virginica,5个被分类为Versicolor。
- 模型评估:
- 该模型达到了90%的准确率,P值小于1。通过敏感性、特异性和平衡性的准确率,该模型的建立是好的。
因此,Naive Bayes被广泛用于情感分析、文档分类、电子邮件垃圾邮件过滤等行业。