PLearn 0.1
|
#include <UniformizeVMatrix.h>
Public Member Functions | |
UniformizeVMatrix () | |
Default constructor. | |
virtual string | classname () const |
virtual OptionList & | getOptionList () const |
virtual OptionMap & | getOptionMap () const |
virtual RemoteMethodMap & | getRemoteMethodMap () const |
virtual UniformizeVMatrix * | deepCopy (CopiesMap &copies) const |
virtual void | build () |
Simply calls inherited::build() then build_(). | |
virtual void | makeDeepCopyFromShallowCopy (CopiesMap &copies) |
Transforms a shallow copy into a deep copy. | |
Static Public Member Functions | |
static string | _classname_ () |
Declares name and deepCopy methods. | |
static OptionList & | _getOptionList_ () |
static RemoteMethodMap & | _getRemoteMethodMap_ () |
static Object * | _new_instance_for_typemap_ () |
static bool | _isa_ (const Object *o) |
static void | _static_initialize_ () |
static const PPath & | declaringFile () |
Public Attributes | |
real | max |
real | min |
int | nquantiles |
real | threshold_ratio |
VMat | train_source |
bool | uniformize_input |
bool | uniformize_target |
bool | uniformize_weight |
bool | uniformize_extra |
Static Public Attributes | |
static StaticInitializer | _static_initializer_ |
Protected Member Functions | |
virtual void | getNewRow (int i, const Vec &v) const |
Fill the vector 'v' with the content of the i-th row. | |
Static Protected Member Functions | |
static void | declareOptions (OptionList &ol) |
Declares the class options. | |
Protected Attributes | |
TVec< int > | features_to_uniformize |
List of the source's features that need to be uniformized. | |
PP< UniformizeLearner > | uniformize_learner |
The underlying learner that performs the actual normalization. | |
PP< PLearnerOutputVMatrix > | uniformized_source |
The data that this VMatrix views, i.e. | |
Private Types | |
typedef SourceVMatrix | inherited |
Private Member Functions | |
void | build_ () |
This does the actual building. |
Definition at line 49 of file UniformizeVMatrix.h.
typedef SourceVMatrix PLearn::UniformizeVMatrix::inherited [private] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 51 of file UniformizeVMatrix.h.
PLearn::UniformizeVMatrix::UniformizeVMatrix | ( | ) |
Default constructor.
Definition at line 59 of file UniformizeVMatrix.cc.
: max(1), min(0), nquantiles(1000), threshold_ratio(10), uniformize_input(true), uniformize_target(false), uniformize_weight(false), uniformize_extra(false), uniformize_learner( new UniformizeLearner() ), uniformized_source( new PLearnerOutputVMatrix() ) {}
string PLearn::UniformizeVMatrix::_classname_ | ( | ) | [static] |
Declares name and deepCopy methods.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
OptionList & PLearn::UniformizeVMatrix::_getOptionList_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
RemoteMethodMap & PLearn::UniformizeVMatrix::_getRemoteMethodMap_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
Object * PLearn::UniformizeVMatrix::_new_instance_for_typemap_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
StaticInitializer UniformizeVMatrix::_static_initializer_ & PLearn::UniformizeVMatrix::_static_initialize_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
void PLearn::UniformizeVMatrix::build | ( | ) | [virtual] |
Simply calls inherited::build() then build_().
Reimplemented from PLearn::SourceVMatrix.
Definition at line 127 of file UniformizeVMatrix.cc.
References PLearn::SourceVMatrix::build(), and build_().
{ inherited::build(); build_(); }
void PLearn::UniformizeVMatrix::build_ | ( | ) | [private] |
This does the actual building.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 136 of file UniformizeVMatrix.cc.
References PLearn::TVec< T >::append(), features_to_uniformize, max, min, nquantiles, PLASSERT, PLearn::TVec< T >::resize(), PLearn::SourceVMatrix::setMetaInfoFromSource(), PLearn::SourceVMatrix::source, train_source, uniformize_extra, uniformize_input, uniformize_learner, uniformize_target, uniformize_weight, uniformized_source, and PLearn::VMat::width().
Referenced by build().
{ if (!source) return; PLASSERT( max >= min ); if (train_source) { PLASSERT( train_source->width() == source->width() ); PLASSERT( train_source->inputsize() == source->inputsize() && train_source->targetsize() == source->targetsize() && train_source->weightsize() == source->weightsize() && train_source->extrasize() == source->extrasize() ); } VMat the_source = train_source ? train_source : source; PLASSERT( the_source->inputsize() >= 0 && the_source->targetsize() >= 0 && the_source->weightsize() >= 0 && the_source->extrasize() >= 0 ); // Find which dimensions to uniformize. features_to_uniformize.resize(0); int col = 0; if (uniformize_input) features_to_uniformize.append( TVec<int>(col, col + the_source->inputsize() - 1, 1)); col += the_source->inputsize(); if (uniformize_target) features_to_uniformize.append( TVec<int>(col, col + the_source->targetsize() - 1, 1)); col += the_source->targetsize(); if (uniformize_weight) features_to_uniformize.append( TVec<int>(col, col + the_source->weightsize() - 1, 1)); col += the_source->weightsize(); if (uniformize_extra) features_to_uniformize.append( TVec<int>(col, col + the_source->extrasize() - 1, 1)); col += the_source->extrasize(); // Build the UniformizeLearner and associated PLearnerOutputVMatrix. uniformize_learner->forget(); uniformize_learner->which_fieldnums = features_to_uniformize; uniformize_learner->nquantiles = this->nquantiles; uniformize_learner->build(); uniformize_learner->setTrainingSet(the_source); uniformize_learner->train(); TVec< PP<PLearner> > learners; learners.append((UniformizeLearner*) uniformize_learner); uniformized_source->learners = learners; uniformized_source->source = this->source; uniformized_source->build(); // Obtain meta information from source. setMetaInfoFromSource(); }
string PLearn::UniformizeVMatrix::classname | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
void PLearn::UniformizeVMatrix::declareOptions | ( | OptionList & | ol | ) | [static, protected] |
Declares the class options.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 75 of file UniformizeVMatrix.cc.
References PLearn::OptionBase::buildoption, PLearn::declareOption(), PLearn::SourceVMatrix::declareOptions(), max, min, nquantiles, threshold_ratio, train_source, uniformize_extra, uniformize_input, uniformize_target, and uniformize_weight.
{ declareOption(ol, "min", &UniformizeVMatrix::min, OptionBase::buildoption, "The lower bound of the [min,max] interval values are mapped to."); declareOption(ol, "max", &UniformizeVMatrix::max, OptionBase::buildoption, "The upper bound of the [min,max] interval values are mapped to."); declareOption(ol, "threshold_ratio", &UniformizeVMatrix::threshold_ratio, OptionBase::buildoption, "A source's feature will be uniformized when the following holds:\n" "(max - min) / stddev > threshold_ratio."); declareOption(ol, "uniformize_input", &UniformizeVMatrix::uniformize_input, OptionBase::buildoption, "Whether or not to uniformize the input part."); declareOption(ol, "uniformize_target", &UniformizeVMatrix::uniformize_target, OptionBase::buildoption, "Whether or not to uniformize the target part."); declareOption(ol, "uniformize_weight", &UniformizeVMatrix::uniformize_weight, OptionBase::buildoption, "Whether or not to uniformize the weight part."); declareOption(ol, "uniformize_extra", &UniformizeVMatrix::uniformize_extra, OptionBase::buildoption, "Whether or not to uniformize the extra part."); declareOption(ol, "nquantiles", &UniformizeVMatrix::nquantiles, OptionBase::buildoption, "Number of intervals used to divide the sorted values."); declareOption(ol, "train_source", &UniformizeVMatrix::train_source, OptionBase::buildoption, "An optional VMat that will be used instead of 'source' to compute\n" "the transformation parameters from the distribution statistics."); // Now call the parent class' declareOptions inherited::declareOptions(ol); }
static const PPath& PLearn::UniformizeVMatrix::declaringFile | ( | ) | [inline, static] |
UniformizeVMatrix * PLearn::UniformizeVMatrix::deepCopy | ( | CopiesMap & | copies | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
Fill the vector 'v' with the content of the i-th row.
v is assumed to be the right size. ### This function must be overridden in your class
Reimplemented from PLearn::SourceVMatrix.
Definition at line 196 of file UniformizeVMatrix.cc.
References features_to_uniformize, j, PLearn::TVec< T >::length(), max, min, PLASSERT, uniformize_learner, and uniformized_source.
{ PLASSERT( uniformize_learner->stage > 0 ); uniformized_source->getRow(i, v); for (int j = 0; j < features_to_uniformize.length(); j++) v[j] = min + (max - min) * v[j]; }
OptionList & PLearn::UniformizeVMatrix::getOptionList | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
OptionMap & PLearn::UniformizeVMatrix::getOptionMap | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
RemoteMethodMap & PLearn::UniformizeVMatrix::getRemoteMethodMap | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 54 of file UniformizeVMatrix.cc.
void PLearn::UniformizeVMatrix::makeDeepCopyFromShallowCopy | ( | CopiesMap & | copies | ) | [virtual] |
Transforms a shallow copy into a deep copy.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 207 of file UniformizeVMatrix.cc.
References PLearn::deepCopyField(), features_to_uniformize, PLearn::SourceVMatrix::makeDeepCopyFromShallowCopy(), train_source, uniformize_learner, and uniformized_source.
{ inherited::makeDeepCopyFromShallowCopy(copies); deepCopyField(train_source, copies); deepCopyField(features_to_uniformize, copies); deepCopyField(uniformize_learner, copies); deepCopyField(uniformized_source, copies); }
Reimplemented from PLearn::SourceVMatrix.
Definition at line 79 of file UniformizeVMatrix.h.
TVec<int> PLearn::UniformizeVMatrix::features_to_uniformize [protected] |
List of the source's features that need to be uniformized.
Definition at line 91 of file UniformizeVMatrix.h.
Referenced by build_(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 56 of file UniformizeVMatrix.h.
Referenced by build_(), declareOptions(), and getNewRow().
Definition at line 57 of file UniformizeVMatrix.h.
Referenced by build_(), declareOptions(), and getNewRow().
Definition at line 58 of file UniformizeVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 59 of file UniformizeVMatrix.h.
Referenced by declareOptions().
Definition at line 60 of file UniformizeVMatrix.h.
Referenced by build_(), declareOptions(), and makeDeepCopyFromShallowCopy().
Definition at line 64 of file UniformizeVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 61 of file UniformizeVMatrix.h.
Referenced by build_(), and declareOptions().
The underlying learner that performs the actual normalization.
Definition at line 101 of file UniformizeVMatrix.h.
Referenced by build_(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 62 of file UniformizeVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 63 of file UniformizeVMatrix.h.
Referenced by build_(), and declareOptions().
The data that this VMatrix views, i.e.
the uniformized version of its source.
Definition at line 105 of file UniformizeVMatrix.h.
Referenced by build_(), getNewRow(), and makeDeepCopyFromShallowCopy().