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 Evgeniy Andreev (gsomix) 00008 */ 00009 00010 #ifndef _LABELS_FACTORY__H__ 00011 #define _LABELS_FACTORY__H__ 00012 00013 #include <shogun/base/SGObject.h> 00014 00015 namespace shogun 00016 { 00017 class SGObject; 00018 class CLabels; 00019 class CBinaryLabels; 00020 class CLatentLabels; 00021 class CMulticlassLabels; 00022 class CRegressionLabels; 00023 class CStructuredLabels; 00024 class CMulticlassMultipleOutputLabels; 00025 class CMulticlassSOLabels; 00026 00029 class CLabelsFactory : public CSGObject 00030 { 00031 public: 00036 static CBinaryLabels* to_binary(CLabels* base_labels); 00037 00042 static CLatentLabels* to_latent(CLabels* base_labels); 00043 00048 static CMulticlassLabels* to_multiclass(CLabels* base_labels); 00049 00054 static CRegressionLabels* to_regression(CLabels* base_labels); 00055 00060 static CStructuredLabels* to_structured(CLabels* base_labels); 00061 00066 static CMulticlassMultipleOutputLabels* to_multiclass_multiple_output(CLabels* base_labels); 00067 00072 static CMulticlassSOLabels* to_multiclass_structured(CLabels* base_labels); 00073 00075 virtual const char* get_name() const { return "LabelsFactory"; } 00076 }; 00077 00078 } 00079 00080 #endif /* _LABELS_FACTORY__H__ */