STK++ 0.9.13
STK::PoissonBridge< Id, Data > Class Template Reference

template implementation of the IMixtureBridge interface allowing to bridge a STK++ Poisson mixture with the composer. More...

#include <STK_PoissonBridge.h>

Inheritance diagram for STK::PoissonBridge< Id, Data >:
Inheritance graph

Public Types

enum  { idMixtureClass_ = Clust::Poisson_ }
 
typedef IMixtureBridge< PoissonBridge< Id, Data > > Base
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::Mixture Mixture
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::Parameters Parameters
 
typedef Data::Type Type
 
typedef std::vector< std::pair< int, int > >::const_iterator ConstIterator
 
- Public Types inherited from STK::IMixtureBridge< PoissonBridge< Id, Data > >
enum  
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::Mixture Mixture
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::Data Data
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::Type Type
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::Parameters Parameters
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::MissingIndexes MissingIndexes
 
typedef hidden::MixtureBridgeTraits< PoissonBridge< Id, Data > >::MissingValues MissingValues
 
typedef MissingIndexes::const_iterator ConstIterator
 

Public Member Functions

 PoissonBridge (Data *p_dataij, String const &idData, int nbCluster)
 default constructor.
 
 PoissonBridge (PoissonBridge const &bridge)
 copy constructor
 
virtual ~PoissonBridge ()
 destructor
 
virtual PoissonBridgeclone () const
 This is a standard clone function in usual sense.
 
virtual PoissonBridgecreate () const
 This is a standard create function in usual sense.
 
Type safeValue (int j) const
 
- Public Member Functions inherited from STK::IMixtureBridge< PoissonBridge< Id, Data > >
Mixture constmixture () const
 
MissingIndexes constv_missing () const
 
Data *const p_dataij () const
 
int nbMissing () const
 
void getMissingValues (MissingValues &data) const
 get the (imputed) missing values of a data set.
 
void getParameters (Parameters &param) const
 get the parameters of the model
 
void getParameters (Array &param) const
 This function is used in order to get the current values of the parameters in an array.
 
void setParameters (Parameters const &param)
 set the parameters of the model
 
void setParameters (ExprBase< Array > const &param)
 This function is used in order to set the current values of the parameters to the parameters using an array.
 
virtual void initializeStep ()
 Initialize the mixture model before its use by the composer.
 
virtual Real lnComponentProbability (int i, int k)
 This function must be defined to return the component probability distribution function (PDF) for corresponding sample i and cluster k.
 
virtual void paramUpdateStep ()
 This function is equivalent to Mstep and must be defined to update parameters.
 
virtual void randomInit ()
 This function should be used in order to initialize randomly the parameters of the mixture.
 
virtual int nbFreeParameter () const
 This function must return the number of free parameters.
 
virtual int nbMissingValues () const
 This function must return the number of missing value in data set identified by idData_.
 
virtual void storeIntermediateResults (int iteration)
 This function should be used to store any intermediate results during various iterations after the burn-in period.
 
virtual void releaseIntermediateResults ()
 This step can be used to signal to the mixtures that they must release the stored results.
 
virtual void setParametersStep ()
 set the parameters of the model.
 
virtual void finalizeStep ()
 This step can be used by developer to finalize any thing.
 
virtual void imputationStep ()
 This function should be used for imputation of data.
 
virtual void samplingStep ()
 This function must be defined for simulation of all the latent variables and/or missing data excluding class labels.
 
virtual void writeParameters (ostream &os) const
 This function can be used to write summary of parameters to the output stream.
 
- Public Member Functions inherited from STK::IMixture
 IMixture (String const &idData=String())
 Constructor with identification character.
 
 IMixture (IMixture const &mixture)
 copy constructor.
 
virtual ~IMixture ()
 Virtual destructor.
 
String constidData () const
 
IMixtureStatModel const *const p_composer () const
 
void setMixtureModel (IMixtureStatModel const *p_composer)
 set the mixture composer to the mixture
 
virtual void writeParameters (std::ostream &out) const
 This function can be used to write summary of parameters on to the output stream.
 
- Public Member Functions inherited from STK::IRecursiveTemplate< Derived >
Derived & asDerived ()
 static cast : return a reference of this with a cast to the derived class.
 
Derived constasDerived () const
 static cast : return a const reference of this with a cast to the derived class.
 
Derived * asPtrDerived ()
 static cast : return a ptr on a Derived of this with a cast to the derived class.
 
Derived constasPtrDerived () const
 static cast : return a ptr on a constant Derived of this with a cast to the derived class.
 
Derived * clone () const
 create a leaf using the copy constructor of the Derived class.
 
Derived * clone (bool isRef) const
 create a leaf using the copy constructor of the Derived class and a flag determining if the clone is a reference or not.
 

