Vowpal Wabbit
Namespaces | Classes | Functions
VW::cb_explore_adf Namespace Reference

Namespaces

 bag
 
 cover
 
 first
 
 greedy
 
 regcb
 
 softmax
 

Classes

struct  cb_explore_adf_base
 

Functions

void sort_action_probs (v_array< ACTION_SCORE::action_score > &probs, const std::vector< float > &scores)
 
size_t fill_tied (v_array< ACTION_SCORE::action_score > &preds)
 

Function Documentation

◆ fill_tied()

size_t VW::cb_explore_adf::fill_tied ( v_array< ACTION_SCORE::action_score > &  preds)
inline

Definition at line 48 of file cb_explore_adf_common.h.

References v_array< T >::size().

Referenced by VW::cb_explore_adf::greedy::cb_explore_adf_greedy::predict_or_learn_impl(), VW::cb_explore_adf::bag::cb_explore_adf_bag::predict_or_learn_impl(), and VW::cb_explore_adf::cover::cb_explore_adf_cover::predict_or_learn_impl().

49 {
50  if (preds.size() == 0)
51  return 0;
52  size_t ret = 1;
53  for (size_t i = 1; i < preds.size(); ++i)
54  if (preds[i].score == preds[0].score)
55  ++ret;
56  else
57  return ret;
58  return ret;
59 }
size_t size() const
Definition: v_array.h:68

◆ sort_action_probs()

void VW::cb_explore_adf::sort_action_probs ( v_array< ACTION_SCORE::action_score > &  probs,
const std::vector< float > &  scores 
)
inline

Definition at line 29 of file cb_explore_adf_common.h.

References ACTION_SCORE::action_score::action, v_array< T >::begin(), v_array< T >::end(), and ACTION_SCORE::action_score::score.

Referenced by VW::cb_explore_adf::bag::cb_explore_adf_bag::predict_or_learn_impl(), and VW::cb_explore_adf::cover::cb_explore_adf_cover::predict_or_learn_impl().

30 {
31  // We want to preserve the score order in the returned action_probs if possible. To do this,
32  // sort top_actions and action_probs by the order induced in scores.
33  std::sort(probs.begin(), probs.end(),
34  [&scores](const ACTION_SCORE::action_score& as1, const ACTION_SCORE::action_score& as2) {
35  if (as1.score > as2.score)
36  return true;
37  else if (as1.score < as2.score)
38  return false;
39  // equal probabilities
40  if (scores[as1.action] < scores[as2.action])
41  return true;
42  else if (scores[as1.action] > scores[as2.action])
43  return false;
44  // equal probabilities and equal cost estimates
45  return as1.action < as2.action;
46  });
47 }
T *& begin()
Definition: v_array.h:42
T *& end()
Definition: v_array.h:43