Vowpal Wabbit
Functions
confidence.h File Reference

Go to the source code of this file.

Functions

LEARNER::base_learnerconfidence_setup (VW::config::options_i &options, vw &all)
 

Function Documentation

◆ confidence_setup()

LEARNER::base_learner* confidence_setup ( VW::config::options_i options,
vw all 
)

Definition at line 86 of file confidence.cc.

References VW::config::option_group_definition::add(), VW::config::options_i::add_and_parse(), LEARNER::as_singleline(), LEARNER::init_learner(), LEARNER::make_base(), VW::config::make_option(), return_confidence_example(), LEARNER::learner< T, E >::set_finish_example(), setup_base(), and vw::training.

Referenced by parse_reductions().

87 {
88  bool confidence_arg = false;
89  bool confidence_after_training = false;
90  option_group_definition new_options("Confidence");
91  new_options.add(make_option("confidence", confidence_arg).keep().help("Get confidence for binary predictions"))
92  .add(make_option("confidence_after_training", confidence_after_training).help("Confidence after training"));
93  options.add_and_parse(new_options);
94 
95  if (!confidence_arg)
96  return nullptr;
97 
98  if (!all.training)
99  {
100  std::cout
101  << "Confidence does not work in test mode because learning algorithm state is needed. Use --save_resume when "
102  "saving the model and avoid --test_only"
103  << std::endl;
104  return nullptr;
105  }
106 
107  auto data = scoped_calloc_or_throw<confidence>();
108  data->all = &all;
109 
110  void (*learn_with_confidence_ptr)(confidence&, single_learner&, example&) = nullptr;
111  void (*predict_with_confidence_ptr)(confidence&, single_learner&, example&) = nullptr;
112 
113  if (confidence_after_training)
114  {
115  learn_with_confidence_ptr = predict_or_learn_with_confidence<true, true>;
116  predict_with_confidence_ptr = predict_or_learn_with_confidence<false, true>;
117  }
118  else
119  {
120  learn_with_confidence_ptr = predict_or_learn_with_confidence<true, false>;
121  predict_with_confidence_ptr = predict_or_learn_with_confidence<false, false>;
122  }
123 
124  // Create new learner
126  data, as_singleline(setup_base(options, all)), learn_with_confidence_ptr, predict_with_confidence_ptr);
127 
129 
130  return make_base(l);
131 }
base_learner * make_base(learner< T, E > &base)
Definition: learner.h:462
virtual void add_and_parse(const option_group_definition &group)=0
bool training
Definition: global_data.h:488
single_learner * as_singleline(learner< T, E > *l)
Definition: learner.h:476
void set_finish_example(void(*f)(vw &all, T &, E &))
Definition: learner.h:307
learner< T, E > & init_learner(free_ptr< T > &dat, L *base, void(*learn)(T &, L &, E &), void(*predict)(T &, L &, E &), size_t ws, prediction_type::prediction_type_t pred_type)
Definition: learner.h:369
typed_option< T > make_option(std::string name, T &location)
Definition: options.h:80
void return_confidence_example(vw &all, confidence &, example &ec)
Definition: confidence.cc:80
LEARNER::base_learner * setup_base(options_i &options, vw &all)
Definition: parse_args.cc:1222