|
PLearn 0.1
|
#include <RankedVMatrix.h>


Public Member Functions | |
| RankedVMatrix () | |
| Default constructor. | |
| RankedVMatrix (VMat source, PP< RankedVMatrix > reference=0) | |
| Convenient constructor. | |
| TVec< int > | getIndexToRank () |
| Return 'index_to_rank'. | |
| Mat | getSortedTargets () |
| Return 'sorted_targets'. | |
| virtual void | build () |
| Simply calls inherited::build() then build_(). | |
| virtual void | makeDeepCopyFromShallowCopy (CopiesMap &copies) |
| Transforms a shallow copy into a deep copy. | |
| virtual string | classname () const |
| virtual OptionList & | getOptionList () const |
| virtual OptionMap & | getOptionMap () const |
| virtual RemoteMethodMap & | getRemoteMethodMap () const |
| virtual RankedVMatrix * | deepCopy (CopiesMap &copies) const |
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 | |
| PP< RankedVMatrix > | reference |
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 this class' options. | |
Protected Attributes | |
| TVec< int > | index_to_rank |
| The i-th element is the rank of the target for the i-th sample in the VMat. | |
| Mat | sorted_targets |
| The first column is the (sorted) target column, and the second column is the corresponding list of indices. | |
Private Types | |
| typedef SourceVMatrix | inherited |
Private Member Functions | |
| void | build_ () |
| This does the actual building. | |
Definition at line 51 of file RankedVMatrix.h.
typedef SourceVMatrix PLearn::RankedVMatrix::inherited [private] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 56 of file RankedVMatrix.h.
| PLearn::RankedVMatrix::RankedVMatrix | ( | ) |
| PLearn::RankedVMatrix::RankedVMatrix | ( | VMat | source, |
| PP< RankedVMatrix > | reference = 0 |
||
| ) |
Convenient constructor.
Definition at line 55 of file RankedVMatrix.cc.
References build(), and PLearn::SourceVMatrix::source.

