如何在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+

啟動您的職業生涯

完成課程後獲得認證

開始
廣告