PLearn 0.1
|
#include <RegressionTreeLeave.h>
Public Member Functions | |
RegressionTreeLeave () | |
virtual | ~RegressionTreeLeave () |
virtual string | classname () const |
virtual OptionList & | getOptionList () const |
virtual OptionMap & | getOptionMap () const |
virtual RemoteMethodMap & | getRemoteMethodMap () const |
virtual RegressionTreeLeave * | 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 | build () |
Post-constructor. | |
virtual int | outputsize () const |
void | initLeave (PP< RegressionTreeRegisters > the_train_set, RTR_type_id the_id, bool the_missing_leave=false) |
virtual void | initStats () |
virtual void | addRow (int row) |
virtual void | addRow (int row, real target, real weight) |
virtual void | addRow (int row, Vec outputv, Vec errorv) |
virtual void | addRow (int row, real target, real weight, Vec outputv, Vec errorv) |
virtual void | removeRow (int row, real target, real weight) |
virtual void | removeRow (int row, Vec outputv, Vec errorv) |
virtual void | removeRow (int row, real target, real weight, Vec outputv, Vec errorv) |
void | registerRow (int row) |
int | getId () const |
int | length () const |
virtual void | getOutputAndError (Vec &output, Vec &error) const |
virtual TVec< string > | getOutputNames () const |
virtual void | printStats () |
real | getWeightsSum () |
real | getTargetsSum () |
virtual bool | uniqTarget () |
virtual void | addLeave (PP< RegressionTreeLeave > leave) |
virtual void | removeLeave (PP< RegressionTreeLeave > leave) |
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 void | declareOptions (OptionList &ol) |
Declare options (data fields) for the class. | |
Public Attributes | |
bool | missing_leave |
real | loss_function_weight |
RTR_type_id | id |
PP< RegressionTreeRegisters > | train_set |
Static Public Attributes | |
static int | verbosity = 0 |
static bool | output_confidence_target = false |
static StaticInitializer | _static_initializer_ |
Protected Attributes | |
int | length_ |
real | weights_sum |
real | targets_sum |
real | weighted_targets_sum |
real | weighted_squared_targets_sum |
real | loss_function_factor |
Private Types | |
typedef Object | inherited |
Private Member Functions | |
void | build_ () |
Object-specific post-constructor. | |
void | verbose (string msg, int level) |
Static Private Attributes | |
static Vec | dummy_vec |
Friends | |
class | RegressionTreeNode |
class | RegressionTreeRegisters |
Definition at line 50 of file RegressionTreeLeave.h.
typedef Object PLearn::RegressionTreeLeave::inherited [private] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.h.
PLearn::RegressionTreeLeave::RegressionTreeLeave | ( | ) |
Definition at line 58 of file RegressionTreeLeave.cc.
References build().
: missing_leave(false), loss_function_weight(0), id(0), length_(0), weights_sum(0), targets_sum(0), weighted_targets_sum(0), weighted_squared_targets_sum(0), loss_function_factor(1) { build(); }
PLearn::RegressionTreeLeave::~RegressionTreeLeave | ( | ) | [virtual] |
Definition at line 72 of file RegressionTreeLeave.cc.
{ }
string PLearn::RegressionTreeLeave::_classname_ | ( | ) | [static] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
OptionList & PLearn::RegressionTreeLeave::_getOptionList_ | ( | ) | [static] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
RemoteMethodMap & PLearn::RegressionTreeLeave::_getRemoteMethodMap_ | ( | ) | [static] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
Object * PLearn::RegressionTreeLeave::_new_instance_for_typemap_ | ( | ) | [static] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
StaticInitializer RegressionTreeLeave::_static_initializer_ & PLearn::RegressionTreeLeave::_static_initialize_ | ( | ) | [static] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
void PLearn::RegressionTreeLeave::addLeave | ( | PP< RegressionTreeLeave > | leave | ) | [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 274 of file RegressionTreeLeave.cc.
References classname(), length_, PLERROR, targets_sum, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
{ if(leave->classname()=="RegressionTreeLeave" && classname()=="RegressionTreeLeave"){ length_ += leave->length_; weights_sum += leave->weights_sum; targets_sum += leave->targets_sum; weighted_targets_sum += leave->weighted_targets_sum; weighted_squared_targets_sum += leave->weighted_squared_targets_sum; }else PLERROR("In RegressionTreeLeave::addLeave subclass %s or %s must reimplement it.", classname().c_str(), leave->classname().c_str()); }
void PLearn::RegressionTreeLeave::addRow | ( | int | row | ) | [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 164 of file RegressionTreeLeave.cc.
References train_set.
Referenced by addRow().
{ real weight = train_set->getWeight(row); real target = train_set->getTarget(row); addRow(row, target, weight); }
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 154 of file RegressionTreeLeave.cc.
References length_, PLearn::pow(), targets_sum, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
{ length_ += 1; weights_sum += weight; targets_sum += target; real squared_target = pow(target, 2); weighted_targets_sum += weight * target; weighted_squared_targets_sum += weight * squared_target; }
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 178 of file RegressionTreeLeave.cc.
References addRow(), and getOutputAndError().
{ addRow(row); getOutputAndError(outputv,errorv); }
void PLearn::RegressionTreeLeave::addRow | ( | int | row, |
real | target, | ||
real | weight, | ||
Vec | outputv, | ||
Vec | errorv | ||
) | [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 171 of file RegressionTreeLeave.cc.
References addRow(), and getOutputAndError().
{ addRow(row, target, weight); getOutputAndError(outputv,errorv); }
void PLearn::RegressionTreeLeave::build | ( | ) | [virtual] |
Post-constructor.
The normal implementation should call simply inherited::build(), then this class's build_(). This method should be callable again at later times, after modifying some option fields to change the "architecture" of the object.
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 125 of file RegressionTreeLeave.cc.
References PLearn::Object::build(), and build_().
Referenced by PLearn::RegressionTreeMulticlassLeaveProb::build(), PLearn::RegressionTreeMulticlassLeaveFast::build(), PLearn::RegressionTreeMulticlassLeave::build(), and RegressionTreeLeave().
{ inherited::build(); build_(); }
void PLearn::RegressionTreeLeave::build_ | ( | ) | [private] |
Object-specific post-constructor.
This method should be redefined in subclasses and do the actual building of the object according to previously set option fields. Constructors can just set option fields, and then call build_. This method is NOT virtual, and will typically be called only from three places: a constructor, the public virtual build()
method, and possibly the public virtual read method (which calls its parent's read). build_()
can assume that its parent's build_()
has already been called.
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 131 of file RegressionTreeLeave.cc.
Referenced by build().
{ }
string PLearn::RegressionTreeLeave::classname | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
Referenced by addLeave(), removeLeave(), and uniqTarget().
void PLearn::RegressionTreeLeave::declareOptions | ( | OptionList & | ol | ) | [static] |
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::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 76 of file RegressionTreeLeave.cc.
References PLearn::OptionBase::buildoption, PLearn::declareOption(), PLearn::Object::declareOptions(), PLearn::declareStaticOption(), dummy_vec, id, PLearn::OptionBase::learntoption, length_, loss_function_factor, loss_function_weight, missing_leave, PLearn::OptionBase::nosave, output_confidence_target, targets_sum, train_set, verbosity, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
Referenced by PLearn::RegressionTreeMulticlassLeaveProb::declareOptions(), PLearn::RegressionTreeMulticlassLeaveFast::declareOptions(), and PLearn::RegressionTreeMulticlassLeave::declareOptions().
{ declareOption(ol, "id", &RegressionTreeLeave::id, OptionBase::buildoption, "The id of this leave to register the rows of the RegressionTreeRegisters\n"); declareOption(ol, "missing_leave", &RegressionTreeLeave::missing_leave, OptionBase::buildoption, "The indicator that it is a leave with missing values for the split feature\n"); declareOption(ol, "loss_function_weight", &RegressionTreeLeave::loss_function_weight, OptionBase::buildoption, "The hyper parameter to balance the error and the confidence factor\n"); declareStaticOption(ol, "verbosity", &RegressionTreeLeave::verbosity, OptionBase::buildoption, "The desired level of verbosity\n"); declareOption(ol, "train_set", &RegressionTreeLeave::train_set, OptionBase::buildoption | OptionBase::nosave, "The train set with the sorted row index matrix and the leave id vector\n"); declareOption(ol, "length", &RegressionTreeLeave::length_, OptionBase::learntoption, "The number of rows in this leave\n"); declareOption(ol, "weights_sum", &RegressionTreeLeave::weights_sum, OptionBase::learntoption, "The sum of weights for the samples in this leave\n"); declareOption(ol, "targets_sum", &RegressionTreeLeave::targets_sum, OptionBase::learntoption, "The sum of targets for the samples in this leave\n"); declareOption(ol, "weighted_targets_sum", &RegressionTreeLeave::weighted_targets_sum, OptionBase::learntoption, "The sum of weighted targets for the samples in this leave\n"); declareOption(ol, "weighted_squared_targets_sum", &RegressionTreeLeave::weighted_squared_targets_sum, OptionBase::learntoption, "The sum of squared weighted target values for the samples in this leave\n"); declareOption(ol, "loss_function_factor", &RegressionTreeLeave::loss_function_factor, OptionBase::learntoption, "2 / pow(loss_function_weight, 2.0).\n"); declareStaticOption(ol, "output_confidence_target", &RegressionTreeLeave::output_confidence_target, OptionBase::buildoption, "If false the output size is 1 and contain only the predicted" " target. Else output size is 2 and contain also the" " confidence\n"); declareStaticOption(ol, "output", &RegressionTreeLeave::dummy_vec, OptionBase::nosave, "DEPRECATED"); declareStaticOption(ol, "error", &RegressionTreeLeave::dummy_vec, OptionBase::nosave, "DEPRECATED"); inherited::declareOptions(ol); }
static const PPath& PLearn::RegressionTreeLeave::declaringFile | ( | ) | [inline, static] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 84 of file RegressionTreeLeave.h.
{return output_confidence_target?2:1;}
RegressionTreeLeave * PLearn::RegressionTreeLeave::deepCopy | ( | CopiesMap & | copies | ) | const [virtual] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
int PLearn::RegressionTreeLeave::getId | ( | ) | const [inline] |
Definition at line 102 of file RegressionTreeLeave.h.
{return id;}
OptionList & PLearn::RegressionTreeLeave::getOptionList | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
OptionMap & PLearn::RegressionTreeLeave::getOptionMap | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 205 of file RegressionTreeLeave.cc.
References PLearn::TVec< T >::clear(), length_, loss_function_factor, missing_leave, MISSING_VALUE, output_confidence_target, RTR_HAVE_MISSING, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
Referenced by addRow(), printStats(), and removeRow().
{ real conf = 0; if(length_>0){ output[0] = weighted_targets_sum / weights_sum; if (!RTR_HAVE_MISSING || missing_leave != true) { //we put the most frequent case first as an optimisation conf = 1.0; error[0] = ((weights_sum * output[0] * output[0]) - (2.0 * weighted_targets_sum * output[0]) + weighted_squared_targets_sum) * loss_function_factor; if (error[0] < 1E-10) {error[0] = 0.0;} //PLWARNING("E[0] <1e-10: %f",error[0]);} error[1] = 0.0; real weights_sum_factor = weights_sum * loss_function_factor; if (error[0] > weights_sum_factor) error[2] = weights_sum_factor; else error[2] = error[0]; } else { error[0] = 0.0; error[1] = weights_sum; error[2] = 0.0; } }else{ output[0] = MISSING_VALUE; error.clear(); } if(output_confidence_target) output[1] = conf; }
TVec< string > PLearn::RegressionTreeLeave::getOutputNames | ( | ) | const [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 236 of file RegressionTreeLeave.cc.
References PLearn::TVec< T >::append(), and output_confidence_target.
{ TVec<string> ret; ret.append("val_pred"); if(output_confidence_target) ret.append("confidence"); return ret; }
RemoteMethodMap & PLearn::RegressionTreeLeave::getRemoteMethodMap | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 52 of file RegressionTreeLeave.cc.
real PLearn::RegressionTreeLeave::getTargetsSum | ( | ) | [inline] |
Definition at line 108 of file RegressionTreeLeave.h.
{return targets_sum;}
real PLearn::RegressionTreeLeave::getWeightsSum | ( | ) | [inline] |
Definition at line 107 of file RegressionTreeLeave.h.
{return weights_sum;}
void PLearn::RegressionTreeLeave::initLeave | ( | PP< RegressionTreeRegisters > | the_train_set, |
RTR_type_id | the_id, | ||
bool | the_missing_leave = false |
||
) |
Definition at line 135 of file RegressionTreeLeave.cc.
References missing_leave, and train_set.
{ train_set = the_train_set; id = the_id; missing_leave = the_missing_leave; }
void PLearn::RegressionTreeLeave::initStats | ( | ) | [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 142 of file RegressionTreeLeave.cc.
References length_, loss_function_factor, loss_function_weight, PLearn::pow(), targets_sum, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
{ length_ = 0; weights_sum= 0.0; targets_sum = 0.0; weighted_targets_sum = 0.0; weighted_squared_targets_sum = 0.0; if (loss_function_weight != 0.0) loss_function_factor = 2.0 / pow(loss_function_weight, 2); else loss_function_factor = 1.0; }
int PLearn::RegressionTreeLeave::length | ( | ) | const [inline] |
Definition at line 103 of file RegressionTreeLeave.h.
{return length_;}
void PLearn::RegressionTreeLeave::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::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 117 of file RegressionTreeLeave.cc.
References PLearn::Object::makeDeepCopyFromShallowCopy().
Referenced by PLearn::RegressionTreeMulticlassLeaveProb::makeDeepCopyFromShallowCopy(), PLearn::RegressionTreeMulticlassLeaveFast::makeDeepCopyFromShallowCopy(), and PLearn::RegressionTreeMulticlassLeave::makeDeepCopyFromShallowCopy().
{ inherited::makeDeepCopyFromShallowCopy(copies); //we don't deep copy it as we don't modify it //and this is a link to the RegressionTree train_set // deepCopyField(train_set, copies); }
virtual int PLearn::RegressionTreeLeave::outputsize | ( | ) | const [inline, virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 89 of file RegressionTreeLeave.h.
{return output_confidence_target?2:1;}
void PLearn::RegressionTreeLeave::printStats | ( | ) | [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 245 of file RegressionTreeLeave.cc.
References PLearn::endl(), getOutputAndError(), length_, output_confidence_target, PLearn::sqrt(), targets_sum, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
{ cout << " l " << length_; Vec output(2); Vec error(3); getOutputAndError(output,error); cout << " o0 " << output[0]; if(output_confidence_target) cout << " o1 " << output[1]; cout << " e0 " << error[0]; cout << " e1 " << error[1]; cout << " ws " << weights_sum; cout << " ts " << targets_sum; cout << " wts " << weighted_targets_sum; cout << " wsts " << weighted_squared_targets_sum; cout << " wts/ws " <<weighted_targets_sum/weights_sum; cout << " wsts/ws "<<weighted_squared_targets_sum/weights_sum; cout << " sqrt(wsts/ws) "<<sqrt(weighted_squared_targets_sum/weights_sum); cout << endl; }
void PLearn::RegressionTreeLeave::registerRow | ( | int | row | ) | [inline] |
Definition at line 100 of file RegressionTreeLeave.h.
{train_set->registerLeave(id, row);}
void PLearn::RegressionTreeLeave::removeLeave | ( | PP< RegressionTreeLeave > | leave | ) | [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 286 of file RegressionTreeLeave.cc.
References classname(), length_, PLERROR, targets_sum, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
{ if(leave->classname()=="RegressionTreeLeave" && classname()=="RegressionTreeLeave"){ length_ -= leave->length_; weights_sum -= leave->weights_sum; targets_sum -= leave->targets_sum; weighted_targets_sum -= leave->weighted_targets_sum; weighted_squared_targets_sum -= leave->weighted_squared_targets_sum; }else PLERROR("In RegressionTreeLeave::removeLeave subclass %s or %s must reimplement it.", classname().c_str(), leave->classname().c_str()); }
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 183 of file RegressionTreeLeave.cc.
References removeRow(), and train_set.
{ real weight = train_set->getWeight(row); real target = train_set->getTarget(row); removeRow(row, target, weight, output, error); }
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 189 of file RegressionTreeLeave.cc.
References length_, PLearn::pow(), targets_sum, weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
Referenced by removeRow().
{ length_ -= 1; weights_sum -= weight; targets_sum -= target; real squared_target = pow(target, 2); weighted_targets_sum -= weight * target; weighted_squared_targets_sum -= weight * squared_target; }
void PLearn::RegressionTreeLeave::removeRow | ( | int | row, |
real | target, | ||
real | weight, | ||
Vec | outputv, | ||
Vec | errorv | ||
) | [virtual] |
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 198 of file RegressionTreeLeave.cc.
References getOutputAndError(), and removeRow().
{ removeRow(row,target,weight); getOutputAndError(outputv, errorv); }
bool PLearn::RegressionTreeLeave::uniqTarget | ( | ) | [virtual] |
Definition at line 265 of file RegressionTreeLeave.cc.
References classname(), PLearn::fast_is_equal(), PLERROR, PLearn::sqrt(), weighted_squared_targets_sum, weighted_targets_sum, and weights_sum.
{ if(classname()=="RegressionTreeLeave"){ real wts_w = weighted_targets_sum/weights_sum; real wsts_w= sqrt(weighted_squared_targets_sum/weights_sum); return fast_is_equal(wts_w,wsts_w); }else PLERROR("In RegressionTreeLeave::uniqTarget subclass must reimplement it."); }
void PLearn::RegressionTreeLeave::verbose | ( | string | msg, |
int | level | ||
) | [private] |
Definition at line 299 of file RegressionTreeLeave.cc.
References PLearn::endl(), and verbosity.
friend class RegressionTreeNode [friend] |
Definition at line 53 of file RegressionTreeLeave.h.
friend class RegressionTreeRegisters [friend] |
Definition at line 54 of file RegressionTreeLeave.h.
Reimplemented from PLearn::Object.
Reimplemented in PLearn::RegressionTreeMulticlassLeave, PLearn::RegressionTreeMulticlassLeaveFast, and PLearn::RegressionTreeMulticlassLeaveProb.
Definition at line 84 of file RegressionTreeLeave.h.
Vec PLearn::RegressionTreeLeave::dummy_vec [static, private] |
Definition at line 55 of file RegressionTreeLeave.h.
Referenced by declareOptions().
RTR_type_id PLearn::RegressionTreeLeave::id |
Definition at line 65 of file RegressionTreeLeave.h.
Referenced by declareOptions().
int PLearn::RegressionTreeLeave::length_ [protected] |
Definition at line 74 of file RegressionTreeLeave.h.
Referenced by PLearn::RegressionTreeMulticlassLeaveProb::addLeave(), PLearn::RegressionTreeMulticlassLeaveFast::addLeave(), PLearn::RegressionTreeMulticlassLeave::addLeave(), addLeave(), PLearn::RegressionTreeMulticlassLeaveProb::addRow(), PLearn::RegressionTreeMulticlassLeaveFast::addRow(), PLearn::RegressionTreeMulticlassLeave::addRow(), addRow(), declareOptions(), PLearn::RegressionTreeMulticlassLeaveProb::getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveFast::getOutputAndError(), PLearn::RegressionTreeMulticlassLeave::getOutputAndError(), getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveProb::initStats(), PLearn::RegressionTreeMulticlassLeaveFast::initStats(), PLearn::RegressionTreeMulticlassLeave::initStats(), initStats(), PLearn::RegressionTreeMulticlassLeaveProb::printStats(), PLearn::RegressionTreeMulticlassLeaveFast::printStats(), PLearn::RegressionTreeMulticlassLeave::printStats(), printStats(), PLearn::RegressionTreeMulticlassLeaveProb::removeLeave(), PLearn::RegressionTreeMulticlassLeaveFast::removeLeave(), PLearn::RegressionTreeMulticlassLeave::removeLeave(), removeLeave(), PLearn::RegressionTreeMulticlassLeaveProb::removeRow(), PLearn::RegressionTreeMulticlassLeaveFast::removeRow(), PLearn::RegressionTreeMulticlassLeave::removeRow(), and removeRow().
Definition at line 79 of file RegressionTreeLeave.h.
Referenced by PLearn::RegressionTreeMulticlassLeaveFast::declareOptions(), PLearn::RegressionTreeMulticlassLeaveProb::declareOptions(), declareOptions(), PLearn::RegressionTreeMulticlassLeaveFast::getOutputAndError(), getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveProb::getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveFast::initStats(), initStats(), and PLearn::RegressionTreeMulticlassLeaveProb::initStats().
Definition at line 59 of file RegressionTreeLeave.h.
Referenced by declareOptions(), PLearn::RegressionTreeMulticlassLeave::initStats(), PLearn::RegressionTreeMulticlassLeaveFast::initStats(), initStats(), and PLearn::RegressionTreeMulticlassLeaveProb::initStats().
Definition at line 58 of file RegressionTreeLeave.h.
Referenced by declareOptions(), PLearn::RegressionTreeMulticlassLeave::getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveFast::getOutputAndError(), getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveProb::getOutputAndError(), and initLeave().
bool PLearn::RegressionTreeLeave::output_confidence_target = false [static] |
Definition at line 67 of file RegressionTreeLeave.h.
Referenced by declareOptions(), PLearn::RegressionTreeMulticlassLeave::getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveFast::getOutputAndError(), getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveFast::getOutputNames(), PLearn::RegressionTreeMulticlassLeave::getOutputNames(), getOutputNames(), and printStats().
real PLearn::RegressionTreeLeave::targets_sum [protected] |
Definition at line 76 of file RegressionTreeLeave.h.
Referenced by addLeave(), addRow(), declareOptions(), initStats(), printStats(), removeLeave(), and removeRow().
Definition at line 66 of file RegressionTreeLeave.h.
Referenced by PLearn::RegressionTreeMulticlassLeave::addRow(), PLearn::RegressionTreeMulticlassLeaveFast::addRow(), addRow(), PLearn::RegressionTreeMulticlassLeaveProb::addRow(), declareOptions(), initLeave(), removeRow(), PLearn::RegressionTreeMulticlassLeave::removeRow(), PLearn::RegressionTreeMulticlassLeaveFast::removeRow(), and PLearn::RegressionTreeMulticlassLeaveProb::removeRow().
int PLearn::RegressionTreeLeave::verbosity = 0 [static] |
Definition at line 60 of file RegressionTreeLeave.h.
Referenced by declareOptions(), and verbose().
Definition at line 78 of file RegressionTreeLeave.h.
Referenced by addLeave(), addRow(), declareOptions(), getOutputAndError(), initStats(), printStats(), removeLeave(), removeRow(), and uniqTarget().
Definition at line 77 of file RegressionTreeLeave.h.
Referenced by addLeave(), addRow(), declareOptions(), getOutputAndError(), initStats(), printStats(), removeLeave(), removeRow(), and uniqTarget().
real PLearn::RegressionTreeLeave::weights_sum [protected] |
Definition at line 75 of file RegressionTreeLeave.h.
Referenced by addLeave(), PLearn::RegressionTreeMulticlassLeaveFast::addLeave(), PLearn::RegressionTreeMulticlassLeaveProb::addLeave(), PLearn::RegressionTreeMulticlassLeave::addLeave(), PLearn::RegressionTreeMulticlassLeaveFast::addRow(), PLearn::RegressionTreeMulticlassLeave::addRow(), addRow(), PLearn::RegressionTreeMulticlassLeaveProb::addRow(), declareOptions(), PLearn::RegressionTreeMulticlassLeave::getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveFast::getOutputAndError(), getOutputAndError(), PLearn::RegressionTreeMulticlassLeaveProb::getOutputAndError(), PLearn::RegressionTreeMulticlassLeave::initStats(), PLearn::RegressionTreeMulticlassLeaveFast::initStats(), initStats(), PLearn::RegressionTreeMulticlassLeaveProb::initStats(), PLearn::RegressionTreeMulticlassLeave::printStats(), PLearn::RegressionTreeMulticlassLeaveProb::printStats(), PLearn::RegressionTreeMulticlassLeaveFast::printStats(), printStats(), removeLeave(), PLearn::RegressionTreeMulticlassLeave::removeLeave(), PLearn::RegressionTreeMulticlassLeaveFast::removeLeave(), PLearn::RegressionTreeMulticlassLeaveProb::removeLeave(), removeRow(), PLearn::RegressionTreeMulticlassLeave::removeRow(), PLearn::RegressionTreeMulticlassLeaveFast::removeRow(), PLearn::RegressionTreeMulticlassLeaveProb::removeRow(), and uniqTarget().