R语言朴素贝叶斯Naive Bayes分类Iris鸢尾花和HairEyeColor学生性别和眼睛头发颜色数据
全文链接:http://tecdat.cn/?p=31070
原文出处:拓端数据部落公众号
最近,在贝叶斯统计实验中,我们向客户演示了用R的朴素贝叶斯分类器可以提供的内容。
这个实用的例子介绍了使用R统计环境的朴素贝叶斯模型。 它不假设先验知识。
我们的步骤是:
1.启动R
2.探索Iris鸢尾花数据集
3.构造朴素贝叶斯分类器
4.理解朴素贝叶斯
探索Iris数据集
在这个实践中,我们将探索经典的“Iris”数据集。
Iris数据集有150个数据点和5个变量。每一个数据点包含一个特定的花,并给出4种花的测量值。
任务是用花的特征与物种一起构建一个分类器,从4种对花的观测量中预测花的品种。
要将Iris数据集放到您的R会话中,请执行以下操作:
data(iris)
查看数据
pairs(iris[1:4],main="
命令创建了一个散点图。类决定数据点的颜色。从中可以看出,setosa花的花瓣比其他两种都要小。
提供数据摘要
summary(iris)
构造朴素贝叶斯分类器
我们构建一个朴素的贝叶斯分类器。
(1)加载到您的工作区
(2)构建朴素的Bayes分类器,
(3)对数据进行一些预测,请执行以下操作:
library(e1071)
classifier<-naiveBayes(iris[,1:4], iris[,5])
table(predict(classifier, iris[,-5]), iris[,5], dnn=list('predicted','actual'))
正如你应该看到的那样,分类器在分类方面做得很好。为什么这并不奇怪?
这给出了数据中的类分布:类的先验分布。(“先验”是拉丁语,表示“从前开始”)。
由于这里的预测变量都是连续的,朴素贝叶斯分类器为每个预测变量生成三个Giaussian(正态分布)分布:一个用于类变量的每个值。
您将看到3个依赖于类的高斯分布的平均(第一列)和标准偏差(第二列):
绘制成图:
plot(function(x) dnorm, 0, 8, col=2, main="3种不同物种的花瓣长度分布")
curve(
值得注意的是,setosa irises(蓝色曲线)花瓣较小(平均值=1.462),花瓣长度变化较小(唐氏偏差仅为0.1736640)。
理解朴素贝叶斯
在这个问题中,您必须计算出对于一些离散数据,朴素贝叶斯模型的参数应该是什么。
该数据集被称为HairEyeColor,有三个变量:性别、眼睛和头发,给出了某大学592名学生的这3个变量的值。首先看一下数字:
您还可以将其绘制为“马赛克”图,它使用矩形来表示数据中的数字:
你在这里的工作是为一个朴素的贝叶斯分类器计算参数,它试图从另外两个变量中预测性别。参数应该使用最大的可能性来估计。为了节省手工计算的繁琐时间,下面是如何使用Edge.table来获取所需的计数
naiveBayes(Sex ~
预测
最受欢迎的见解
4.R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
6.R语言贝叶斯Poisson泊松-正态分布模型分析职业足球比赛进球数
相关文章
- R语言SVM和LDA文本挖掘分类开源软件存储库标签数据和词云可视化
- 【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享|附代码数据
- 西门子plc scl语言很少人用_西门子plc的scl语言
- R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化|附代码数据
- R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化|附代码数据
- R语言对S&P500股票指数进行ARIMA + GARCH交易策略|附代码数据
- R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
- 【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享
- R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测|附代码数据
- R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析|附代码数据
- R语言豆瓣数据文本挖掘 神经网络、词云可视化和交叉验证
- R语言建立和可视化混合效应模型mixed effect model|附代码数据
- 【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享|附代码数据
- R语言用灰色模型 GM (1,1)、神经网络预测房价数据和可视化
- 数据分享|R语言决策树和随机森林分类电信公司用户流失churn数据和参数调优、ROC曲线可视化|附代码数据
- go语言快速入门:Web开发框架(10)详解大数据
- Go语言使用空接口实现可以保存任意值的字典
- Go语言字符串的链式处理——操作与数据分离的设计技巧
- Go语言解码未知结构的JSON数据
- 为什么使用 Go 语言?
- 学习 Linux 是我们的爱情语言
- Redis实现跨不同语言工程项的数据序列化(redis 跨工程序列化)