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 PCRMODEL
00027 #define PCRMODEL
00028
00029 #ifndef LMODEL
00030 #include <BALL/QSAR/linearModel.h>
00031 #endif
00032
00033 #ifndef QSAR_EXCEPTION
00034 #include <BALL/QSAR/exception.h>
00035 #endif
00036
00037 #include <BALL/QSAR/rrModel.h>
00038
00039 #include <BALL/QSAR/latentVariableModel.h>
00040
00041
00042 namespace BALL
00043 {
00044 namespace QSAR
00045 {
00046 class BALL_EXPORT PCRModel : public LinearModel, public LatentVariableModel
00047 {
00048 public:
00049
00056 PCRModel(const QSARData& q, double frac_var=0.99);
00057
00058 ~PCRModel();
00060
00065 void train();
00066
00067
00069 void setFracVar(double frac_var);
00070
00071 void setParameters(vector<double>& v);
00072
00073 vector<double> getParameters() const;
00074
00077 static void calculateEigenvectors(const Matrix<double>& data, double frac_var, Matrix<double>& output);
00079
00080
00081
00082 protected:
00083
00088 double frac_var_;
00090
00091 };
00092 }
00093 }
00094
00095 #endif // PCRMODEL