PLearn 0.1
|
#include <StatsIterator.h>
Public Member Functions | |
virtual string | info () const |
Returns a bit more informative string about object (default returns classname()) | |
virtual void | init (int inputsize) |
Call this method once with the correct inputsize. | |
virtual void | update (const Vec &input) |
Then iterate over the data set and call this method for each row. | |
virtual bool | finish () |
LiftStatsIterator (int the_index=0, real the_fraction=0.1) | |
virtual string | classname () const |
virtual OptionList & | getOptionList () const |
virtual OptionMap & | getOptionMap () const |
virtual RemoteMethodMap & | getRemoteMethodMap () const |
virtual LiftStatsIterator * | deepCopy (CopiesMap &copies) const |
virtual void | makeDeepCopyFromShallowCopy (CopiesMap &copies) |
Does the necessary operations to transform a shallow copy (this) into a deep copy by deep-copying all the members that need to be. | |
virtual void | oldwrite (ostream &out) const |
Static Public Member Functions | |
static string | _classname_ () |
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_ |
Static Protected Member Functions | |
static void | declareOptions (OptionList &ol) |
Declare options (data fields) for the class. | |
Protected Attributes | |
int | nsamples |
int | lift_index |
real | lift_fraction |
Mat | output_and_pos |
Vec | targets |
Private Types | |
typedef StatsIterator | inherited |
result Vec has size 2: result[0] = lift result[1] = lift/lift_maximum
Definition at line 307 of file StatsIterator.h.
typedef StatsIterator PLearn::LiftStatsIterator::inherited [private] |
Reimplemented from PLearn::StatsIterator.
Definition at line 309 of file StatsIterator.h.
Definition at line 536 of file StatsIterator.cc.
: nsamples(-1), lift_index(the_index), lift_fraction(the_fraction) {}
string PLearn::LiftStatsIterator::_classname_ | ( | ) | [static] |
Reimplemented from PLearn::StatsIterator.
Definition at line 528 of file StatsIterator.cc.
OptionList & PLearn::LiftStatsIterator::_getOptionList_ | ( | ) | [static] |
Reimplemented from PLearn::StatsIterator.
Definition at line 528 of file StatsIterator.cc.
RemoteMethodMap & PLearn::LiftStatsIterator::_getRemoteMethodMap_ | ( | ) | [static] |
Reimplemented from PLearn::StatsIterator.
Definition at line 528 of file StatsIterator.cc.
Reimplemented from PLearn::StatsIterator.
Definition at line 528 of file StatsIterator.cc.
Object * PLearn::LiftStatsIterator::_new_instance_for_typemap_ | ( | ) | [static] |
Reimplemented from PLearn::Object.
Definition at line 528 of file StatsIterator.cc.
StaticInitializer LiftStatsIterator::_static_initializer_ & PLearn::LiftStatsIterator::_static_initialize_ | ( | ) | [static] |
Reimplemented from PLearn::StatsIterator.
Definition at line 528 of file StatsIterator.cc.
string PLearn::LiftStatsIterator::classname | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 528 of file StatsIterator.cc.
void PLearn::LiftStatsIterator::declareOptions | ( | OptionList & | ol | ) | [static, protected] |
Declare options (data fields) for the class.
Redefine this in subclasses: call declareOption
(...) for each option, and then call inherited::declareOptions(options)
. Please call the inherited
method AT THE END to get the options listed in a consistent order (from most recently defined to least recently defined).
static void MyDerivedClass::declareOptions(OptionList& ol) { declareOption(ol, "inputsize", &MyObject::inputsize_, OptionBase::buildoption, "The size of the input; it must be provided"); declareOption(ol, "weights", &MyObject::weights, OptionBase::learntoption, "The learned model weights"); inherited::declareOptions(ol); }
ol | List of options that is progressively being constructed for the current class. |
Reimplemented from PLearn::StatsIterator.
Definition at line 596 of file StatsIterator.cc.
References PLearn::OptionBase::buildoption, PLearn::declareOption(), PLearn::StatsIterator::declareOptions(), PLearn::OptionBase::learntoption, lift_fraction, lift_index, nsamples, output_and_pos, and targets.
{ declareOption(ol, "nsamples", &LiftStatsIterator::nsamples, OptionBase::learntoption, " nsamples\n"); declareOption(ol, "lift_index", &LiftStatsIterator::lift_index, OptionBase::buildoption, " lift_index\n"); declareOption(ol, "lift_fraction", &LiftStatsIterator::lift_fraction, OptionBase::buildoption, " lift_fraction\n"); declareOption(ol, "output_and_pos", &LiftStatsIterator::output_and_pos, OptionBase::learntoption, " output_and_pos\n"); declareOption(ol, "targets", &LiftStatsIterator::targets, OptionBase::learntoption, " targets\n"); inherited::declareOptions(ol); }
static const PPath& PLearn::LiftStatsIterator::declaringFile | ( | ) | [inline, static] |
Reimplemented from PLearn::StatsIterator.
Definition at line 325 of file StatsIterator.h.
: static void declareOptions(OptionList& ol);
LiftStatsIterator * PLearn::LiftStatsIterator::deepCopy | ( | CopiesMap & | copies | ) | const [virtual] |
Reimplemented from PLearn::StatsIterator.
Definition at line 528 of file StatsIterator.cc.
bool PLearn::LiftStatsIterator::finish | ( | ) | [virtual] |
Call this method when all the data has been shown (through update) If the method returns false, then a further pass through the data is required.
Implements PLearn::StatsIterator.
Definition at line 568 of file StatsIterator.cc.
References lift_fraction, MIN, nsamples, output_and_pos, PLearn::TMat< T >::resize(), PLearn::TVec< T >::resize(), PLearn::StatsIterator::result, PLearn::selectAndOrder(), PLearn::TMat< T >::subMat(), PLearn::sum(), and targets.
{ output_and_pos.resize(nsamples,2); targets.resize(nsamples); const int n_first_samples = int(lift_fraction*nsamples); const int n_last_samples = nsamples - n_first_samples; selectAndOrder(output_and_pos, n_last_samples); /* Vec first_samples_index = output_and_pos.subMat(n_last_samples,1,n_first_samples,1).toVecCopy(); */ TVec<int> first_samples_index(n_first_samples); first_samples_index << output_and_pos.subMat(n_last_samples,1,n_first_samples,1); Vec first_samples_targets = targets(first_samples_index); real first_samples_perf = sum(first_samples_targets)/n_first_samples; real targets_perf = sum(targets)/nsamples; real lift = first_samples_perf/targets_perf*100.0; result[0] = lift; real nones = sum(targets); real max_first_samples_perf = MIN(nones,(real)n_first_samples)/n_first_samples; real max_lift = max_first_samples_perf/targets_perf*100.0; result[1] = lift/max_lift; return true; }
OptionList & PLearn::LiftStatsIterator::getOptionList | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 528 of file StatsIterator.cc.
OptionMap & PLearn::LiftStatsIterator::getOptionMap | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 528 of file StatsIterator.cc.
RemoteMethodMap & PLearn::LiftStatsIterator::getRemoteMethodMap | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 528 of file StatsIterator.cc.
virtual string PLearn::LiftStatsIterator::info | ( | ) | const [inline, virtual] |
Returns a bit more informative string about object (default returns classname())
Reimplemented from PLearn::Object.
Definition at line 319 of file StatsIterator.h.
{ return "lift"; }
void PLearn::LiftStatsIterator::init | ( | int | inputsize | ) | [virtual] |
Call this method once with the correct inputsize.
Implements PLearn::StatsIterator.
Definition at line 542 of file StatsIterator.cc.
References nsamples, output_and_pos, PLearn::TVec< T >::resize(), PLearn::TMat< T >::resize(), PLearn::StatsIterator::result, and targets.
{ // We do not use resize on purpose, so // that the previous result Vec does not get overwritten result = Vec(2); const int initial_length = 1000; output_and_pos.resize(initial_length, 2); // 1 output + 1 pos targets.resize(initial_length); nsamples = 0; }
void PLearn::LiftStatsIterator::makeDeepCopyFromShallowCopy | ( | CopiesMap & | copies | ) | [virtual] |
Does the necessary operations to transform a shallow copy (this) into a deep copy by deep-copying all the members that need to be.
This needs to be overridden by every class that adds "complex" data members to the class, such as Vec
, Mat
, PP<Something>
, etc. Typical implementation:
void CLASS_OF_THIS::makeDeepCopyFromShallowCopy(CopiesMap& copies) { inherited::makeDeepCopyFromShallowCopy(copies); deepCopyField(complex_data_member1, copies); deepCopyField(complex_data_member2, copies); ... }
copies | A map used by the deep-copy mechanism to keep track of already-copied objects. |
Reimplemented from PLearn::StatsIterator.
Definition at line 529 of file StatsIterator.cc.
References PLearn::deepCopyField(), and PLearn::StatsIterator::makeDeepCopyFromShallowCopy().
{ StatsIterator::makeDeepCopyFromShallowCopy(copies); deepCopyField(output_and_pos, copies); deepCopyField(targets, copies); }
void PLearn::LiftStatsIterator::oldwrite | ( | ostream & | out | ) | const [virtual] |
Reimplemented from PLearn::StatsIterator.
Definition at line 616 of file StatsIterator.cc.
References lift_fraction, lift_index, nsamples, output_and_pos, targets, PLearn::Object::write(), PLearn::writeField(), PLearn::writeFooter(), and PLearn::writeHeader().
{ writeHeader(out,"LiftStatsIterator"); inherited::write(out); writeField(out,"nsamples",nsamples); writeField(out,"lift_index",lift_index); writeField(out,"lift_fraction",lift_fraction); writeField(out,"output_and_pos",output_and_pos); writeField(out,"targets",targets); writeFooter(out,"LiftStatsIterator"); }
void PLearn::LiftStatsIterator::update | ( | const Vec & | input | ) | [virtual] |
Then iterate over the data set and call this method for each row.
Implements PLearn::StatsIterator.
Definition at line 554 of file StatsIterator.cc.
References PLearn::FABS(), PLearn::TMat< T >::length(), lift_index, nsamples, output_and_pos, PLearn::TVec< T >::resize(), PLearn::TMat< T >::resize(), and targets.
{ if (nsamples == output_and_pos.length()) { output_and_pos.resize(10*output_and_pos.length(), 2); targets.resize(10*output_and_pos.length()); } output_and_pos(nsamples, 0) = FABS(input[lift_index]); output_and_pos(nsamples, 1) = nsamples; targets[nsamples] = (input[lift_index]>0) ? 1 : 0; nsamples++; }
Reimplemented from PLearn::StatsIterator.
Definition at line 325 of file StatsIterator.h.
real PLearn::LiftStatsIterator::lift_fraction [protected] |
Definition at line 314 of file StatsIterator.h.
Referenced by declareOptions(), finish(), and oldwrite().
int PLearn::LiftStatsIterator::lift_index [protected] |
Definition at line 313 of file StatsIterator.h.
Referenced by declareOptions(), oldwrite(), and update().
int PLearn::LiftStatsIterator::nsamples [protected] |
Definition at line 312 of file StatsIterator.h.
Referenced by declareOptions(), finish(), init(), oldwrite(), and update().
Mat PLearn::LiftStatsIterator::output_and_pos [protected] |
Definition at line 315 of file StatsIterator.h.
Referenced by declareOptions(), finish(), init(), oldwrite(), and update().
Vec PLearn::LiftStatsIterator::targets [protected] |
Definition at line 316 of file StatsIterator.h.
Referenced by declareOptions(), finish(), init(), oldwrite(), and update().