如何在R中为rpart模型创建混淆矩阵?


要为rpart模型创建混淆矩阵,我们首先需要找到预测值,然后创建预测值表和原始数据中的响应变量表,这将是该模型的混淆矩阵。

例如,如果我们有一个预测值的向量,例如P,以及数据框df$O中的原始值,则可以使用以下命令创建混淆矩阵:

table(P,df$O)

查看下面的示例以了解如何操作。

示例1

以下代码片段创建一个样本数据框:

Dep_Var1<-factor(sample(0:1,20,replace=TRUE))
Indep_Var1<-rpois(20,5)
df1<-data.frame(Dep_Var1,Indep_Var1)
df1

创建了以下数据框

 Dep_Var1 Indep_Var1
1   0      4
2   0     11
3   0      3
4   0      6
5   0      3
6   1      5
7   1      4
8   0      4
9   1      5
10  0      3
11  1      5
12  1      4
13  0      2
14  0      3
15  0      5
16  1      9
17  1      5
18  0      9
19  1      2
20  0      2

要在上面创建的数据框上加载rpart包,请将以下代码添加到上面的代码片段中:

Dep_Var1<-factor(sample(0:1,20,replace=TRUE))
Indep_Var1<-rpois(20,5)
df1<-data.frame(Dep_Var1,Indep_Var1)
library(rpart)

要在上面创建的数据框上创建rpart模型并查找df1中数据的预测值,请将以下代码添加到上面的代码片段中:

Dep_Var1<-factor(sample(0:1,20,replace=TRUE))
Indep_Var1<-rpois(20,5)
df1<-data.frame(Dep_Var1,Indep_Var1)
library(rpart)
Model_1<-rpart(Dep_Var1~Indep_Var1,data=df1)
Prediction_Model_1<-predict(Model_1,type="class")

要在上面创建的数据框上创建混淆矩阵,请将以下代码添加到上面的代码片段中:

Dep_Var1<-factor(sample(0:1,20,replace=TRUE))
Indep_Var1<-rpois(20,5)
df1<-data.frame(Dep_Var1,Indep_Var1)
library(rpart)
Model_1<-rpart(Dep_Var1~Indep_Var1,data=df1)
Prediction_Model_1<-predict(Model_1,type="class")
table(Prediction_Model_1,df1$Dep_Var1)

输出


如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

Prediction_Model_1 0 1
                 0 6 1
                 1 6 7

示例2


以下代码片段创建一个样本数据框:

Dep_Var2<-factor(sample(0:1,20,replace=TRUE))
Indep_Var2<-rnorm(20)
df2<-data.frame(Dep_Var2,Indep_Var2)
df2

创建了以下数据框

  Dep_Var2 Indep_Var2
1  0        1.139577556
2  1        0.006968284
3  1        0.438159515
4  1        0.599715153
5  1        1.870112573
6  0       -0.810537941
7  0       -0.733628480
8  1        0.625663690
9  1        0.696501333
10 1       -0.967849897
11 1       -2.392595836
12 1        1.459343862
13 1       -0.026408590
14 0       -1.254218214
15 0       -0.865296394
16 0        0.443057916
17 0        1.172367014
18 0        1.334406228
19 1        1.262094268
20 0        0.887480542

要在上面创建的数据框上创建rpart模型并查找df2中数据的预测值,请将以下代码添加到上面的代码片段中:

Dep_Var2<-factor(sample(0:1,20,replace=TRUE))
Indep_Var2<-rnorm(20)
df2<-data.frame(Dep_Var2,Indep_Var2)
library(rpart)
Model_2<-rpart(Dep_Var2~Indep_Var2,data=df2)
Prediction_Model_2<-predict(Model_2,type="class")

要在上面创建的数据框上创建混淆矩阵,请将以下代码添加到上面的代码片段中:

Dep_Var2<-factor(sample(0:1,20,replace=TRUE))
Indep_Var2<-rnorm(20)
df2<-data.frame(Dep_Var2,Indep_Var2)
library(rpart)
Model_2<-rpart(Dep_Var2~Indep_Var2,data=df2)
Prediction_Model_2<-predict(Model_2,type="class")
table(Prediction_Model_2,df2$Dep_Var2)

输出

如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

Prediction_Model_2 0 1
                 0 4 3
                 1 5 8

示例3

以下代码片段创建一个样本数据框:

Dep_Var3<-factor(sample(0:1,20,replace=TRUE))
Indep_Var3<-sample(501:1000,20)
df3<-data.frame(Dep_Var3,Indep_Var3)
df3

创建了以下数据框

 Dep_Var3 Indep_Var3
1  1       530
2  0       554
3  0       510
4  1       782
5  0       648
6  1       546
7  1       762
8  0       666
9  1       733
10 0       928
11 0       902
12 1       602
13 1       933
14 1       987
15 1       743
16 0       515
17 1       867
18 1       945
19 0       503
20 1       512

要在上面创建的数据框上创建rpart模型并查找df3中数据的预测值,请将以下代码添加到上面的代码片段中:

Dep_Var3<-factor(sample(0:1,20,replace=TRUE))
Indep_Var3<-sample(501:1000,20)
df3<-data.frame(Dep_Var3,Indep_Var3)
library(rpart)
Model_3<-rpart(Dep_Var3~Indep_Var3,data=df3)
Prediction_Model_3<-predict(Model_3,type="class")

要在上面创建的数据框上创建混淆矩阵,请将以下代码添加到上面的代码片段中:

Dep_Var3<-factor(sample(0:1,20,replace=TRUE))
Indep_Var3<-sample(501:1000,20)
df3<-data.frame(Dep_Var3,Indep_Var3)
library(rpart)
Model_3<-rpart(Dep_Var3~Indep_Var3,data=df3)
Prediction_Model_3<-predict(Model_3,type="class")
table(Prediction_Model_3,df3$Dep_Var3)

输出


如果您将上面给出的所有代码片段作为一个程序执行,它将生成以下输出:

Prediction_Model_3 0 1
                 0 6 4
                 1 2 8

更新于:2021年11月2日

浏览量:1K+

启动您的职业生涯

完成课程后获得认证

开始
广告