Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _DIRECTORKERNELMACHINE_H___
00011 #define _DIRECTORKERNELMACHINE_H___
00012
00013 #ifdef USE_SWIG_DIRECTORS
00014 #include <shogun/lib/common.h>
00015 #include <shogun/lib/DataType.h>
00016 #include <shogun/machine/Machine.h>
00017 #include <shogun/machine/KernelMachine.h>
00018
00019 namespace shogun
00020 {
00021
00022 #define IGNORE_IN_CLASSLIST
00023 IGNORE_IN_CLASSLIST class CDirectorKernelMachine : public CKernelMachine
00024 {
00025 public:
00026
00027 CDirectorKernelMachine()
00028 : CKernelMachine()
00029 {
00030
00031 }
00032
00041 CDirectorKernelMachine(CKernel* k, const SGVector<float64_t> alphas, const SGVector<int32_t> svs, float64_t b)
00042 : CKernelMachine(k, alphas, svs, b)
00043 {
00044 }
00045
00046
00047 virtual ~CDirectorKernelMachine()
00048 {
00049
00050 }
00051
00061 virtual bool train(CFeatures* data=NULL)
00062 {
00063 return CKernelMachine::train(data);
00064 }
00065
00066 virtual bool train_function(CFeatures* data=NULL)
00067 {
00068 SG_ERROR("Train function of Director Kernel Machine needs to be overridden.\n");
00069 return false;
00070 }
00071
00078 virtual CLabels* apply(CFeatures* data=NULL)
00079 {
00080 return CKernelMachine::apply(data);
00081 }
00082
00084 virtual CBinaryLabels* apply_binary(CFeatures* data=NULL)
00085 {
00086 return CKernelMachine::apply_binary(data);
00087 }
00088
00090 virtual CRegressionLabels* apply_regression(CFeatures* data=NULL)
00091 {
00092 return CKernelMachine::apply_regression(data);
00093 }
00094
00096 using CKernelMachine::apply_multiclass;
00097
00103 virtual float64_t apply_one(int32_t num)
00104 {
00105 return CKernelMachine::apply_one(num);
00106 }
00107
00112 virtual void set_labels(CLabels* lab)
00113 {
00114 CKernelMachine::set_labels(lab);
00115 }
00116
00121 virtual CLabels* get_labels()
00122 {
00123 return CKernelMachine::get_labels();
00124 }
00125
00130 virtual EMachineType get_classifier_type() { return CT_DIRECTORKERNEL; }
00131
00137 virtual void set_store_model_features(bool store_model)
00138 {
00139 CKernelMachine::set_store_model_features(store_model);
00140 }
00141
00150 virtual bool train_locked(SGVector<index_t> indices)
00151 {
00152 return CKernelMachine::train_locked(indices);
00153 }
00154
00160 virtual CLabels* apply_locked(SGVector<index_t> indices)
00161 {
00162 return CKernelMachine::apply_locked(indices);
00163 }
00164
00165 virtual CBinaryLabels* apply_locked_binary(SGVector<index_t> indices)
00166 {
00167 return CKernelMachine::apply_locked_binary(indices);
00168 }
00169
00170 virtual CRegressionLabels* apply_locked_regression(
00171 SGVector<index_t> indices)
00172 {
00173 return CKernelMachine::apply_locked_regression(indices);
00174 }
00175
00176 using CKernelMachine::apply_locked_multiclass;
00177
00184 virtual SGVector<float64_t> apply_locked_get_output(
00185 SGVector<index_t> indices)
00186 {
00187 return CKernelMachine::apply_locked_get_output(indices);
00188 }
00189
00198 virtual void data_lock(CLabels* labs, CFeatures* features)
00199 {
00200 CKernelMachine::data_lock(labs, features);
00201 }
00202
00204 virtual void data_unlock()
00205 {
00206 CKernelMachine::data_unlock();
00207 }
00208
00210 virtual bool supports_locking() const
00211 {
00212 return CKernelMachine::supports_locking();
00213 }
00214
00215
00216 virtual EProblemType get_machine_problem_type() const
00217 {
00218 return CKernelMachine::get_machine_problem_type();
00219 }
00220
00221 virtual const char* get_name() const { return "DirectorKernelMachine"; }
00222
00223 protected:
00234 virtual bool train_machine(CFeatures* data=NULL)
00235 {
00236 return train_function(data);
00237 }
00238 };
00239
00240 }
00241
00242 #endif
00243 #endif