|
PLearn 0.1
|
This VMat is a generalization of OneHotVMatrix where many columns (given by the Vec index) are mapped, instead of just the last one. More...
#include <GeneralizedOneHotVMatrix.h>


Public Member Functions | |
| GeneralizedOneHotVMatrix (bool call_build_=false) | |
| default constructor (for automatic deserialization) | |
| GeneralizedOneHotVMatrix (VMat the_source, Vec the_index, Vec the_nclasses, Vec the_cold_value, Vec the_hot_value, bool call_build_=false) | |
| virtual string | classname () const |
| virtual OptionList & | getOptionList () const |
| virtual OptionMap & | getOptionMap () const |
| virtual RemoteMethodMap & | getRemoteMethodMap () const |
| virtual GeneralizedOneHotVMatrix * | 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. | |
| virtual void | reset_dimensions () |
| In case the dimensions of an underlying VMat has changed, recompute it. | |
Static Public Member Functions | |
| static string | _classname_ () |
| GeneralizedOneHotVMatrix. | |
| 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 () |
Static Public Attributes | |
| static StaticInitializer | _static_initializer_ |
Protected Member Functions | |
| virtual void | getNewRow (int i, const Vec &samplevec) const |
| Must be implemented in subclasses: default version returns an error. | |
Static Protected Member Functions | |
| static void | declareOptions (OptionList &ol) |
| Declares this class' options. | |
Protected Attributes | |
| Vec | index |
| Columns to map to one-hot vector representation. | |
| Vec | nclasses |
| Size of the one-hot vector for each columns to map. | |
| Vec | cold_value |
| Cold values for all columns to map. | |
| Vec | hot_value |
| Hot values for all columns to map. | |
Private Types | |
| typedef SourceVMatrix | inherited |
Private Member Functions | |
| void | build_ () |
| This does the actual building. | |
This VMat is a generalization of OneHotVMatrix where many columns (given by the Vec index) are mapped, instead of just the last one.
Definition at line 57 of file GeneralizedOneHotVMatrix.h.
typedef SourceVMatrix PLearn::GeneralizedOneHotVMatrix::inherited [private] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 59 of file GeneralizedOneHotVMatrix.h.
| PLearn::GeneralizedOneHotVMatrix::GeneralizedOneHotVMatrix | ( | bool | call_build_ = false | ) |
default constructor (for automatic deserialization)
Definition at line 54 of file GeneralizedOneHotVMatrix.cc.
References build_().

| PLearn::GeneralizedOneHotVMatrix::GeneralizedOneHotVMatrix | ( | VMat | the_source, |
| Vec | the_index, | ||
| Vec | the_nclasses, | ||
| Vec | the_cold_value, | ||
| Vec | the_hot_value, | ||
| bool | call_build_ = false |
||
| ) |
Definition at line 61 of file GeneralizedOneHotVMatrix.cc.
References build_(), cold_value, hot_value, index, PLearn::TVec< T >::length(), PLearn::VMat::length(), PLearn::max(), PLearn::min(), nclasses, PLERROR, and PLearn::SourceVMatrix::source.
: inherited(the_source, the_source->length(), the_source->width() + (int)sum(the_nclasses)-the_nclasses.length(), call_build_), index(the_index), nclasses(the_nclasses), cold_value(the_cold_value), hot_value(the_hot_value) { if (min(index)<0 || max(index)>source->length()-1) PLERROR("In GeneralizedOneHotVMatrix: all values of index must be in" " range [0,%d]", source->length()-1); if (index.length()!=nclasses.length() || cold_value.length()!=hot_value.length() || index.length()!=hot_value.length()) PLERROR("In GeneralizedOneHotVMatrix: index, nclasses, cold_value\n" "and hot_value must have same length.\n"); if (call_build_) build_(); }

| string PLearn::GeneralizedOneHotVMatrix::_classname_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| OptionList & PLearn::GeneralizedOneHotVMatrix::_getOptionList_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| RemoteMethodMap & PLearn::GeneralizedOneHotVMatrix::_getRemoteMethodMap_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| Object * PLearn::GeneralizedOneHotVMatrix::_new_instance_for_typemap_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| StaticInitializer GeneralizedOneHotVMatrix::_static_initializer_ & PLearn::GeneralizedOneHotVMatrix::_static_initialize_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| void PLearn::GeneralizedOneHotVMatrix::build | ( | ) | [virtual] |
Simply calls inherited::build() then build_().
Reimplemented from PLearn::SourceVMatrix.
Definition at line 90 of file GeneralizedOneHotVMatrix.cc.
References PLearn::SourceVMatrix::build(), and build_().
{
inherited::build();
build_();
}

