Confusion matrix
Contents
- Developer Er.Abbas Manthiri S
- Date 25-12-2016
- Mail Id: abbasmanthiribe@gmail.com
- Reference
- Dataschool
- Wikipedia
clc clear all close all warning off all rng('default')
Proof
disp('Running Proof....') n=100;m=4; actual=round(rand(1,n)*m); [c_matrixp,Result]= confusion.getMatrix(actual,actual); disp('Getting Values') Accuracy=Result.Accuracy Error=Result.Error Sensitivity=Result.Sensitivity Specificity=Result.Specificity Precision=Result.Precision FalsePositiveRate=Result.FalsePositiveRate F1_score=Result.F1_score MatthewsCorrelationCoefficient=Result.MatthewsCorrelationCoefficient Kappa=Result.Kappa
Running Proof....
Class List in given sample
0
1
2
3
4
Total Instance = 100
class1==>0
class2==>1
class3==>2
class4==>3
class5==>4
Confusion Matrix
predict_class1 predict_class2 predict_class3
______________ ______________ ______________
Actual_class1 10 0 0
Actual_class2 0 25 0
Actual_class3 0 0 21
Actual_class4 0 0 0
Actual_class5 0 0 0
predict_class4 predict_class5
______________ ______________
Actual_class1 0 0
Actual_class2 0 0
Actual_class3 0 0
Actual_class4 28 0
Actual_class5 0 16
Multi-Class Confusion Matrix Output
TruePositive FalsePositive FalseNegative
____________ _____________ _____________
Actual_class1 10 0 0
Actual_class2 25 0 0
Actual_class3 21 0 0
Actual_class4 28 0 0
Actual_class5 16 0 0
TrueNegative
____________
Actual_class1 90
Actual_class2 75
Actual_class3 79
Actual_class4 72
Actual_class5 84
AccuracyOfSingle ErrorOfSingle AccuracyInTotal ErrorInTotal
________________ _____________ _______________ ____________
1 0 0.1 0
1 0 0.25 0
1 0 0.21 0
1 0 0.28 0
1 0 0.16 0
Sensitivity Specificity Precision FalsePositiveRate F1_score
___________ ___________ _________ _________________ ________
1 1 1 0 1
1 1 1 0 1
1 1 1 0 1
1 1 1 0 1
1 1 1 0 1
MatthewsCorrelationCoefficient Kappa TruePositive FalsePositive
______________________________ _____ ____________ _____________
1 0.8 10 0
1 0.5 25 0
1 0.58 21 0
1 0.44 28 0
1 0.68 16 0
FalseNegative TrueNegative Class
_____________ ____________ ____________
0 90 'class1==>0'
0 75 'class2==>1'
0 79 'class3==>2'
0 72 'class4==>3'
0 84 'class5==>4'
Over all valuses
Accuracy: 1
Error: 1
Sensitivity: 1
Specificity: 1
Precision: 1
FalsePositiveRate: 0
F1_score: 1
MatthewsCorrelationCoefficient: 1
Kappa: 1
Getting Values
Accuracy =
1
Error =
1
Sensitivity =
1
Specificity =
1
Precision =
1
FalsePositiveRate =
0
F1_score =
1
MatthewsCorrelationCoefficient =
1
Kappa =
1
Multiclass demo
disp('_____________Multiclass demo_______________') disp('Runing Multiclass confusionmat') n=100;m=2; actual=round(rand(1,n)*m); predict=round(rand(1,n)*m); [c_matrix,Result,RefereceResult]= confusion.getMatrix(actual,predict); % % %DIsplay off % % [c_matrix,Result,RefereceResult]= confusionmat(actual,predict,0)
_____________Multiclass demo_______________
Runing Multiclass confusionmat
Class List in given sample
0
1
2
Total Instance = 100
class1==>0
class2==>1
class3==>2
Confusion Matrix
predict_class1 predict_class2 predict_class3
______________ ______________ ______________
Actual_class1 6 20 5
Actual_class2 9 23 13
Actual_class3 9 11 4
Multi-Class Confusion Matrix Output
TruePositive FalsePositive FalseNegative
____________ _____________ _____________
Actual_class1 6 18 25
Actual_class2 23 31 22
Actual_class3 4 18 20
TrueNegative
____________
Actual_class1 51
Actual_class2 24
Actual_class3 58
AccuracyOfSingle ErrorOfSingle AccuracyInTotal ErrorInTotal
________________ _____________ _______________ ____________
0.19355 0.80645 0.06 0.18
0.51111 0.48889 0.23 0.31
0.16667 0.83333 0.04 0.18
Sensitivity Specificity Precision FalsePositiveRate F1_score
___________ ___________ _________ _________________ ________
0.19355 0.73913 0.25 0.26087 0.21818
0.51111 0.43636 0.42593 0.56364 0.46465
0.16667 0.76316 0.18182 0.23684 0.17391
MatthewsCorrelationCoefficient Kappa TruePositive FalsePositive
______________________________ _______ ____________ _____________
0.072903 0.57319 6 18
0.05243 0.34545 23 31
0.07235 0.63083 4 18
FalseNegative TrueNegative Class
_____________ ____________ ____________
25 51 'class1==>0'
22 24 'class2==>1'
20 58 'class3==>2'
Over all valuses
Accuracy: 0.3300
Error: 0.3300
Sensitivity: 0.2904
Specificity: 0.6462
Precision: 0.2859
FalsePositiveRate: 0.3538
F1_score: 0.2856
MatthewsCorrelationCoefficient: 0.0659
Kappa: 0.3367
Two Class demo
disp('____________Two Class demo________________') disp('Running Simple Confusionmat...') n=100;m=1; actual=round(rand(1,n)*m); predict=round(rand(1,n)*m); % [c_matrix,Result]= confusionmat(actual,predict) [c_matrix,Result]= confusion.getMatrix(actual,predict);
____________Two Class demo________________
Running Simple Confusionmat...
Class List in given sample
0
1
Total Instance = 100
class1==>0
class2==>1
Confusion Matrix
predict_class1 predict_class2
______________ ______________
Actual_class1 26 28
Actual_class2 24 22
Two-Class Confution Matrix
'' 'TruePositive' 'FalsePositive'
'FalseNegative' [ 26] [ 28]
'TrueNegative=TN' [ 24] [ 22]
Over all valuses
Accuracy: 0.4800
Error: 0.5200
Sensitivity: 0.4815
Specificity: 0.4783
Precision: 0.5200
FalsePositiveRate: 0.5217
F1_score: 0.5000
MatthewsCorrelationCoefficient: 0.0401
Kappa: 0.0385
Get Calculation using confusion matrix
disp('____________Get Calculation using confusion matrix________________') n=5; c_matrix=randi([20,40],[n,n]); disp('confusion matrix generated') disp(c_matrix) disp('Running Calcualtion...') [Result,RefereceResult]=confusion.getValues(c_matrix); disp(Result) disp(RefereceResult)
____________Get Calculation using confusion matrix________________
confusion matrix generated
32 22 31 40 28
31 39 33 24 29
38 33 31 22 27
25 30 35 22 36
26 33 30 21 33
Running Calcualtion...
Accuracy: 0.2091
Error: 0.2091
Sensitivity: 0.2088
Specificity: 0.8022
Precision: 0.2078
FalsePositiveRate: 0.1978
F1_score: 0.2080
MatthewsCorrelationCoefficient: 0.0265
Kappa: 0.5954
AccuracyOfSingle: [5x1 double]
ErrorOfSingle: [5x1 double]
AccuracyInTotal: [5x1 double]
ErrorInTotal: [5x1 double]
Sensitivity: [5x1 double]
Specificity: [5x1 double]
Precision: [5x1 double]
FalsePositiveRate: [5x1 double]
F1_score: [5x1 double]
MatthewsCorrelationCoefficient: [5x1 double]
Kappa: [5x1 double]
TruePositive: [5x1 double]
FalsePositive: [5x1 double]
FalseNegative: [5x1 double]
TrueNegative: [5x1 double]