如何在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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP