25 UINT Regressifier::numRegressifierInstances = 0;
29 StringRegressifierMap::iterator iter = getMap()->find( regressifierType );
30 if( iter == getMap()->end() ){
33 return iter->second();
44 if( newInstance == NULL )
return NULL;
54 baseType = MLBase::REGRESSIFIER;
55 regressifierType =
"NOT_SET";
56 numOutputDimensions = 0;
57 numRegressifierInstances++;
61 if( --numRegressifierInstances == 0 ){
62 delete stringRegressifierMap;
63 stringRegressifierMap = NULL;
69 if( regressifier == NULL ){
70 errorLog <<
"copyBaseVariables(Regressifier *regressifier) - regressifier pointer is NULL!" << endl;
78 this->regressifierType = regressifier->regressifierType;
79 this->regressionData = regressifier->regressionData;
80 this->inputVectorRanges = regressifier->inputVectorRanges;
81 this->targetVectorRanges = regressifier->targetVectorRanges;
91 rootMeanSquaredTrainingError = 0;
92 totalSquaredTrainingError = 0;
102 rootMeanSquaredTrainingError = 0;
103 totalSquaredTrainingError = 0;
104 regressionData.clear();
105 inputVectorRanges.clear();
106 targetVectorRanges.clear();
112 return regressifierType;
117 return regressionData;
119 return VectorDouble();
123 return inputVectorRanges;
127 return targetVectorRanges;
137 if( !file.is_open() ){
138 errorLog <<
"saveBaseSettingsToFile(fstream &file) - The file is not open!" << endl;
146 file <<
"InputVectorRanges: \n";
147 for(UINT j=0; j<numInputDimensions; j++){
148 file << inputVectorRanges[j].minValue <<
"\t" << inputVectorRanges[j].maxValue << endl;
151 file <<
"OutputVectorRanges: \n";
152 for(UINT j=0; j<numOutputDimensions; j++){
153 file << targetVectorRanges[j].minValue <<
"\t" << targetVectorRanges[j].maxValue << endl;
163 if( !file.is_open() ){
164 errorLog <<
"loadBaseSettingsFromFile(fstream &file) - The file is not open!" << endl;
178 if( word !=
"InputVectorRanges:" ){
179 errorLog <<
"loadBaseSettingsFromFile(fstream &file) - Failed to read InputVectorRanges header!" << endl;
182 inputVectorRanges.resize(numInputDimensions);
183 for(UINT j=0; j<numInputDimensions; j++){
184 file >> inputVectorRanges[j].minValue;
185 file >> inputVectorRanges[j].maxValue;
189 if( word !=
"OutputVectorRanges:" ){
190 errorLog <<
"loadBaseSettingsFromFile(fstream &file) - Failed to read OutputVectorRanges header!" << endl;
193 targetVectorRanges.resize(numOutputDimensions);
194 for(UINT j=0; j<numOutputDimensions; j++){
195 file >> targetVectorRanges[j].minValue;
196 file >> targetVectorRanges[j].maxValue;
202 regressionData.clear();
203 regressionData.resize(numOutputDimensions,0);
static Regressifier * createInstanceFromString(string const ®ressifierType)
bool copyBaseVariables(const Regressifier *regressifier)
vector< MinMax > getOutputRanges() const
VectorDouble getRegressionData() const
bool loadBaseSettingsFromFile(fstream &file)
bool saveBaseSettingsToFile(fstream &file) const
vector< MinMax > getInputRanges() const
virtual ~Regressifier(void)
bool copyMLBaseVariables(const MLBase *mlBase)
bool loadBaseSettingsFromFile(fstream &file)
std::map< string, Regressifier *(*)() > StringRegressifierMap
bool saveBaseSettingsToFile(fstream &file) const
Regressifier * createNewInstance() const
Regressifier * deepCopy() const
string getRegressifierType() const
const Regressifier & getBaseRegressifier() const
virtual bool deepCopyFrom(const Regressifier *regressifier)
This is the main base class that all GRT Regression algorithms should inherit from.