| string PLearn::RankedVMatrix::_classname_ | ( | ) | [static] |
Declares name and deepCopy methods.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| OptionList & PLearn::RankedVMatrix::_getOptionList_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| RemoteMethodMap & PLearn::RankedVMatrix::_getRemoteMethodMap_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| Object * PLearn::RankedVMatrix::_new_instance_for_typemap_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| StaticInitializer RankedVMatrix::_static_initializer_ & PLearn::RankedVMatrix::_static_initialize_ | ( | ) | [static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| void PLearn::RankedVMatrix::build | ( | ) | [virtual] |
Simply calls inherited::build() then build_().
Reimplemented from PLearn::SourceVMatrix.
Definition at line 88 of file RankedVMatrix.cc.
References PLearn::SourceVMatrix::build(), and build_().
Referenced by RankedVMatrix().
{
inherited::build();
build_();
}


| void PLearn::RankedVMatrix::build_ | ( | ) | [private] |
This does the actual building.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 97 of file RankedVMatrix.cc.
References PLearn::VMat::column(), PLearn::TMat< T >::column(), PLearn::VMatrix::defineSizes(), PLearn::fast_exact_is_equal(), i, index_to_rank, PLearn::TMat< T >::length(), PLearn::VMat::length(), PLERROR, reference, PLearn::TVec< T >::resize(), PLearn::TMat< T >::resize(), PLearn::SourceVMatrix::setMetaInfoFromSource(), sorted_targets, PLearn::sortRows(), PLearn::SourceVMatrix::source, PLearn::VMatrix::toMat(), PLearn::VMat::width(), and PLearn::VMatrix::width_.
Referenced by build().
{
// ### This method should do the real building of the object,
// ### according to set 'options', in *any* situation.
// ### Typical situations include:
// ### - Initial building of an object from a few user-specified options
// ### - Building of a "reloaded" object: i.e. from the complete set of all serialised options.
// ### - Updating or "re-building" of an object after a few "tuning" options have been modified.
// ### You should assume that the parent class' build_() has already been called.
if (source) {
if (source->targetsize() != 1)
PLERROR("In RankedVMatrix::build_ - The source VMat must have a targetsize equal to 1");
// Get sorted target column.
sorted_targets.resize(source->length(), 2);
sorted_targets.column(0) << source.column(source->inputsize())->toMat();
sorted_targets.column(1) << TVec<int>(0, source->length() - 1, 1);
sortRows(sorted_targets);
index_to_rank.resize(source->length());
if (reference) {
// We define the targets based on the reference rankings.
// First get the sorted target column of the reference.
Mat ref_sorted_targets = reference->getSortedTargets();
// Now find the inverse mapping from index to rank.
int ref_index = 0;
int the_index;
for (int i = 0; i < sorted_targets.length(); i++) {
while (ref_index < ref_sorted_targets.length() &&
sorted_targets(i,0) > ref_sorted_targets(ref_index,0))
ref_index++;
if (ref_index == 0)
// The first target higher or equal is the 0-th one.
the_index = 0;
else if (ref_index == sorted_targets.length())
// There is no target higher or equal.
the_index = sorted_targets.length() - 1;
else if (fast_exact_is_equal(sorted_targets(i,0),
ref_sorted_targets(ref_index, 0)))
// We have an exact match.
the_index = ref_index;
else {
// General case: we are in-between two targets. We choose the closest
// one.
if (fabs(sorted_targets(i,0) - ref_sorted_targets(ref_index,0)) <=
fabs(sorted_targets(i,0) - ref_sorted_targets(ref_index - 1 ,0)))
the_index = ref_index;
else
the_index = ref_index - 1;
}
index_to_rank[(int) sorted_targets(i,1)] = the_index;
}
} else {
// Store the inverse mapping from index to rank.
for (int i = 0; i < source->length(); i++)
index_to_rank[(int) sorted_targets(i,1)] = i;
}
// Set VMat info.
width_ = source->width() - source->targetsize() + 1;
defineSizes(source->inputsize(), 1, source->weightsize());
setMetaInfoFromSource();
}
}


| string PLearn::RankedVMatrix::classname | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| void PLearn::RankedVMatrix::declareOptions | ( | OptionList & | ol | ) | [static, protected] |
Declares this class' options.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 76 of file RankedVMatrix.cc.
References PLearn::OptionBase::buildoption, PLearn::declareOption(), PLearn::SourceVMatrix::declareOptions(), and reference.
{
declareOption(ol, "reference", &RankedVMatrix::reference, OptionBase::buildoption,
"An optional reference VMat used to define the targets.\n");
// Now call the parent class' declareOptions
inherited::declareOptions(ol);
}

| static const PPath& PLearn::RankedVMatrix::declaringFile | ( | ) | [inline, static] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 124 of file RankedVMatrix.h.
| RankedVMatrix * PLearn::RankedVMatrix::deepCopy | ( | CopiesMap & | copies | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
Return 'index_to_rank'.
Definition at line 112 of file RankedVMatrix.h.
References index_to_rank.
{return index_to_rank;}
Fill the vector 'v' with the content of the i-th row.
v is assumed to be the right size.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 162 of file RankedVMatrix.cc.
References i, index_to_rank, PLearn::VMatrix::inputsize_, and PLearn::SourceVMatrix::source.
{
source->getRow(i, v);
// Replace the target with the rank.
v[inputsize_] = index_to_rank[i];
}
| OptionList & PLearn::RankedVMatrix::getOptionList | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| OptionMap & PLearn::RankedVMatrix::getOptionMap | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| RemoteMethodMap & PLearn::RankedVMatrix::getRemoteMethodMap | ( | ) | const [virtual] |
Reimplemented from PLearn::SourceVMatrix.
Definition at line 71 of file RankedVMatrix.cc.
| Mat PLearn::RankedVMatrix::getSortedTargets | ( | ) | [inline] |
Return 'sorted_targets'.
Definition at line 115 of file RankedVMatrix.h.
References sorted_targets.
{return sorted_targets;}
| void PLearn::RankedVMatrix::makeDeepCopyFromShallowCopy | ( | CopiesMap & | copies | ) | [virtual] |
Transforms a shallow copy into a deep copy.
Reimplemented from PLearn::SourceVMatrix.
Definition at line 172 of file RankedVMatrix.cc.
References PLearn::deepCopyField(), index_to_rank, PLearn::SourceVMatrix::makeDeepCopyFromShallowCopy(), reference, and sorted_targets.
{
inherited::makeDeepCopyFromShallowCopy(copies);
deepCopyField(index_to_rank, copies);
deepCopyField(sorted_targets, copies);
deepCopyField(reference, copies);
}

Reimplemented from PLearn::SourceVMatrix.
Definition at line 124 of file RankedVMatrix.h.
TVec<int> PLearn::RankedVMatrix::index_to_rank [protected] |
The i-th element is the rank of the target for the i-th sample in the VMat.
Definition at line 67 of file RankedVMatrix.h.
Referenced by build_(), getIndexToRank(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 79 of file RankedVMatrix.h.
Referenced by build_(), declareOptions(), and makeDeepCopyFromShallowCopy().
Mat PLearn::RankedVMatrix::sorted_targets [protected] |
The first column is the (sorted) target column, and the second column is the corresponding list of indices.
Definition at line 71 of file RankedVMatrix.h.
Referenced by build_(), getSortedTargets(), and makeDeepCopyFromShallowCopy().
1.7.4