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 KMODEL
00027 #define KMODEL
00028
00029 #ifndef NLMODEL
00030 #include <BALL/QSAR/nonlinearModel.h>
00031 #endif
00032
00033 #ifndef LMODEL
00034 #include <BALL/QSAR/linearModel.h>
00035 #endif
00036
00037 #ifndef KERNEL
00038 #include <BALL/QSAR/kernel.h>
00039 #endif
00040
00041
00042
00043 namespace BALL
00044 {
00045 namespace QSAR
00046 {
00047 class BALL_EXPORT KernelModel : public NonLinearModel
00048 {
00049 public:
00053 KernelModel(const QSARData& q, int k_type, double p1, double p2);
00054
00055 KernelModel(const QSARData& q, String f, String g);
00056
00057 KernelModel(const QSARData& q, Vector<double>& w);
00058
00059 KernelModel(const QSARData& q, const LinearModel& lm, int column);
00060
00061 ~KernelModel();
00062
00063 virtual void saveToFile(string filename);
00064
00065 virtual void readFromFile(string filename);
00066
00067 virtual Vector<double> predict(const vector<double>& substance, bool transform);
00068
00069 void operator=(const Model& m);
00071
00075 Kernel* kernel;
00077
00078
00079 protected:
00080
00085 Matrix<double> K_;
00086
00088
00090
00091
00095 void calculateOffsets();
00096
00097 void readKernelParametersFromFile(std::ifstream& in);
00098 void saveKernelParametersToFile(std::ofstream& out);
00099 void saveTrainingResult(std::ofstream& out);
00100 void readTrainingResult(std::ifstream& input, int no_substances, int no_y);
00101
00102 friend class RegressionValidation;
00103
00104
00105
00106 };
00107 }
00108 }
00109
00110
00111 #endif // NLMODEL