BALL 1.5.0
Loading...
Searching...
No Matches
BALL::QSAR::KernelModel Class Reference

#include <BALL/QSAR/kernelModel.h>

Inheritance diagram for BALL::QSAR::KernelModel:
BALL::QSAR::NonLinearModel BALL::QSAR::RegressionModel BALL::QSAR::Model BALL::QSAR::GPModel BALL::QSAR::KPCRModel BALL::QSAR::KPLSModel BALL::QSAR::SVRModel BALL::QSAR::LibsvmModel

Public Member Functions

Constructors and Destructors
 KernelModel (const QSARData &q, int k_type, double p1, double p2)
 KernelModel (const QSARData &q, String f, String g)
 KernelModel (const QSARData &q, Eigen::VectorXd &w)
 KernelModel (const QSARData &q, const LinearModel &lm, int column)
 ~KernelModel ()
virtual void saveToFile (string filename)
virtual void readFromFile (string filename)
virtual Eigen::VectorXd predict (const vector< double > &substance, bool transform)
void operator= (const Model &m)
 NonLinearModel (const QSARData &q)
 ~NonLinearModel ()
Public Member Functions inherited from BALL::QSAR::RegressionModel
 RegressionModel (const QSARData &q)
 ~RegressionModel ()
virtual EIGEN_MAKE_ALIGNED_OPERATOR_NEW void operator= (const RegressionModel &m)
const Eigen::MatrixXd * getTrainingResult () const
void show ()
Public Member Functions inherited from BALL::QSAR::Model
 Model (const QSARData &q)
virtual ~Model ()
void copyData (const Model &m)
void copyDescriptorIDs (const Model &m)
void readTrainingData ()
void deleteDescriptorIDs ()
virtual void train ()=0
virtual bool optimizeParameters (int, int)
bool optimizeParameters (int k)
virtual double calculateStdErr ()
virtual void setParameters (vector< double > &)
virtual vector< doublegetParameters () const
std::multiset< unsigned int > * getDescriptorIDs ()
void setDataSource (const QSARData *q)
const Eigen::MatrixXd * getDescriptorMatrix ()
const vector< string > * getSubstanceNames ()
const vector< string > * getDescriptorNames ()
const Eigen::MatrixXd getDescriptorTransformations ()
const Eigen::MatrixXd getYTransformations ()
const Eigen::MatrixXd * getY ()
void setDescriptorIDs (const std::multiset< unsigned int > &sl)
const stringgetType ()
void getUnnormalizedFeatureValue (int compound, int feature, double &return_value)
void getUnnormalizedResponseValue (int compound, int response, double &return_value)

Attributes

Kernelkernel
Eigen::MatrixXd K_

Input and Output. The following methods can be used to implement the functions saveToFile() and readFromFile() in final classes derived from this base-class

resulting matrix with one column for each modeled activity and with one coefficient for each substance (i.e. one column for each column for Model.Y)

class RegressionValidation
void calculateOffsets ()
void readKernelParametersFromFile (std::ifstream &in)
void saveKernelParametersToFile (std::ofstream &out)
void saveTrainingResult (std::ofstream &out)
void readTrainingResult (std::ifstream &input, int no_substances, int no_y)

Additional Inherited Members

RegressionValidationvalidation
const QSARDatadata
Validationmodel_val
void readDescriptorInformationFromFile (std::ifstream &in, int no_descriptors, bool transformation, int no_coefficients)
void saveDescriptorInformationToFile (std::ofstream &out)
Protected Member Functions inherited from BALL::QSAR::Model
void readMatrix (Eigen::MatrixXd &mat, std::ifstream &in, unsigned int lines, unsigned int col)
void readVector (Eigen::RowVectorXd &vec, std::ifstream &in, unsigned int no_cells, bool column_vector)
void readModelParametersFromFile (std::ifstream &in)
void saveModelParametersToFile (std::ofstream &out)
virtual void readDescriptorInformationFromFile (std::ifstream &in, int no_descriptors, bool transformation)
void readResponseTransformationFromFile (std::ifstream &in, int no_y)
void saveResponseTransformationToFile (std::ofstream &out)
Eigen::VectorXd getSubstanceVector (const vector< double > &substance, bool transform)
Eigen::VectorXd getSubstanceVector (const Eigen::VectorXd &substance, bool transform)
void backTransformPrediction (Eigen::VectorXd &pred)
void addLambda (Eigen::MatrixXd &matrix, double &lambda)
void readDescriptorInformation ()
Protected Attributes inherited from BALL::QSAR::RegressionModel
Eigen::MatrixXd training_result_
Eigen::RowVectorXd offsets_
int default_no_opt_steps_
Eigen::MatrixXd descriptor_matrix_
vector< stringsubstance_names_
vector< stringdescriptor_names_
Eigen::MatrixXd descriptor_transformations_
Eigen::MatrixXd y_transformations_
Eigen::MatrixXd Y_
String type_
std::multiset< unsigned int > descriptor_IDs_

