00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef LIBSVMMODELH
00027 #define LIBSVMMODELH
00028
00029 #ifndef SVRMODEL
00030 #include <BALL/QSAR/svrModel.h>
00031 #endif
00032
00033 #include <fstream>
00034 #include <svm.h>
00035
00036
00037 namespace BALL
00038 {
00039 namespace QSAR
00040 {
00041 class BALL_EXPORT LibsvmModel : public SVRModel
00042 {
00043 public:
00047 LibsvmModel(const QSARData& q, int k_type, double p1, double p2=-1);
00048
00049 virtual ~LibsvmModel();
00051
00052
00056 void train();
00057
00058
00059
00060 void setParameters(vector<double>& v);
00061
00062 virtual vector<double> getParameters() const;
00064
00065
00066 private:
00067
00068
00069 struct svm_model
00070 {
00071 svm_parameter param;
00072 int nr_class;
00073 int l;
00074 svm_node **SV;
00075 double **sv_coef;
00076 double *rho;
00077 double *probA;
00078 double *probB;
00079
00080
00081 int *label;
00082 int *nSV;
00083
00084
00085 int free_sv;
00086
00087 };
00088
00089 struct svm_problem* createProblem(int response_id);
00090
00091 void createParameters();
00092
00093 struct svm_model* svm_train_result_;
00094
00095 struct svm_parameter parameters_;
00096
00097 struct svm_node* x_space_;
00098
00100 bool use_nu_;
00101
00103 bool use_shrinking_;
00104
00105 double nu_;
00106 double p_;
00107 double eps_;
00108 double C_;
00109
00110
00111 };
00112 }
00113 }
00114
00115
00116
00117 #endif // LIBSVMMODELH