Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /