如何在R中找到線性判別分析的混淆矩陣?


為了在R中找到線性判別分析的混淆矩陣,我們可以按照以下步驟操作:

  • 首先,建立一個數據框。
  • 使用線性判別分析建立新的特徵。
  • 使用table和predict函式找到線性判別分析的混淆矩陣。

建立資料框

讓我們建立一個如下所示的資料框:

 線上演示

Group<-sample(c("I","II","III","IV"),25,replace=TRUE)
Score1<-sample(1:10,25,replace=TRUE)
Score2<-sample(1:10,25,replace=TRUE)
Score3<-sample(1:10,25,replace=TRUE)
Score4<-sample(1:10,25,replace=TRUE)
df<-data.frame(Group,Score1,Score2,Score3,Score4)
df

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出將在您的系統上有所不同):

   Group Score1 Score2 Score3  Score4
1    IV     7      5       2     5
2    III    5      3       2     4
3    III    8      9       4     7
4    IV     6      1       1     5
5    III    8      4       6     8
6    IV     9      2       1     7
7    I      3      2       3     2
8    IV     5      8       3     3
9    II     7      4       4     1
10   IV     5      4       1     10
11   II     3      1       2     4
12   III    3      2       1     7
13   IV     1      4       7     6
14   III    10     8       9     2
15   II     3      7       8     1
16   I      9      2       3     1
17   III    2      7       3     2
18   IV     7      7       1     7
19   IV     2      6       1     3
20   I      4      10      6     1
21   I      1      6       4     4
22   I      6      3       6     2
23  III     6      6       3     5
24   I      2      3       10    10
25   II     4      4       2      5

使用線性判別分析建立新的特徵

使用MASS包的lda函式為資料框df中的資料查詢新特徵:

 線上演示

Group<-sample(c("I","II","III","IV"),25,replace=TRUE)
Score1<-sample(1:10,25,replace=TRUE)
Score2<-sample(1:10,25,replace=TRUE)
Score3<-sample(1:10,25,replace=TRUE)
Score4<-sample(1:10,25,replace=TRUE)
df<-data.frame(Group,Score1,Score2,Score3,Score4)
library(MASS)
LDA_df=lda(Group~.,data=df)
LDA_df

輸出

Call:
lda(Group ~ ., data = df)
Prior probabilities of groups:
  I    II  III   IV
0.24 0.16 0.28 0.32

Group means:
   Score1    Score2   Score3  Score4
I   4.166667 4.333333 5.333333 3.333333
II  4.250000 4.000000 4.000000 2.750000
III 6.000000 5.571429 4.000000 5.000000
IV  5.250000 4.625000 2.125000 5.750000

Coefficients of linear discriminants:
            LD1       LD2       LD3
Score1 0.1358158 0.18645755 -0.18790651
Score2 0.2598956 0.15492088 -0.07433529
Score3 -0.3052648 0.25571648 0.14567716
Score4 0.3117567 0.08656138 0.25216169

Proportion of trace:
  LD1    LD2    LD3
0.8681 0.1161 0.0159

查詢混淆矩陣

使用table和predict函式建立上面執行的線性判別分析的混淆矩陣,如下所示:

 線上演示

Group<-sample(c("I","II","III","IV"),25,replace=TRUE)
Score1<-sample(1:10,25,replace=TRUE)
Score2<-sample(1:10,25,replace=TRUE)
Score3<-sample(1:10,25,replace=TRUE)
Score4<-sample(1:10,25,replace=TRUE)
df<-data.frame(Group,Score1,Score2,Score3,Score4)
library(MASS)
LDA_df=lda(Group~.,data=df)
table(predict(LDA_df,type="class")$class,df$Group)

輸出

    I   II III IV
I   3    2   1  1
II  2    1   0  0
III 1    0   3  1
IV  0    1   3  6

更新於:2021年8月13日

1K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.