Vowpal Wabbit
Classes | Functions
CLASSWEIGHTS Namespace Reference

Classes

struct  classweights
 

Functions

template<bool is_learn, int pred_type>
static void predict_or_learn (classweights &cweights, LEARNER::single_learner &base, example &ec)
 

Function Documentation

◆ predict_or_learn()

template<bool is_learn, int pred_type>
static void CLASSWEIGHTS::predict_or_learn ( classweights cweights,
LEARNER::single_learner base,
example ec 
)
static

Definition at line 47 of file classweight.cc.

References CLASSWEIGHTS::classweights::get_class_weight(), example::l, label_data::label, MULTICLASS::label_t::label, LEARNER::learner< T, E >::learn(), polylabel::multi, prediction_type::multiclass, LEARNER::learner< T, E >::predict(), prediction_type::scalar, polylabel::simple, and example::weight.

48 {
49  switch (pred_type)
50  {
52  ec.weight *= cweights.get_class_weight((uint32_t)ec.l.simple.label);
53  break;
55  ec.weight *= cweights.get_class_weight(ec.l.multi.label);
56  break;
57  default:
58  // suppress the warning
59  break;
60  }
61 
62  if (is_learn)
63  base.learn(ec);
64  else
65  base.predict(ec);
66 }
void predict(E &ec, size_t i=0)
Definition: learner.h:169
float label
Definition: simple_label.h:14
label_data simple
Definition: example.h:28
MULTICLASS::label_t multi
Definition: example.h:29
float get_class_weight(uint32_t klass)
Definition: classweight.cc:36
polylabel l
Definition: example.h:57
void learn(E &ec, size_t i=0)
Definition: learner.h:160
float weight
Definition: example.h:62