00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MARSYAS_SVMCLASSIFIER_H
00020 #define MARSYAS_SVMCLASSIFIER_H
00021
00022 #include "MarSystem.h"
00023 #include "svm.h"
00024 #include "WekaData.h"
00025
00026 namespace Marsyas
00027 {
00035 class SVMClassifier: public MarSystem
00036 {
00037 private:
00038 MarControlPtr ctrl_sv_coef_ ;
00039 MarControlPtr ctrl_SV_ ;
00040 MarControlPtr ctrl_rho_ ;
00041 MarControlPtr ctrl_probA_ ;
00042 MarControlPtr ctrl_probB_ ;
00043 MarControlPtr ctrl_label_ ;
00044 MarControlPtr ctrl_nSV_ ;
00045 MarControlPtr ctrl_nr_class_ ;
00046 MarControlPtr ctrl_weight_;
00047 MarControlPtr ctrl_weight_label_;
00048 MarControlPtr ctrl_minimums_;
00049 MarControlPtr ctrl_maximums_;
00050 MarControlPtr ctrl_mode_;
00051 MarControlPtr ctrl_nClasses_;
00052 MarControlPtr ctrl_l_;
00053 MarControlPtr ctrl_svm_;
00054 MarControlPtr ctrl_kernel_;
00055 MarControlPtr ctrl_degree_;
00056 MarControlPtr ctrl_gamma_;
00057 MarControlPtr ctrl_coef0_;
00058 MarControlPtr ctrl_nu_;
00059 MarControlPtr ctrl_cache_size_;
00060 MarControlPtr ctrl_C_;
00061 MarControlPtr ctrl_eps_;
00062 MarControlPtr ctrl_p_;
00063 MarControlPtr ctrl_shrinking_;
00064 MarControlPtr ctrl_probability_;
00065 MarControlPtr ctrl_nr_weight_;
00066 MarControlPtr ctrl_classPerms_;
00067
00068 std::vector<int> classPerms_;
00069
00070
00071 void addControls();
00072 void myUpdate(MarControlPtr sender);
00073
00074 WekaData instances_;
00075 struct svm_problem svm_prob_;
00076 struct svm_parameter svm_param_;
00077 struct svm_model *svm_model_;
00078 mrs_bool trained_, training_, was_training_;
00079 mrs_natural kernel_, svm_;
00080
00081
00082 mrs_natural num_nodes;
00083
00084 public:
00085 SVMClassifier(std::string name);
00086 SVMClassifier(const SVMClassifier& a);
00087 ~SVMClassifier();
00088 MarSystem* clone() const;
00089
00090 void myProcess(realvec& in, realvec& out);
00091 };
00092
00093 }
00094
00095 #endif