| void PLearn::GeneralizedOneHotVMatrix::build_ | ( | ) | [private] |
This does the actual building.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 96 of file GeneralizedOneHotVMatrix.cc.
References PLearn::VMatrix::declareFieldNames(), index, j, PLearn::TVec< T >::length(), PLearn::VMat::length(), PLearn::VMatrix::length_, nclasses, PLearn::SourceVMatrix::setMetaInfoFromSource(), PLearn::SourceVMatrix::source, PLearn::sum(), PLearn::tostring(), PLearn::vec_find(), PLearn::VMatrix::width(), PLearn::VMat::width(), and PLearn::VMatrix::width_.
Referenced by build(), and GeneralizedOneHotVMatrix().
{
length_ = source->length();
width_ = source->width() + (int)sum(nclasses) - nclasses.length();
TVec<string> fieldnames = source->fieldNames();
TVec<string> extended_fieldnames( width() );
int efn_pos = 0;
for( int j=0 ; j<fieldnames.length() ; j++ )
{
const int index_pos = vec_find(index, (real)j);
if( index_pos == -1 )
extended_fieldnames[efn_pos++] = fieldnames[j];
else
{
const int nb_class = (int)nclasses[index_pos];
string name = fieldnames[j];
for( int k=0 ; k<nb_class ; k++ )
extended_fieldnames[efn_pos++] = name + "_" + tostring(k);
}
}
declareFieldNames( extended_fieldnames );
setMetaInfoFromSource();
}


| string PLearn::GeneralizedOneHotVMatrix::classname | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| void PLearn::GeneralizedOneHotVMatrix::declareOptions | ( | OptionList & | ol | ) | [static, protected] |
Declares this class' options.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 122 of file GeneralizedOneHotVMatrix.cc.
References PLearn::OptionBase::buildoption, cold_value, PLearn::declareOption(), PLearn::SourceVMatrix::declareOptions(), hot_value, index, PLearn::OptionBase::learntoption, nclasses, PLearn::OptionBase::nosave, and PLearn::SourceVMatrix::source.
{
declareOption(ol, "distr", &GeneralizedOneHotVMatrix::source,
(OptionBase::learntoption | OptionBase::nosave),
"DEPRECATED - use 'source' instead.");
declareOption(ol, "index", &GeneralizedOneHotVMatrix::index,
OptionBase::buildoption, "Columns to map to one-hot vector representation.");
declareOption(ol, "nclasses", &GeneralizedOneHotVMatrix::nclasses,
OptionBase::buildoption, "Size of the one-hot vector for each columns to map.");
declareOption(ol, "cold_value", &GeneralizedOneHotVMatrix::cold_value,
OptionBase::buildoption, "Cold values for all columns to map.");
declareOption(ol, "hot_value", &GeneralizedOneHotVMatrix::hot_value,
OptionBase::buildoption, "Hot values for all columns to map.");
inherited::declareOptions(ol);
}

