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

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

例如,如果我们有一个预测值向量,比如数据帧 df$O 中的 P 和原始值,那么可以使用以下命令创建混淆矩阵 -

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