noparama  v0.0.1
Nonparametric Bayesian models
np_mcmc.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 #include <random>
5 
6 #include <membertrix.h>
7 
8 #include <np_data.h>
9 
10 #include <np_init_clusters.h>
11 #include <np_update_clusters.h>
13 
19 class MCMC {
20  private:
22  std::default_random_engine & _generator;
23 
25  membertrix _membertrix;
26 
28  InitClusters & _init_clusters;
29 
31  UpdateClusters & _update_clusters;
32 
34  UpdateClusterPopulation & _update_cluster_population;
35 
37  char _verbosity;
38 
40  bool _random_scan;
41 
43  int _subset_count;
44 
46  membertrix _max_likelihood_membertrix;
47 
49  double _max_likelihood;
50 
52  distribution_t & _likelihood;
53  protected:
60  void considerMaxLikelihood();
61 
62  public:
71  MCMC(
72  std::default_random_engine & generator,
73  InitClusters & init_clusters,
74  UpdateClusters & update_clusters,
75  UpdateClusterPopulation & update_cluster_population,
76  int subset_count,
77  distribution_t & likelihood
78  );
79 
86  void run(dataset_t & dataset, int T);
87 
93  const membertrix & getMembershipMatrix() const;
94 
95  const membertrix & getMaxLikelihoodMatrix() const;
96 };
Definition: np_update_clusters.h:15
const membertrix & getMembershipMatrix() const
Definition: np_mcmc.cpp:151
Definition: np_init_clusters.h:16
Definition: membertrix.h:52
Definition: pretty_print.hpp:112
void considerMaxLikelihood()
Definition: np_mcmc.cpp:159
void run(dataset_t &dataset, int T)
Definition: np_mcmc.cpp:43
MCMC(std::default_random_engine &generator, InitClusters &init_clusters, UpdateClusters &update_clusters, UpdateClusterPopulation &update_cluster_population, int subset_count, distribution_t &likelihood)
Definition: np_mcmc.cpp:22
Definition: np_mcmc.h:19
Definition: np_update_cluster_population.h:13
const membertrix & getMaxLikelihoodMatrix() const
Definition: np_mcmc.cpp:155