From ecc8a003bf0008f0fb5452cf73016c64303b3841 Mon Sep 17 00:00:00 2001 From: Ludovic Hussonnois <ludovic.hussonnois@c-s.fr> Date: Mon, 13 Mar 2017 14:35:09 +0100 Subject: [PATCH] ENH: Compute and write contingency table. --- .../app/otbTrainVectorClassifier.cxx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx b/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx index 6be1137700..0dbd9d2a55 100644 --- a/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx +++ b/Modules/Applications/AppClassification/app/otbTrainVectorClassifier.cxx @@ -18,6 +18,7 @@ // Validation #include "otbConfusionMatrixCalculator.h" +#include "otbContingencyTableCalculator.h" namespace otb { @@ -81,11 +82,27 @@ private: } else { - // TODO Compute Contingency Table + WriteContingencyTable(); } } + void WriteContingencyTable() + { + // Compute contingency table + typedef ContingencyTableCalculator<ClassLabelType> ContigencyTableCalcutaltorType; + ContigencyTableCalcutaltorType::Pointer contingencyTableCalculator = ContigencyTableCalcutaltorType::New(); + contingencyTableCalculator->Compute(predictedList->Begin(), predictedList->End(), + classificationListSamples.labeledListSample->Begin(), + classificationListSamples.labeledListSample->End()); + ContingencyTable<ClassLabelType> contingencyTable = contingencyTableCalculator->GetContingencyTable(); + + // Write contingency table + std::ofstream outFile; + outFile.open( this->GetParameterString( "io.confmatout" ).c_str() ); + outFile << contingencyTable.to_csv(); + } + ConfusionMatrixCalculatorType::Pointer ComputeConfusionMatrix(const TargetListSampleType::Pointer &predictedListSample, -- GitLab