Syntax error How to find the confusion matrix for linear discriminant analysis in R?

How to find the confusion matrix for linear discriminant analysis in R?



To find the confusion matrix for linear discriminant analysis in R, we can follow the below steps −

  • First of all, create a data frame.
  • Create new features using linear discriminant analysis.
  • Find the confusion matrix for linear discriminant analysis using table and predict function.

Create the data frame

Let's create a data frame as shown below −

 Live Demo

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

On executing, the above script generates the below output(this output will vary on your system due to randomization) −

   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

Create new features using linear discriminant analysis

Use lda function of MASS package to find the new features for data in data frame df −

 Live Demo

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

Output

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

Find the confusion matrix

Create the confusion matrix for linear discriminant analysis performed above by using table and predict function as shown below −

 Live Demo

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)

Output

    I   II III IV
I   3    2   1  1
II  2    1   0  0
III 1    0   3  1
IV  0    1   3  6
Updated on: 2021-08-13T15:43:34+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements