genericGPModelSelection.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef _NICE_OBJREC_GENERICGPMODELSELECTION_INCLUDE
  2. #define _NICE_OBJREC_GENERICGPMODELSELECTION_INCLUDE
  3. #include <vector>
  4. #include <string>
  5. #include "GPMSCLooEstimates.h"
  6. namespace OBJREC {
  7. class GenericGPModelSelection
  8. {
  9. public:
  10. static GPMSCLooLikelihoodRegression *selectModelSel ( const NICE::Config *conf, std::string modelselcrit_s )
  11. {
  12. GPMSCLooLikelihoodRegression *modelselcrit = NULL;
  13. if ( modelselcrit_s == "loo_pred_prob_weighted" ) {
  14. modelselcrit = new GPMSCLooLikelihoodRegression ( true );
  15. } else if ( modelselcrit_s == "loo_pred_prob" ) {
  16. modelselcrit = new GPMSCLooLikelihoodRegression ( false );
  17. } else if ( modelselcrit_s == "loo_pred_squash_opt" ) {
  18. modelselcrit = new GPMSCLooLikelihoodClassification ( );
  19. } else if ( modelselcrit_s == "loo_pred_squash" ) {
  20. modelselcrit = new GPMSCLooLikelihoodClassificationFixed ( );
  21. } else if ( modelselcrit_s == "loo_recognition_rate" ) {
  22. modelselcrit = new GPMSCLooVarious ( GPMSCLooVarious::P_RECOGNITIONRATE );
  23. } else if ( modelselcrit_s == "loo_auc" ) {
  24. modelselcrit = new GPMSCLooVarious ( GPMSCLooVarious::P_AUC );
  25. } else if ( modelselcrit_s == "loo_avgprec" ) {
  26. modelselcrit = new GPMSCLooVarious ( GPMSCLooVarious::P_AVGPREC );
  27. } else {
  28. fthrow ( Exception, "Model selection criterion unknown " << modelselcrit_s << " not (yet) supported." << std::endl <<
  29. "(genericGPModelSelection.h contains a list of classifiers to choose from)");
  30. }
  31. return modelselcrit;
  32. }
  33. };
  34. }
  35. #endif