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 KPLSMODEL
00027 #define KPLSMODEL
00028
00029 #ifndef KMODEL
00030 #include <BALL/QSAR/kernelModel.h>
00031 #endif
00032
00033 #ifndef NLMODEL
00034 #include <BALL/QSAR/nonlinearModel.h>
00035 #endif
00036
00037 #include <BALL/QSAR/latentVariableModel.h>
00038
00039 namespace BALL
00040 {
00041 namespace QSAR
00042 {
00044 class BALL_EXPORT KPLSModel : public KernelModel, public LatentVariableModel
00045 {
00046 public:
00050 KPLSModel(const QSARData& q, int k_type, double p1, double p2=-1);
00051
00052 KPLSModel(const QSARData& q, Vector<double>& w);
00053
00054 KPLSModel(const QSARData& q, String s1, String s2);
00055
00056 KPLSModel(const QSARData& q, const LinearModel& lm, int column);
00057
00058 ~KPLSModel();
00060
00061
00065
00066 void train();
00067
00069 bool optimizeParameters(int k, int no_steps);
00070
00072 int getNoComponents();
00073
00074 void setNoComponents(int d);
00075
00077 const Matrix<double>* getU();
00078
00079 void setParameters(vector<double>& v);
00080
00081 vector<double> getParameters() const;
00083
00084
00085 protected:
00088 Matrix<double> U_;
00089
00090 int no_components_;
00092
00093 };
00094 }
00095 }
00096
00097 #endif // KPLSMODEL