3 #ifndef CELL_BASE_CLASSES_H_
4 #define CELL_BASE_CLASSES_H_
13 #include <boost/shared_ptr.hpp>
21 class Marginal_cell_base;
22 class Context_cell_base;
85 typedef boost::shared_ptr<Marginal_cell_base>
Self_ptr;
120 virtual void increment(
const size_t& table_code) = 0;
124 virtual void decrement(
const size_t& table_code) = 0;
162 typedef boost::shared_ptr<Context_cell_base>
Self_ptr;
169 static const double&
a();
170 static const double&
b();
200 double alpha()
const {
return alpha_;}
const size_t & count() const
get current count in this cell
Definition: Cell_base_classes.h:33
double table_backoff_weight() const
probability that a new table will draw from the level above this
Definition: Cell_base_classes.h:238
static const double & a()
Definition: Cell_base_classes.cpp:18
Definition: Cell_base_classes.h:156
Definition: Cell_base_classes.h:82
boost::shared_ptr< Context_cell_base > Context_ptr
Definition: Cell_base_classes.h:86
Marginal_cell_base()
constructor
Definition: Cell_base_classes.h:95
Definition: Cell_base_classes.h:24
double observation_backoff_weight() const
probability that a new customer will sit at a new table
Definition: Cell_base_classes.h:244
virtual size_t sample_table_assignment()=0
sample from the conditional predictive distribution of table assignment
double alpha() const
get the Dirichlet Process concentration parameter for this context
Definition: Cell_base_classes.h:200
virtual Self_ptr margin() const =0
get smoothed marginal cell ptr
virtual Context_ptr context() const =0
get ptr to conditioning context cell
Table_count_map per_table_counts_
Definition: Cell_base_classes.h:151
const size_t & table_count() const
get number of "tables" in this cell
Definition: Cell_base_classes.h:37
virtual double backoff_probability() const =0
prob of this outcome conditioned on starting a new table
boost::shared_ptr< Marginal_cell_base > Self_ptr
Definition: Cell_base_classes.h:85
Context_cell_base()
constructor
Definition: Cell_base_classes.h:180
size_t count_
Definition: Cell_base_classes.h:68
virtual void increment_table_count()
increment table count
Definition: Cell_base_classes.h:57
virtual void decrement()
decrement count
Definition: Cell_base_classes.h:49
virtual ~Cell()
virtual destructor
Definition: Cell_base_classes.h:77
virtual double smoothed_probability()=0
get smoothed probability estimate
virtual void increment()
increment count
Definition: Cell_base_classes.h:45
std::vector< size_t > Step_sizes
Definition: Cell_base_classes.h:28
void resample_alpha()
resample alpha value from conditional posterior
Definition: Cell_base_classes.cpp:21
std::map< size_t, size_t > Table_count_map
Definition: Cell_base_classes.h:87
double effective_observations() const
total mass for distribution over dish for a new customer
Definition: Cell_base_classes.h:232
virtual const Categorical_event_base & key() const =0
return variable values in this cell
virtual void decrement_diversity()
decrement the number of distinct outcomes from this context
Definition: Cell_base_classes.h:212
boost::shared_ptr< Context_cell_base > Self_ptr
Definition: Cell_base_classes.h:162
static const double & b()
Definition: Cell_base_classes.cpp:19
double effective_tables() const
total mass for distribution over the "dish" for a new table
Definition: Cell_base_classes.h:226
virtual void decrement_table_count()
decrement table count
Definition: Cell_base_classes.h:61
static bool VERBOSE
Definition: Cell_base_classes.h:29
virtual void increment_diversity()
increment the number of distinct outcomes from this context
Definition: Cell_base_classes.h:208
boost::shared_ptr< Cell > Self_ptr
Definition: Cell_base_classes.h:27
abstract base class for look-up keys
Definition: Categorical_event.h:58
int diversity() const
get number of distinct outcomes in this context
Definition: Cell_base_classes.h:196
size_t table_count_
Definition: Cell_base_classes.h:69
Cell()
default ctor
Definition: Cell_base_classes.h:73
virtual double predictive_probability() const =0
predictive probability of this outcome in this context