Thesis docs
Loading...
Searching...
No Matches
Likelihood.hpp
Go to the documentation of this file.
1
5
6#pragma once
7
8#include "Data.hpp"
9#include "Params.hpp"
10
20private:
21 const Data& data;
22 const Params& params;
23
24 // Precomputed values for efficiency
25 const double lgamma_delta1 = lgamma(params.delta1);
26 const double log_beta_alpha = log(params.beta) * params.alpha - lgamma(params.alpha);
27 const double lgamma_delta2 = lgamma(params.delta2);
28 const double log_gamma_zeta = log(params.gamma) * params.zeta - lgamma(params.zeta);
29
40 double compute_cohesion(int point_index, int cluster_index,
41 const Eigen::VectorXi cls_ass_k, int n_k) const;
42
53 double compute_repulsion(int point_index, int cluster_index,
54 const Eigen::VectorXi cls_ass_k, int n_k) const;
55
56public:
62 Likelihood(const Data& data, const Params& param) : data(data), params(param) {}
63
71 double cluster_loglikelihood(int cluster_index) const;
72
80 double cluster_loglikelihood(int cluster_index, const Eigen::VectorXi& cls_ass_k) const;
81
90 double point_loglikelihood_cond(int point_index, int cluster_index) const;
91
100 double point_loglikelihood_cond(int point_index, int cluster_index,
101 const Eigen::VectorXi& cls_ass_k) const;
102};
Data structure for managing point distances and cluster allocations.
Parameter management for Bayesian nonparametric MCMC models.
Manages distance matrices and cluster allocations for points.
Definition Data.hpp:26
double point_loglikelihood_cond(int point_index, int cluster_index, const Eigen::VectorXi &cls_ass_k) const
Calculates the conditional log-likelihood with explicit cluster assignments.
Likelihood(const Data &data, const Params &param)
Constructs a Likelihood object.
Definition Likelihood.hpp:62
double point_loglikelihood_cond(int point_index, int cluster_index) const
Calculates the conditional log-likelihood of assigning a point to a cluster.
Definition Likelihood.cpp:102
double cluster_loglikelihood(int cluster_index) const
Calculates the full log-likelihood of a cluster.
Definition Likelihood.cpp:14
Structure containing all parameters needed for the NGGP (Normalized Generalized Gamma Process) and DP...
Definition Params.hpp:35