/** * @file testClassifier.cpp * @brief main program for classifier evaluation * @author Erik Rodner * @date 2007-10-12 */ #include #include #include #include #include #include #include "vislearning/classifier/classifierbase/FeaturePoolClassifier.h" #include #include #include "core/basics/Config.h" #include #include #undef DEBUG using namespace OBJREC; using namespace NICE; using namespace std; int main( int argc, char **argv ) { std::set_terminate( __gnu_cxx::__verbose_terminate_handler ); Config conf( argc, argv ); string fn = conf.gS( "main", "input", "train.vec" ); int format = conf.gI( "main", "format", 0 ); string outfn = conf.gS( "main", "output", "out.vec" ); int dim = conf.gI( "main", "dim", 0 ); ifstream fin( fn.c_str(), ifstream::in ); LabeledSetVector test; vector maxv( dim, numeric_limits::min() ); vector minv( dim, numeric_limits::max() ); while ( fin.good() ) { Vector tmp( dim ); for ( int i = 0; i < dim; i++ ) { fin >> tmp[i]; maxv[i] = std::max( maxv[i], tmp[i] ); minv[i] = std::min( minv[i], tmp[i] ); } int label; fin >> label; label--; if ( label > 5 ) label--; test.add( label, tmp ); } for ( int i = 0; i < dim; i++ ) { maxv[i] -= minv[i]; } for ( map< int, vector >::iterator iter = test.begin(); iter != test.end(); ++iter ) { for ( int j = 0; j < iter->second.size(); j++ ) { for ( int i = 0; i < iter->second[j]->size(); i++ ) { ( *( iter->second[j] ) )[i] = (( *( iter->second[j] ) )[i] - minv[i] ) / maxv[i]; } } } test.save( outfn ); fin.close(); return 0; }