机器学习算法(三)——朴素贝叶斯算法及R语言实现方法
2015-04-23 09:44
232 查看
朴素贝叶斯算法也是一种常用的分类算法,尤其在对文本文档分类的学习任务中,朴素贝叶斯分类是最有效的算法之一。所谓的朴素,即假设在给定目标值时属性值之间相互条件独立,虽然这一假设看似不合理,但其最终的分类效果却普遍较好。
一、概述
1、贝叶斯公式
![](http://img.blog.csdn.net/20150423095802164?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQXVndXN0V2luZA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2、最大后验假设(MAP)
从所有假设的集合H中选择一个假设h使得其在给定数据集D下发生的概率P(h|D)最大,即成为最大后验假设。
3、极大似然假设(ML)
如果假设集合H中的所有假设发生概率相同,那么只需要寻找似然度P(D|h)的最大值,使得似然度最大的假设h成为极大似然假设。
二、推导过程(忽略丑字)
![](http://img.blog.csdn.net/20150423212145796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQXVndXN0V2luZA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
三、R语言实现举例
一、概述
1、贝叶斯公式
2、最大后验假设(MAP)
从所有假设的集合H中选择一个假设h使得其在给定数据集D下发生的概率P(h|D)最大,即成为最大后验假设。
3、极大似然假设(ML)
如果假设集合H中的所有假设发生概率相同,那么只需要寻找似然度P(D|h)的最大值,使得似然度最大的假设h成为极大似然假设。
二、推导过程(忽略丑字)
三、R语言实现举例
# 贝叶斯网络的建立可以根据主观知识或是客观数据。建模分为两个步骤, # 第一个步骤是结构学习,也就是创建网络拓扑结构。 # 第二个步骤是参数学习,即估计出各节点的条件概率表。训练完成之后就可以利用贝叶斯网络来进行推断和预测。 # R语言中可以使用bnlearn包来完成上述这些工作。但要注意的是,bnlearn包不能处理混合数据,所以先将连续数据进行离散化,再进行建模训练。 # 加载包 install.packages("bnlearn") library(bnlearn) # 数据本身为连续型,需要离散化为分段因子型,第9列为类标号 data2 <- discretize(data[-9],method='quantile') data2$class <- data[,9] # 使用爬山算法进行结构学习,建立贝叶斯网络 bayesnet <- hc(data2) # 显示网络图 plot(bayesnet) # 修改网络图中的箭头指向 bayesnet <- set.arc(bayesnet,'age','pregnant') # 参数学习 fitted <- bn.fit(bayesnet, data2, method='mle') # 训练样本预测并提取混淆矩阵 pre <- predict(fitted,data=data2,node='class') confusionMatrix(pre,data2$class) # 进行条件推理,pos概率有多大 cpquery(fitted,(class=='pos'),(age=='(36,81]'&mass=='(34.8,67.1]'))
相关文章推荐
- 机器学习算法(一)——关联规则Apriori算法及R语言实现方法
- 机器学习算法(二)——决策树分类算法及R语言实现方法
- 不同方法的正态性检验及R语言实现
- 机器学习算法的R语言实现(一):KNN
- 机器学习算法的R语言实现(二):决策树算法
- 机器学习算法的R语言实现(三):朴素贝叶斯分类器
- R语言OOP(2):S3 OOP 的实现方法
- R语言OOP(3):S4的实现方法
- 【机器学习算法-python实现】协同过滤(cf)的三种方法实现
- R语言中实现笛卡尔积的一个方法
- 机器学习算法基础(Python和R语言实现)
- 【机器学习算法-python实现】协同过滤(cf)的三种方法实现
- 『原创』机器学习算法的R语言实现(一):KNN
- 『原创』机器学习算法的R语言实现(二):决策树算法
- 『原创』机器学习算法的R语言实现(三):朴素贝叶斯分类器
- R语言实现固定分组汇总的方法
- 朴素贝叶斯算法的python实现方法
- 朴素贝叶斯算法的python实现方法
- 应用统计学与R语言实现学习笔记(四)——抽样方法与抽样分布
- 应用统计学与R语言实现学习笔记(四)——抽样方法与抽样分布