Detailed Description

Definition at line 27 of file kernelModel.h.

Constructor & Destructor Documentation

◆ KernelModel() [1/4]

BALL::QSAR::KernelModel::KernelModel ( const QSARData & q,
int k_type,
double p1,
double p2 )

◆ KernelModel() [2/4]

BALL::QSAR::KernelModel::KernelModel ( const QSARData & q,
String f,
String g )

◆ KernelModel() [3/4]

BALL::QSAR::KernelModel::KernelModel ( const QSARData & q,
Eigen::VectorXd & w )

◆ KernelModel() [4/4]

BALL::QSAR::KernelModel::KernelModel ( const QSARData & q,
const LinearModel & lm,
int column )

◆ ~KernelModel()

BALL::QSAR::KernelModel::~KernelModel ( )

Member Function Documentation

◆ calculateOffsets()

void BALL::QSAR::KernelModel::calculateOffsets ( )
protectedvirtual

do nothing for non-kernel models. KernelModel on the other hand overloads this function...

Reimplemented from BALL::QSAR::NonLinearModel.

◆ operator=()

void BALL::QSAR::KernelModel::operator= ( const Model & m)
virtual

copy constructur; creates a model with the same specifications as the given one (same model and kernel parameters). If the given model has been trained, the training result is copied as well.
Note, that the input data that has been read by m to m.descriptor_matrix_ and m.Y_ is NOT copied to new model, since the input data is not part of the specification of a model. If nevertheless, copying of the input data is desired, use function copyData() (afterwards).

Reimplemented from BALL::QSAR::Model.

◆ predict()

virtual Eigen::VectorXd BALL::QSAR::KernelModel::predict ( const vector< double > & substance,
bool transform )
virtual

Predicts the activities of a given substance

Parameters
substancethe substance which activity is to be predicted in form of a vecor containing the values for all descriptors (if neccessary, relevant descriptors will be selected automatically)
transformdetermines whether the values for each descriptor of the given substance should be transformed before prediction of activity.
If (transform==1): each descriptor value is transformed according to the centering of the respective column of QSARData.descriptor_matrix used to train this model.
If the substance to be predicted is part of the same input data (e.g. same SD-file) as the training data (as is the case during cross validation), transform should therefore be set to 0.
Returns
a RowVector containing one value for each predicted activity

Implements BALL::QSAR::Model.

Reimplemented in BALL::QSAR::GPModel.

◆ readFromFile()

virtual void BALL::QSAR::KernelModel::readFromFile ( string filename)
virtual

reconstruct a saved Model from a file

Reimplemented from BALL::QSAR::RegressionModel.

◆ readKernelParametersFromFile()

void BALL::QSAR::KernelModel::readKernelParametersFromFile ( std::ifstream & in)
protected

◆ readTrainingResult()

void BALL::QSAR::KernelModel::readTrainingResult ( std::ifstream & input,
int no_substances,
int no_y )
protected

◆ saveKernelParametersToFile()

void BALL::QSAR::KernelModel::saveKernelParametersToFile ( std::ofstream & out)
protected

◆ saveToFile()

virtual void BALL::QSAR::KernelModel::saveToFile ( string filename)
virtual

save Model to a file

Reimplemented from BALL::QSAR::RegressionModel.

◆ saveTrainingResult()

void BALL::QSAR::KernelModel::saveTrainingResult ( std::ofstream & out)
protected

◆ RegressionValidation

friend class RegressionValidation
friend

Definition at line 84 of file kernelModel.h.

Member Data Documentation

◆ K_

Eigen::MatrixXd BALL::QSAR::KernelModel::K_
protected

Matrix containing the pairwise distances between all substances

Definition at line 67 of file kernelModel.h.

◆ kernel

Kernel* BALL::QSAR::KernelModel::kernel

Definition at line 57 of file kernelModel.h.