续《十大经典数据挖掘算法R语言实践(二)》,本文中介绍朴素贝叶斯算法在R语言中如何使用。 数据集,采用R语言内置的iris数据集。 #查看数据集前六个观测
head(iris) | | | | | 5.1 | 3.5 | 1.4 | 0.2 | setosa | 4.9 | 3.0 | 1.4 | 0.2 | setosa | 4.7 | 3.2 | 1.3 | 0.2 | setosa | 4.6 | 3.1 | 1.5 | 0.2 | setosa | 5.0 | 3.6 | 1.4 | 0.2 | setosa | 5.4 | 3.9 | 1.7 | 0.4 | setosa | 朴素贝叶斯算法R代码第一步:加载包e1071 library(e1071)
library(printr) 第二步:iris数据集分为训练集和测试集 index <-sample(1:nrow(iris), 100)
iris.train <-iris[index, ]
iris.test <-iris[-index, ] 第三步:利用朴素贝叶斯算法构建模型 model.NaiveBayes <-naiveBayes(x =subset(iris.train,select=-Species), y= iris.train$Species) 第四步:用模型对测试集做测试 results.NaiveBayes <-predict(object = model.NaiveBayes, newdata =iris.test, type="class")
第五步:混淆矩阵 table(results.NaiveBayes, iris.test$Species) | | | | setosa | 18 | 0 | 0 | versicolor | 0 | 15 | 1 | virginica | 0 | 0 | 16 |
朴素贝叶斯算法思想贝叶斯分类的基础是概率推理,就是在各种条件的存在不确定,仅知其出现概率的情况下,如何完成推理和决策任务。概率推理是与确定性推理相对应的。而朴素贝叶斯分类器是基于独立假设的,即假设样本每个特征与其他特征都不相关。
贝叶斯分类器特点1、需要知道先验概率,先验概率是计算后验概率的基础。在传统的概率理论中,先验概率可以由大量的重复实验所获得的各类样本出现的频率来近似获得,其基础是“大数定律”,这一思想称为“频率主义”。而在称为“贝叶斯主义”的数理统计学派中,他们认为时间是单向的,许多事件的发生不具有可重复性,因此先验概率只能根据对置信度的主观判定来给出,也可以说由“信仰”来确定。 2、按照获得的信息对先验概率进行修正在没有获得任何信息的时候,如果要进行分类判别,只能依据各类存在的先验概率,将样本划分到先验概率大的一类中。而在获得了更多关于样本特征的信息后,可以依照贝叶斯公式对先验概率进行修正,得到后验概率,提高分类决策的准确性和置信度。 3、分类决策存在错误率由于贝叶斯分类是在样本取得某特征值时对它属于各类的概率进行推测,并无法获得样本真实的类别归属情况,所以分类决策一定存在错误率,即使错误率很低,分类错误的情况也可能发生。
参考资料1 《数据挖掘导论》和《数据挖掘:概念与技术》 2 数据挖掘十大经典算法(详解) 3 Top10 data mining algorithms in plain R
|