| static const PPath& PLearn::GeneralizedOneHotVMatrix::declaringFile | ( | ) | [inline, static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 85 of file GeneralizedOneHotVMatrix.h.
:
| GeneralizedOneHotVMatrix * PLearn::GeneralizedOneHotVMatrix::deepCopy | ( | CopiesMap & | copies | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| void PLearn::GeneralizedOneHotVMatrix::getNewRow | ( | int | i, |
| const Vec & | v | ||
| ) | const [protected, virtual] |
Must be implemented in subclasses: default version returns an error.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 138 of file GeneralizedOneHotVMatrix.cc.
References cold_value, PLearn::TVec< T >::fill(), PLearn::fill_one_hot(), hot_value, index, PLearn::is_missing(), j, PLearn::TVec< T >::length(), PLearn::VMatrix::length(), nclasses, PLERROR, PLearn::SourceVMatrix::source, PLearn::TVec< T >::subVec(), PLearn::vec_find(), PLearn::VMat::width(), and PLearn::VMatrix::width().
{
#ifdef BOUNDCHECK
if(i<0 || i>=length())
PLERROR("In OneHotVMatrix::getNewRow OUT OF BOUNDS");
if(v.length()!=width())
PLERROR("In GeneralizedOneHotVMatrix::getNewRow v.length() must be\n"
"equal to the VMat's width.\n");
#endif
Vec input(source->width());
source->getRow(i, input);
int v_pos = 0;
for (int j=0; j<input.length(); j++) {
const int index_pos = vec_find(index, (real)j);
if (index_pos == -1)
v[v_pos++] = input[j];
else {
const int nb_class = (int)nclasses[index_pos];
Vec target = v.subVec(v_pos, nb_class);
const real cold = cold_value[index_pos];
const real hot = hot_value[index_pos];
const real classnum = source->get(i,j); // Maybe not a desired behavior
if(is_missing(classnum)) target.fill(cold);
else fill_one_hot(target, (int) classnum, cold, hot);
v_pos += nb_class;
}
}
}

| OptionList & PLearn::GeneralizedOneHotVMatrix::getOptionList | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| OptionMap & PLearn::GeneralizedOneHotVMatrix::getOptionMap | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| RemoteMethodMap & PLearn::GeneralizedOneHotVMatrix::getRemoteMethodMap | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 52 of file GeneralizedOneHotVMatrix.cc.
| void PLearn::GeneralizedOneHotVMatrix::makeDeepCopyFromShallowCopy | ( | CopiesMap & | copies | ) | [virtual] |
Transforms a shallow copy into a deep copy.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 171 of file GeneralizedOneHotVMatrix.cc.
References cold_value, PLearn::deepCopyField(), hot_value, index, PLearn::SourceVMatrix::makeDeepCopyFromShallowCopy(), and nclasses.
{
inherited::makeDeepCopyFromShallowCopy(copies);
// ### Call deepCopyField on all "pointer-like" fields.
// ### that you wish to be deepCopied rather than.
// ### shallow-copied.
// ### ex:
// deepCopyField(trainvec, copies);
deepCopyField(index, copies);
deepCopyField(nclasses, copies);
deepCopyField(cold_value, copies);
deepCopyField(hot_value, copies);
}

| virtual void PLearn::GeneralizedOneHotVMatrix::reset_dimensions | ( | ) | [inline, virtual] |
In case the dimensions of an underlying VMat has changed, recompute it.
Reimplemented from PLearn::VMatrix.
Definition at line 99 of file GeneralizedOneHotVMatrix.h.
References PLearn::sum().
{
source->reset_dimensions();
width_ = source->width() + (int)sum(nclasses) - nclasses.length();
length_ = source->length();
}

Reimplemented from PLearn::SourceVMatrix.
Definition at line 85 of file GeneralizedOneHotVMatrix.h.
Vec PLearn::GeneralizedOneHotVMatrix::cold_value [protected] |
Cold values for all columns to map.
Definition at line 68 of file GeneralizedOneHotVMatrix.h.
Referenced by declareOptions(), GeneralizedOneHotVMatrix(), getNewRow(), and makeDeepCopyFromShallowCopy().
Vec PLearn::GeneralizedOneHotVMatrix::hot_value [protected] |
Hot values for all columns to map.
Definition at line 70 of file GeneralizedOneHotVMatrix.h.
Referenced by declareOptions(), GeneralizedOneHotVMatrix(), getNewRow(), and makeDeepCopyFromShallowCopy().
Vec PLearn::GeneralizedOneHotVMatrix::index [protected] |
Columns to map to one-hot vector representation.
Definition at line 64 of file GeneralizedOneHotVMatrix.h.
Referenced by build_(), declareOptions(), GeneralizedOneHotVMatrix(), getNewRow(), and makeDeepCopyFromShallowCopy().
Vec PLearn::GeneralizedOneHotVMatrix::nclasses [protected] |
Size of the one-hot vector for each columns to map.
Definition at line 66 of file GeneralizedOneHotVMatrix.h.
Referenced by build_(), declareOptions(), GeneralizedOneHotVMatrix(), getNewRow(), and makeDeepCopyFromShallowCopy().
1.7.4