Commit 39d1c697e489535060a584351cd7f0f620b29edd

Authored by Charles Otto
1 parent 71a036f5

Fix evalClassification output

Showing 1 changed file with 7 additions and 8 deletions
openbr/core/classify.cpp
@@ -66,11 +66,12 @@ void br::EvalClassification(const QString &predictedInput, const QString &truthI @@ -66,11 +66,12 @@ void br::EvalClassification(const QString &predictedInput, const QString &truthI
66 counters[subject].falsePositive += 1.f / predictedSubjects.size(); 66 counters[subject].falsePositive += 1.f / predictedSubjects.size();
67 } 67 }
68 68
69 - QSharedPointer<Output> output(Output::make("", FileList() << "Subject" << "Count" << "Precision" << "Recall" << "F-score", FileList(counters.size()))); 69 + const QStringList keys = counters.keys();
  70 + QSharedPointer<Output> output(Output::make("", FileList() << "Count" << "Precision" << "Recall" << "F-score", FileList(keys)));
70 71
71 int tpc = 0; 72 int tpc = 0;
72 int fnc = 0; 73 int fnc = 0;
73 - const QStringList keys = counters.keys(); 74 +
74 for (int i=0; i<counters.size(); i++) { 75 for (int i=0; i<counters.size(); i++) {
75 const QString &subject = keys[i]; 76 const QString &subject = keys[i];
76 const Counter &counter = counters[subject]; 77 const Counter &counter = counters[subject];
@@ -80,12 +81,10 @@ void br::EvalClassification(const QString &amp;predictedInput, const QString &amp;truthI @@ -80,12 +81,10 @@ void br::EvalClassification(const QString &amp;predictedInput, const QString &amp;truthI
80 const float precision = counter.truePositive / (float)(counter.truePositive + counter.falsePositive); 81 const float precision = counter.truePositive / (float)(counter.truePositive + counter.falsePositive);
81 const float recall = counter.truePositive / (float)(counter.truePositive + counter.falseNegative); 82 const float recall = counter.truePositive / (float)(counter.truePositive + counter.falseNegative);
82 const float fscore = 2 * precision * recall / (precision + recall); 83 const float fscore = 2 * precision * recall / (precision + recall);
83 - // problem -cao  
84 - output->setRelative(File("", subject).get<int>("Label"), i, 0);  
85 - output->setRelative(count, i, 1);  
86 - output->setRelative(precision, i, 2);  
87 - output->setRelative(recall, i, 3);  
88 - output->setRelative(fscore, i, 4); 84 + output->setRelative(count, i, 0);
  85 + output->setRelative(precision, i, 1);
  86 + output->setRelative(recall, i, 2);
  87 + output->setRelative(fscore, i, 3);
89 } 88 }
90 89
91 qDebug("Overall Accuracy = %f", (float)tpc / (float)(tpc + fnc)); 90 qDebug("Overall Accuracy = %f", (float)tpc / (float)(tpc + fnc));