Commit 39d1c697e489535060a584351cd7f0f620b29edd
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 &predictedInput, const QString &truthI | @@ -80,12 +81,10 @@ void br::EvalClassification(const QString &predictedInput, const QString &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)); |