Private Member Functions

 PoissonBridge (Mixture const &mixture, String const &idData, int nbCluster)
 private constructor used in order to create a bridge.
 

Additional Inherited Members

- Protected Member Functions inherited from STK::IMixtureBridge< PoissonBridge< Id, Data > >
 IMixtureBridge (Data *p_data, String const &idData, int nbCluster)
 default constructor.
 
 IMixtureBridge (IMixtureBridge const &bridge)
 copy constructor
 
 IMixtureBridge (Mixture const &mixture, String const &idData, int nbCluster)
 protected constructor to use in order to create a bridge.
 
virtual ~IMixtureBridge ()
 destructor
 
virtual std::vector< std::pair< int, int > >::size_type findMissing ()
 utility function for lookup the data set and find missing values coordinates.
 
virtual void removeMissing ()
 This function will be used once for imputation of missing data at the initialization step (.
 
- Protected Member Functions inherited from STK::IMixture
int nbSample () const
 This function can be used in derived classes to get number of samples.
 
int nbCluster () const
 This function can be used in derived classes to get number of classes.
 
CPointX constp_pk () const
 This function can be used in derived classes to get estimated number of individuals from the framework.
 
CPointX constp_tk () const
 This function can be used in derived classes to get proportions from the framework.
 
CArrayXX constp_tik () const
 This function can be used in derived classes to get posterior probabilities from the framework.
 
CVectorXi constp_zi () const
 This function can be used in derived classes to get class labels from the framework.
 
- Protected Member Functions inherited from STK::IRecursiveTemplate< Derived >
 IRecursiveTemplate ()
 constructor.
 
 ~IRecursiveTemplate ()
 destructor.
 
- Protected Attributes inherited from STK::IMixtureBridge< PoissonBridge< Id, Data > >
Mixture mixture_
 The Mixture to bridge with the composer.
 
MissingIndexes v_missing_
 vector with the coordinates of the missing values
 
Datap_dataij_
 pointer on the data set
 

Detailed Description

template<int Id, class Data>
class STK::PoissonBridge< Id, Data >

template implementation of the IMixtureBridge interface allowing to bridge a STK++ Poisson mixture with the composer.

Template Parameters
Idis any identifier of a concrete model deriving from the interface STK::IMixtureDensity class.

Definition at line 137 of file STK_PoissonBridge.h.

Member Typedef Documentation

◆ Base

Definition at line 141 of file STK_PoissonBridge.h.

◆ ConstIterator

template<int Id, class Data >
typedef std::vector<std::pair<int,int>>::const_iterator STK::PoissonBridge< Id, Data >::ConstIterator

Definition at line 150 of file STK_PoissonBridge.h.

◆ Mixture

Definition at line 142 of file STK_PoissonBridge.h.

◆ Parameters

Definition at line 143 of file STK_PoissonBridge.h.

◆ Type

template<int Id, class Data >
typedef Data::Type STK::PoissonBridge< Id, Data >::Type

Definition at line 144 of file STK_PoissonBridge.h.

Member Enumeration Documentation

◆ anonymous enum

template<int Id, class Data >
anonymous enum
Enumerator
idMixtureClass_ 

Definition at line 146 of file STK_PoissonBridge.h.

Constructor & Destructor Documentation

◆ PoissonBridge() [1/3]

template<int Id, class Data >
STK::PoissonBridge< Id, Data >::PoissonBridge ( Data p_dataij,
String const idData,
int  nbCluster 
)
inline

default constructor.

Remove the missing values from the data set and initialize the mixture by setting the data set.

Parameters
p_dataijpointer on the data set used by the bridge.
idDataid name of the mixture model
nbClusternumber of cluster

Definition at line 162 of file STK_PoissonBridge.h.

164 {
165 removeMissing(); // remove missing from data only once at creation
166 mixture_.setData(*p_dataij_);
167 }
virtual void removeMissing()
This function will be used once for imputation of missing data at the initialization step (.
Mixture mixture_
The Mixture to bridge with the composer.
String const & idData() const
int nbCluster() const
This function can be used in derived classes to get number of classes.
IMixtureBridge< PoissonBridge< Id, Data > > Base

References STK::IMixtureBridge< PoissonBridge< Id, Data > >::mixture_, STK::IMixtureBridge< PoissonBridge< Id, Data > >::p_dataij_, and STK::IMixtureBridge< PoissonBridge< Id, Data > >::removeMissing().

◆ PoissonBridge() [2/3]

template<int Id, class Data >
STK::PoissonBridge< Id, Data >::PoissonBridge ( PoissonBridge< Id, Data > const bridge)
inline

copy constructor

Definition at line 169 of file STK_PoissonBridge.h.

169: Base(bridge) {}

◆ ~PoissonBridge()

template<int Id, class Data >
virtual STK::PoissonBridge< Id, Data >::~PoissonBridge ( )
inlinevirtual

destructor

Definition at line 171 of file STK_PoissonBridge.h.

172 {
173#ifdef STK_MIXTURE_DEBUG_CREATE
174 stk_cout << _T("Entering PoissonBridge::~PoissonBridge()\n");
175 stk_cout << _T("this =") << this << _T("\n");
176#endif
177
178 }
#define stk_cout
Standard stk output stream.
#define _T(x)
Let x unmodified.

References _T, and stk_cout.

◆ PoissonBridge() [3/3]

template<int Id, class Data >
STK::PoissonBridge< Id, Data >::PoissonBridge ( Mixture const mixture,
String const idData,
int  nbCluster 
)
inlineprivate

private constructor used in order to create a bridge.

Parameters
mixturethe mixture to copy
idDataid name of the mixture
nbClusternumber of cluster

Definition at line 185 of file STK_PoissonBridge.h.

Member Function Documentation

◆ clone()

template<int Id, class Data >
virtual PoissonBridge * STK::PoissonBridge< Id, Data >::clone ( ) const
inlinevirtual

This is a standard clone function in usual sense.

It must be defined to provide new object of your class with values of various parameters equal to the values of calling object. In other words, this is equivalent to polymorphic copy constructor.

Returns
New instance of class as that of calling object.

Implements STK::IMixture.

Definition at line 195 of file STK_PoissonBridge.h.

195{ return new PoissonBridge(*this);}
PoissonBridge(Data *p_dataij, String const &idData, int nbCluster)
default constructor.

◆ create()

template<int Id, class Data >
virtual PoissonBridge * STK::PoissonBridge< Id, Data >::create ( ) const
inlinevirtual

This is a standard create function in usual sense.

It must be defined to provide new object of your class with correct dimensions and state. In other words, this is equivalent to virtual constructor.

Returns
New instance of PoissonBridge as that of calling object.

Implements STK::IMixture.

Definition at line 201 of file STK_PoissonBridge.h.

202 {
203#ifdef STK_MIXTURE_DEBUG_CREATE
204 stk_cout << _T("Entering PoissonBridge::create()\n");
205 stk_cout << _T("this =") << this << _T("\n");
206#endif
207
208 PoissonBridge* p_bridge = new PoissonBridge( mixture_, this->idData(), this->nbCluster());
209#ifdef STK_MIXTURE_DEBUG_CREATE
210 stk_cout << _T("p_bridge created\n");
211 stk_cout << _T("p_bridge =") << p_bridge << _T("\n");
212#endif
213 p_bridge->p_dataij_ = p_dataij_;
214 p_bridge->mixture_.setData(*p_dataij_);
215 p_bridge->v_missing_ = v_missing_;
216 return p_bridge;
217 }
MissingIndexes v_missing_
vector with the coordinates of the missing values

References _T, STK::IMixture::idData(), STK::IMixtureBridge< PoissonBridge< Id, Data > >::mixture_, STK::IMixture::nbCluster(), STK::IMixtureBridge< PoissonBridge< Id, Data > >::p_dataij_, STK::IRunnerSupervised< YArray_, XArray_, Weights_ >::setData(), stk_cout, and STK::IMixtureBridge< PoissonBridge< Id, Data > >::v_missing_.

◆ safeValue()

template<int Id, class Data >
Type STK::PoissonBridge< Id, Data >::safeValue ( int  j) const
inline
Returns
a safe value for the jth variable
Parameters
jindex of the column with the safe value needed

Definition at line 221 of file STK_PoissonBridge.h.

222 {
223 int lmin = p_dataij_->col(j).safe().minElt(), lmax = p_dataij_->col(j).safe().maxElt();
224 if (lmax -lmin > 10)
225 { return Real(p_dataij_->col(j).safe().sum())/p_dataij_->sizeRows();}
226 Array2DVector<int> count(Range(lmin, lmax, 0), 0);
227 for (int i= p_dataij_->beginRows(); i < p_dataij_->endRows(); ++i)
228 {
229 if (!Arithmetic<int>::isNA(p_dataij_->elt(i,j)))
230 count[p_dataij_->elt(i,j)]++;
231 }
232 int l; count.maxElt(l);
233 return l;
234 }
double Real
STK fundamental type of Real values.
hidden::SliceVisitorSelector< Derived, hidden::CountVisitor, Arrays::by_col_ >::type_result count(Derived const &A)
If A is a row-vector or a column-vector then the function will return the usual count value of the ve...
TRange< UnknownSize > Range
Definition STK_Range.h:59
static bool isNA(Type const &x)

References STK::count(), and STK::IMixtureBridge< PoissonBridge< Id, Data > >::p_dataij_.


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