1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
#include <BALLTestConfig.h>
#include <BALL/CONCEPT/classTest.h>
#include <BALL/QSAR/QSARData.h>
#include <BALL/QSAR/pcrModel.h>
#include <BALL/QSAR/featureSelection.h>
using namespace BALL;
using namespace BALL::QSAR;
START_TEST(Regression)
PRECISION(1E-5)
QSARData data;
std::multiset<int> activities;
activities.insert(0);
data.readSDFile(BALL_TEST_DATA_PATH(QSAR_test.sdf),activities,0,0);
data.centerData(true);
PCRModel pcr(data,0.95);
double cutoff = 0.001;
CHECK(RemoveColinearFeatures)
FeatureSelection fs(pcr);
fs.setQualityIncreaseCutoff(cutoff);
double cor_threshold=0.95;
fs.removeHighlyCorrelatedFeatures(cor_threshold);
TEST_EQUAL(pcr.getDescriptorIDs()->size(),26);
pcr.validation->crossValidation(5);
double q2 = pcr.validation->getQ2();
TEST_REAL_EQUAL(q2,0.653379);
pcr.readTrainingData();
pcr.train();
RESULT
CHECK(BackwardSelection)
PCRModel pcr1(data);
pcr1 = pcr; // copy model
FeatureSelection fs(pcr1);
fs.setQualityIncreaseCutoff(cutoff);
fs.backwardSelection(5);
TEST_EQUAL(pcr1.getDescriptorIDs()->size(),20);
pcr1.validation->crossValidation(5);
double q2 = pcr1.validation->getQ2();
TEST_REAL_EQUAL(q2,0.718207);
RESULT
CHECK(StepwiseSelection)
PCRModel pcr1(data,0.95);
pcr1 = pcr; // copy model
FeatureSelection fs(pcr1);
fs.setQualityIncreaseCutoff(cutoff);
fs.stepwiseSelection(5);
TEST_EQUAL(pcr1.getDescriptorIDs()->size(),5);
pcr1.validation->crossValidation(5);
double q2 = pcr1.validation->getQ2();
TEST_REAL_EQUAL(q2,0.69725);
RESULT
CHECK(ForwardSelection)
PCRModel pcr1(data,0.95);
pcr1 = pcr; // copy model
FeatureSelection fs(pcr1);
fs.setQualityIncreaseCutoff(cutoff);
fs.forwardSelection(5);
TEST_EQUAL(pcr1.getDescriptorIDs()->size(),5);
pcr1.validation->crossValidation(5);
double q2 = pcr1.validation->getQ2();
TEST_REAL_EQUAL(q2,0.69725);
RESULT
CHECK(RemoveLowResponseCorrelation)
PCRModel pcr1(data,0.95);
pcr1 = pcr; // copy model
FeatureSelection fs(pcr1);
fs.setQualityIncreaseCutoff(cutoff);
double cor_threshold=0.15;
fs.removeLowResponseCorrelation(cor_threshold);
TEST_EQUAL(pcr1.getDescriptorIDs()->size(),25);
pcr1.validation->crossValidation(5);
double q2 = pcr1.validation->getQ2();
TEST_REAL_EQUAL(q2,0.635891);
RESULT
CHECK(TwinScan)
PCRModel pcr1(data,0.95);
pcr1 = pcr; // copy model
FeatureSelection fs(pcr1);
fs.setQualityIncreaseCutoff(cutoff);
fs.twinScan(5);
TEST_EQUAL(pcr1.getDescriptorIDs()->size(), 10);
pcr1.validation->crossValidation(5);
double q2 = pcr1.validation->getQ2();
TEST_REAL_EQUAL(q2, 0.672368);
RESULT
END_TEST
|