Skip to content

Commit 13dc9af

Browse files
author
Maximilian Wenk
committed
add normalized confusion matrix
1 parent f59ec66 commit 13dc9af

File tree

2 files changed

+47
-16
lines changed

2 files changed

+47
-16
lines changed

src/classification/ClassificationOfFloatValues.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ public void evaluateResults() {
9494
this.predictedTestData,
9595
this.sortedProbability,
9696
this.numberOfClasses);
97-
evaluationObject.confusionMatrix();
97+
evaluationObject.getConfusionMatrix();
98+
evaluationObject.getConfusionMatrixNormalized();
9899
}
99100
public void confusionMatrix() {
100101
if (this.MLAlgorithm == "DistanceClassification") {

src/classification/DATA_evaluation.java

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ public class DATA_evaluation {
77
private int columnCount;
88
private int numberOfClasses;
99
private String [] testDataResults;
10-
private int[][] confustionMatrix = new int[3][3];
10+
private int[][] confustionMatrix;
11+
12+
private boolean createConfusionMatrix;
1113

1214
protected DATA_evaluation(String[] testDataResults, int columnCount, String[][][] predictedTestData, int[][] sortedProbability, int numberOfClasses) {
1315
this.testDataResults = testDataResults;
@@ -18,20 +20,7 @@ protected DATA_evaluation(String[] testDataResults, int columnCount, String[][][
1820
this.confustionMatrix = new int[this.numberOfClasses][this.numberOfClasses];
1921
}
2022

21-
protected void confusionMatrix() {
22-
23-
System.out.println(this.testDataResults[0]);
24-
System.out.println(this.columnCount);
25-
System.out.println(this.predictedTestData[0][0][0]);
26-
System.out.println(this.predictedTestData[0][0][1]);
27-
System.out.println(this.predictedTestData[0][1][0]);
28-
System.out.println(this.predictedTestData[0][1][1]);
29-
System.out.println(this.predictedTestData[0][2][0]);
30-
System.out.println(this.predictedTestData[0][2][1]);
31-
System.out.println(this.sortedProbability[0][0]);
32-
System.out.println(this.sortedProbability[0][1]);
33-
System.out.println(this.sortedProbability[0][2]);
34-
23+
private void confusionMatrix() {
3524

3625
// Resetting the confusion matrix
3726
for (int i = 0; i < this.numberOfClasses; i++) {
@@ -70,4 +59,45 @@ protected void confusionMatrix() {
7059

7160

7261
}
62+
63+
protected int[][] getConfusionMatrix() {
64+
if (!createConfusionMatrix) {
65+
confusionMatrix();
66+
}
67+
68+
return this.confustionMatrix;
69+
}
70+
protected float[][] getConfusionMatrixNormalized() {
71+
if (!createConfusionMatrix) {
72+
confusionMatrix();
73+
}
74+
float[][] confusionMatrixNormalized = new float[this.numberOfClasses][this.numberOfClasses];
75+
76+
for (int i = 0; i < this.numberOfClasses; i++) {
77+
int tempCount = 0;
78+
for (int j = 0; j < this.numberOfClasses; j++) {
79+
tempCount += this.confustionMatrix[i][j];
80+
}
81+
82+
if (tempCount == 0) {
83+
continue;
84+
}
85+
for (int j = 0; j < this.numberOfClasses; j++) {
86+
//System.out.println(this.confustionMatrix[i][j]);
87+
//System.out.println(tempCount);
88+
confusionMatrixNormalized[i][j] = (float)this.confustionMatrix[i][j] / (float)tempCount;
89+
}
90+
91+
}
92+
93+
for (int i = 0; i < this.numberOfClasses; i++) {
94+
for (int j = 0; j < this.numberOfClasses; j++) {
95+
System.out.print(confusionMatrixNormalized[i][j] + " ");
96+
}
97+
System.out.println();
98+
}
99+
100+
101+
return confusionMatrixNormalized;
102+
}
73103
}

0 commit comments

Comments
 (0)