R语言 朴素贝叶斯分类预测

本文通过使用R语言和e1071包,详细介绍了如何构建并应用朴素贝叶斯分类器对鸢尾花数据集进行预测分类。从包的安装到分类器的构建,再到预测效果的评估,全面展示了朴素贝叶斯分类器的工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#朴素贝叶斯预测分类问题代码

install.packages("e1071")   #下载包

library(e1071)              #加载包

classifier=naiveBayes(iris[,1:4],iris[,5])   #构建分类器

table(predict(classifier,iris[,-5]),iris[,5]) #生成混淆矩阵

classifier        #查看先验概率和各特征变量与鸢尾花品种的条件概率

set.seed(2019)    #设定随机种子

index=sample(x=2,size=nrow(iris),replace=TRUE,prob=c(0.8,0.2)) #按照80%和20%比例划分训练集和测试集

iris.Train=iris[index==1,]    #训练集

iris.Test=iris[index==2,]     #测试集

dim(iris.Train)               #查看训练集的大小(行和列)

dim(iris.Test)                #查看测试集的大小

class1=naiveBayes(iris.Train[,1:4],iris.Train[,5]) #分类器

table(predict(class1,iris.Test[,-5]),iris.Test[,5]) #测试集预测效果

#软件结果展示

> library(e1071)              #加载包

Warning message:

程辑包‘e1071’是用R版本3.2.5 来建造的

> classifier=naiveBayes(iris[,1:4],iris[,5])   #构建分类器

> table(predict(classifier,iris[,-5]),iris[,5]) #生成混淆矩阵

           

             setosa versicolor virginica

  setosa         50          0         0

  versicolor      0         47         3

  virginica       0          3        47

> classifier        #查看先验概率和各特征变量与鸢尾花品种的条件概率

 

Naive Bayes Classifier for Discrete Predictors

 

Call:

naiveBayes.default(x = iris[, 1:4], y = iris[, 5])

 

A-priori probabilities:

iris[, 5]

    setosa versicolor  virginica

 0.3333333  0.3333333  0.3333333

 

Conditional probabilities:

            Sepal.Length

iris[, 5]     [,1]      [,2]

  setosa     5.006 0.3524897

  versicolor 5.936 0.5161711

  virginica  6.588 0.6358796

 

            Sepal.Width

iris[, 5]     [,1]      [,2]

  setosa     3.428 0.3790644

  versicolor 2.770 0.3137983

  virginica  2.974 0.3224966

 

            Petal.Length

iris[, 5]     [,1]      [,2]

  setosa     1.462 0.1736640

  versicolor 4.260 0.4699110

  virginica  5.552 0.5518947

 

            Petal.Width

iris[, 5]     [,1]      [,2]

  setosa     0.246 0.1053856

  versicolor 1.326 0.1977527

  virginica  2.026 0.2746501

 

> set.seed(2019)    #设定随机种子

> index=sample(x=2,size=nrow(iris),replace=TRUE,prob=c(0.8,0.2)) #按照80%和20%比例划分训练集和测试集

> iris.Train=iris[index==1,]    #训练集

> iris.Test=iris[index==2,]     #测试集

> dim(iris.Train)               #查看训练集的大小(行和列)

[1] 121   5

> dim(iris.Test)                #查看测试集的大小

[1] 29  5

> class1=naiveBayes(iris.Train[,1:4],iris.Train[,5]) #分类器

> table(predict(class1,iris.Test[,-5]),iris.Test[,5]) #测试集预测效果,准确率100%

            

             setosa versicolor virginica

  setosa          8          0         0

  versicolor      0         11         0

  virginica       0          0        10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈伦2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值