首页 > 编程知识 正文

r语言与数据挖掘(如何进行数据挖掘)

时间:2023-05-04 23:28:03 阅读:77901 作者:1360

朴素贝叶斯) )函数实现朴素贝叶斯分类算法,与线性判别的核心函数一样,分为两种函数格式分别进行介绍。 在此之前,必须安装和部署klaR软件包。 以iris数据集为例进行朴素贝叶斯分类。

首先,以Species为判别对象变量,用data_train生成贝叶斯判别规则。 步骤如下。

是库(klar )

是库(质量)

set.seed(1234 ) )。

ind-sample(2,nrow ) iris ),replace=TRUE,prob=c ) 0.7,0.3 ) )

data_train - iris[ind==1,]

data_test - iris[ind==2,]

fit _ Bayes1-朴素贝叶斯(特殊~,data_train ) )。

Names(fit_Bayes1) )。

[1] ' apriori ' ' tables ' ' levels ' ' call ' ' x ' ' use kernel ' ' varnames '

在此输出结果中,apriori ()与lda ) )函数提供的prior项一样,记录了在执行过程中使用的先验概率。

fit_Bayes1$apriori

群组化

setosa versicolor virginica

0.3571429 0.3392857 0.3035714

tables部分包含用于建立判别规则的所有变量的分类条件概率,这些变量是运行贝叶斯判别算法的重要过程之一。

fit_Bayes1$tables

$Sepal.Length

[,1] [,2]

setosa 5.010000 0.3455208

versicolor 5.976316 0.4784176

virginica 6.605882 0.6866436

$Sepal.Width

[,1] [,2]

setosa 3.440000 0.3733425

versicolor 2.776316 0.2944846

virginica 2.991176 0.3213302

$Petal.Length

[,1] [,2]

setosa 1.480000 0.1757037

versicolor 4.297368 0.4641102

virginica 5.611765 0.5819324

$Petal.Width

[,1] [,2]

setosa 0.255000 0.1108244

versicolor 1.336842 0.2019112

virginica 2.035294 0.2717869

其他判别变量类别项levels、判别命令项call、是否使用标准密度估计usekernel、以及与判别规则制作相关的特征变量名称varnames的输出结果如下。

fit_Bayes1$levels

[1] ' setosa ' ' versi color ' ' virgin ICA '

fit_Bayes1$call

朴素贝叶斯.默认(x=x,grouping=Y ) )。

fit_Bayes1$usekernel

[1]法尔斯

fit_Bayes1$varnames

[1] ' sepal.length ' ' sepal.width ' ' petal.length ' ' petal.width '

然后,根据得到的判别规则,绘制合适的密度曲线图

打印(fit _ Bayes1) )。

从Sepal.Length (花萼长度)看,setosa (山鸢尾)长4.6cm~5.3cm,versicolor (杂色鸢尾)长5,5 cm~6.5 cm,virginica )

从Sepal.Width (萼宽)看,versicolor和virginica的萼宽不同

并不是很大,setosa的宽度和另外两类存在较为明显的差异,所以但从花萼宽度来看还是很容易区分出setosa这种花类的。

Petal.Length(花瓣长度)和Petal.Width(花瓣宽度)的密度曲线图非常相似,setosa的花瓣长、宽有着非常明显的特征,长度不超过2cm,宽度大多数不少过0.5cm。而versicolor和virginica的花瓣长、宽也有较为明显的差异。就花瓣长宽总体来说,virginica > versicolor > setosa。

接着,我们对模型进行预测分析和评测

> pre_Bayes1 <- predict(fit_Bayes1, data_test)

> pre_Bayes1

$class

5 14 16 26 28 29 36 39 40 50

setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa

53 58 60 61 66 72 74 81 86 90

versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor

92 100 111 113 116 117 120 121 122 123

versicolor versicolor virginica virginica virginica virginica versicolor virginica virginica virginica

124 131 135 137 140 142 147 149

virginica virginica versicolor virginica virginica virginica virginica virginica

Levels: setosa versicolor virginica

$posterior

setosa versicolor virginica

5 1.000000e+00 2.790555e-19 4.804157e-25

14 1.000000e+00 4.681860e-20 8.584231e-26

16 1.000000e+00 4.965007e-18 1.617037e-22

26 1.000000e+00 2.919231e-16 6.817218e-23

28 1.000000e+00 5.355506e-18 5.209729e-24

29 1.000000e+00 3.397560e-18 2.601146e-24

36 1.000000e+00 1.103180e-18 6.604019e-25

39 1.000000e+00 1.239266e-18 9.601292e-25

40 1.000000e+00 7.167103e-18 5.268064e-24

50 1.000000e+00 2.808498e-18 1.783320e-24

53 5.323015e-115 5.701487e-01 4.298513e-01

58 9.659583e-32 9.999991e-01 8.658274e-07

60 1.655466e-64 9.998612e-01 1.387868e-04

61 4.541736e-38 9.999992e-01 8.394677e-07

66 1.000900e-87 9.856329e-01 1.436707e-02

72 1.205796e-66 9.998444e-01 1.555779e-04

74 3.191784e-91 9.989301e-01 1.069908e-03

81 1.804099e-51 9.999953e-01 4.709269e-06

86 1.451633e-96 9.003209e-01 9.967912e-02

90 2.868701e-65 9.999491e-01 5.088571e-05

92 7.614003e-94 9.934054e-01 6.594628e-03

100 5.874664e-69 9.998619e-01 1.381040e-04

111 2.203389e-149 1.088649e-03 9.989114e-01

113 1.856574e-179 1.510435e-05 9.999849e-01

116 2.569809e-179 1.886245e-06 9.999981e-01

117 1.497545e-159 4.554217e-03 9.954458e-01

120 2.939555e-117 9.735871e-01 2.641290e-02

121 5.876038e-205 4.261153e-08 1.000000e+00

122 4.934524e-136 3.048338e-02 9.695166e-01

123 2.031354e-257 7.578507e-10 1.000000e+00

124 2.725711e-127 2.649040e-01 7.350960e-01

131 6.078848e-208 1.428685e-06 9.999986e-01

135 3.522568e-144 6.518680e-01 3.481320e-01

137 1.691260e-202 2.829088e-08 1.000000e+00

140 2.364394e-174 1.501887e-05 9.999850e-01

142 7.278610e-172 1.764858e-06 9.999982e-01

147 4.272198e-138 6.431249e-02 9.356875e-01

149 1.879617e-183 8.795346e-07 9.999991e-01

> table(data_test$Species,pre_Bayes1$class)

setosa versicolor virginica

setosa 10 0 0

versicolor 0 12 0

virginica 0 2 14

> error_Bayes1=sum(as.numeric(as.numeric(pre_Bayes1$class)!=as.numeric(data_test$Species)))/nrow(data_test)

> error_Bayes1

[1] 0.05263158

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。