Docs
Loading...
Searching...
No Matches
Module Class Referenceabstract

Abstract base class for modules used in clustering processes. This class defines the interface for modules that compute similarity contributions based on covariates or other factors. More...

#include <Module.hpp>

Inheritance diagram for Module:
BinaryCovariatesModule BinaryCovariatesModuleCache CategoricalCovariatesModule ContinuosCovariatesModule ContinuosCovariatesModuleCache SpatialModule SpatialModuleCache

Public Member Functions

 Module (const Eigen::VectorXi *old_allocations_provider_=nullptr, const std::unordered_map< int, std::vector< int > > *old_cluster_members_provider_=nullptr)
void set_old_allocations_provider (const Eigen::VectorXi *provider)
void set_old_cluster_members_provider (const std::unordered_map< int, std::vector< int > > *provider)
Similarity Computation Methods
virtual double compute_similarity_cls (int cls_idx, bool old_allo=false) const =0
 Compute similarity contribution for a cluster.
virtual double compute_similarity_obs (int obs_idx, int cls_idx) const =0
 Compute similarity for a single observation in a cluster.
virtual Eigen::VectorXd compute_similarity_obs (int obs_idx) const =0
 Compute covariate similarity contributions for all existing clusters.
virtual ~Module ()=default

Protected Attributes

const Eigen::VectorXi * old_allocations_provider
 Provider function for accessing old allocation state.
const std::unordered_map< int, std::vector< int > > * old_cluster_members_provider
 Provider function for accessing old cluster members map.

Detailed Description

Abstract base class for modules used in clustering processes. This class defines the interface for modules that compute similarity contributions based on covariates or other factors.

Constructor & Destructor Documentation

◆ Module()

Module::Module ( const Eigen::VectorXi * old_allocations_provider_ = nullptr,
const std::unordered_map< int, std::vector< int > > * old_cluster_members_provider_ = nullptr )
inline

◆ ~Module()

virtual Module::~Module ( )
virtualdefault

Member Function Documentation

◆ compute_similarity_cls()

virtual double Module::compute_similarity_cls ( int cls_idx,
bool old_allo = false ) const
pure virtual

Compute similarity contribution for a cluster.

Parameters
cls_idxIndex of the cluster (0 to K-1)
old_alloIf true, uses old allocations from old_allocations_provider; if false, uses current allocations from data (default: false)
Returns
Log marginal likelihood contribution (similarity score)

Implemented in BinaryCovariatesModule, BinaryCovariatesModuleCache, CategoricalCovariatesModule, ContinuosCovariatesModule, ContinuosCovariatesModuleCache, SpatialModule, and SpatialModuleCache.

◆ compute_similarity_obs() [1/2]

virtual Eigen::VectorXd Module::compute_similarity_obs ( int obs_idx) const
pure virtual

Compute covariate similarity contributions for all existing clusters.

Computes the predictive contributions for adding observation obs_idx to each existing cluster, considering covariate values.

Parameters
obs_idxIndex of the observation
Returns
Vector of log predictive density contributions for each cluster

Implemented in BinaryCovariatesModule, BinaryCovariatesModuleCache, CategoricalCovariatesModule, ContinuosCovariatesModule, ContinuosCovariatesModuleCache, SpatialModule, and SpatialModuleCache.

◆ compute_similarity_obs() [2/2]

virtual double Module::compute_similarity_obs ( int obs_idx,
int cls_idx ) const
pure virtual

Compute similarity for a single observation in a cluster.

Computes the predictive contribution when adding observation obs_idx to cluster cls_idx, considering the covariate values.

Parameters
obs_idxIndex of the observation
cls_idxIndex of the cluster
Returns
Log predictive density contribution

Used in Gibbs sampling to compute the probability of assigning an observation to a cluster based on covariate similarity.

Implemented in BinaryCovariatesModule, BinaryCovariatesModuleCache, CategoricalCovariatesModule, ContinuosCovariatesModule, ContinuosCovariatesModuleCache, SpatialModule, and SpatialModuleCache.

◆ set_old_allocations_provider()

void Module::set_old_allocations_provider ( const Eigen::VectorXi * provider)
inline

◆ set_old_cluster_members_provider()

void Module::set_old_cluster_members_provider ( const std::unordered_map< int, std::vector< int > > * provider)
inline

Member Data Documentation

◆ old_allocations_provider

const Eigen::VectorXi* Module::old_allocations_provider
protected

Provider function for accessing old allocation state.

Used when computing similarity based on previous cluster assignments (e.g., in split-merge algorithms).

◆ old_cluster_members_provider

const std::unordered_map<int, std::vector<int> >* Module::old_cluster_members_provider
protected

Provider function for accessing old cluster members map.


The documentation for this class was generated from the following file: