SHOGUN
v3.2.0
|
00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 2013 Roman Votyakov 00008 */ 00009 00010 #ifndef _GAUSSIANPROCESSBINARYCLASSIFICATION_H_ 00011 #define _GAUSSIANPROCESSBINARYCLASSIFICATION_H_ 00012 00013 #include <shogun/lib/config.h> 00014 00015 #ifdef HAVE_EIGEN3 00016 00017 #include <shogun/machine/GaussianProcessMachine.h> 00018 00019 namespace shogun 00020 { 00021 00025 class CGaussianProcessBinaryClassification : public CGaussianProcessMachine 00026 { 00027 public: 00029 MACHINE_PROBLEM_TYPE(PT_BINARY); 00030 00032 CGaussianProcessBinaryClassification(); 00033 00038 CGaussianProcessBinaryClassification(CInferenceMethod* method); 00039 00040 virtual ~CGaussianProcessBinaryClassification(); 00041 00048 virtual CBinaryLabels* apply_binary(CFeatures* data=NULL); 00049 00056 SGVector<float64_t> get_mean_vector(CFeatures* data); 00057 00064 SGVector<float64_t> get_variance_vector(CFeatures* data); 00065 00072 SGVector<float64_t> get_probabilities(CFeatures* data); 00073 00078 virtual EMachineType get_classifier_type() 00079 { 00080 return CT_GAUSSIANPROCESSBINARY; 00081 } 00082 00087 virtual const char* get_name() const 00088 { 00089 return "GaussianProcessBinaryClassification"; 00090 } 00091 00092 protected: 00099 virtual bool train_machine(CFeatures* data=NULL); 00100 00107 virtual bool is_label_valid(CLabels *lab) const 00108 { 00109 return (lab->get_label_type()==LT_BINARY); 00110 } 00111 }; 00112 } 00113 #endif /* HAVE_EIGEN3 */ 00114 #endif /* _GAUSSIANPROCESSCLASSIFICATION_H_ */