genericGPModelSelection.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. {
  8. class GenericGPModelSelection
  9. {
  10. public:
  11. static GPMSCLooLikelihoodRegression *selectModelSel ( const NICE::Config *conf, std::string modelselcrit_s )
  12. {
  13. GPMSCLooLikelihoodRegression *modelselcrit = NULL;
  14. if ( modelselcrit_s == "loo_pred_prob_weighted" )
  15. {
  16. modelselcrit = new GPMSCLooLikelihoodRegression ( true );
  17. }
  18. else if ( modelselcrit_s == "loo_pred_prob" )
  19. {
  20. modelselcrit = new GPMSCLooLikelihoodRegression ( false );
  21. }
  22. else if ( modelselcrit_s == "loo_pred_squash_opt" )
  23. {
  24. modelselcrit = new GPMSCLooLikelihoodClassification ( );
  25. }
  26. else if ( modelselcrit_s == "loo_pred_squash" )
  27. {
  28. modelselcrit = new GPMSCLooLikelihoodClassificationFixed ( );
  29. }
  30. else if ( modelselcrit_s == "loo_recognition_rate" )
  31. {
  32. modelselcrit = new GPMSCLooVarious ( GPMSCLooVarious::P_RECOGNITIONRATE );
  33. }
  34. else if ( modelselcrit_s == "loo_auc" )
  35. {
  36. modelselcrit = new GPMSCLooVarious ( GPMSCLooVarious::P_AUC );
  37. }
  38. else if ( modelselcrit_s == "loo_avgprec" )
  39. {
  40. modelselcrit = new GPMSCLooVarious ( GPMSCLooVarious::P_AVGPREC );
  41. }
  42. else
  43. {
  44. fthrow ( NICE::Exception, "Model selection criterion unknown " << modelselcrit_s << " not (yet) supported." << std::endl <<
  45. "(genericGPModelSelection.h contains a list of classifiers to choose from)" );
  46. }
  47. return modelselcrit;
  48. }
  49. };
  50. }
  51. #endif