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

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

#include <STK_CategoricalBridge.h>

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

Public Types

enum  { idMixtureClass_ = Clust::Categorical_ }
 
typedef IMixtureBridge< CategoricalBridge< Id, Data > > Base
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::Mixture Mixture
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::Parameters Parameters
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::MissingIndexes MissingIndexes
 
typedef Data::Type Type
 
typedef MissingIndexes::const_iterator ConstIterator
 
- Public Types inherited from STK::IMixtureBridge< CategoricalBridge< Id, Data > >
enum  
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::Mixture Mixture
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::Data Data
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::Type Type
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::Parameters Parameters
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::MissingIndexes MissingIndexes
 
typedef hidden::MixtureBridgeTraits< CategoricalBridge< Id, Data > >::MissingValues MissingValues
 
typedef MissingIndexes::const_iterator ConstIterator
 

Public Member Functions

 CategoricalBridge (Data *p_dataij, String const &idData, int nbCluster)
 default constructor.
 
 CategoricalBridge (CategoricalBridge const &bridge)
 copy constructor
 
virtual ~CategoricalBridge ()
 destructor
 
virtual CategoricalBridgeclone () const
 This is a standard clone function in usual sense.
 
virtual CategoricalBridgecreate () const
 This is a standard create function in usual sense.
 
Type safeValue (int j) const
 Compute a safe value for the jth variable by counting the most present modality.
 
- Public Member Functions inherited from STK::IMixtureBridge< CategoricalBridge< 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

 CategoricalBridge (Mixture const &mixture, String const &idData, int nbCluster)
 protected constructor to use in order to create a bridge.
 

Additional Inherited Members

- Protected Member Functions inherited from STK::IMixtureBridge< CategoricalBridge< 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< CategoricalBridge< 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::CategoricalBridge< Id, Data >

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

This class inherit from the IMixtureBridge.

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

Definition at line 111 of file STK_CategoricalBridge.h.

Member Typedef Documentation

◆ Base

◆ ConstIterator

template<int Id, class Data >
typedef MissingIndexes::const_iterator STK::CategoricalBridge< Id, Data >::ConstIterator

Definition at line 128 of file STK_CategoricalBridge.h.

◆ MissingIndexes

template<int Id, class Data >
typedef hidden::MixtureBridgeTraits<CategoricalBridge<Id,Data>>::MissingIndexes STK::CategoricalBridge< Id, Data >::MissingIndexes

Definition at line 119 of file STK_CategoricalBridge.h.

◆ Mixture

◆ Parameters

Definition at line 118 of file STK_CategoricalBridge.h.

◆ Type

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

Definition at line 121 of file STK_CategoricalBridge.h.

Member Enumeration Documentation

◆ anonymous enum

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

Definition at line 123 of file STK_CategoricalBridge.h.

Constructor & Destructor Documentation

◆ CategoricalBridge() [1/3]

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

default constructor.

  • Remove the missing values from the data set,
  • initialize the mixture by setting the data set
    Parameters
    p_dataijpointer on the data set that will be used by the bridge.
    idDataid name of the mixture model
    nbClusternumber of cluster

Definition at line 193 of file STK_CategoricalBridge.h.

195{
197 mixture_.setData(*p_dataij_);
198}
IMixtureBridge< CategoricalBridge< Id, Data > > Base
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.

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

◆ CategoricalBridge() [2/3]

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

copy constructor

Definition at line 201 of file STK_CategoricalBridge.h.

201 : Base(bridge)
202{/*mixture_.setData(*p_dataij_);*/}

◆ ~CategoricalBridge()

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

destructor

Definition at line 146 of file STK_CategoricalBridge.h.

146{}

◆ CategoricalBridge() [3/3]

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

protected constructor to use in order to create a bridge.

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

Definition at line 180 of file STK_CategoricalBridge.h.

Member Function Documentation

◆ clone()

template<int Id, class Data >
virtual CategoricalBridge * STK::CategoricalBridge< 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 153 of file STK_CategoricalBridge.h.

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

◆ create()

template<int Id, class Data >
virtual CategoricalBridge * STK::CategoricalBridge< 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 class as that of calling object.

Implements STK::IMixture.

Definition at line 159 of file STK_CategoricalBridge.h.

160 {
161 CategoricalBridge* p_bridge = new CategoricalBridge( mixture_, this->idData(), this->nbCluster());
162 p_bridge->p_dataij_ = p_dataij_;
163 p_bridge->mixture_.setData(*p_dataij_);
164 p_bridge->v_missing_ = v_missing_;
165 return p_bridge;
166 }
MissingIndexes v_missing_
vector with the coordinates of the missing values

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

◆ safeValue()

template<int Id, class Data >
Data::Type STK::CategoricalBridge< Id, Data >::safeValue ( int  j) const

Compute a safe value for the jth variable by counting the most present modality.

Returns
a safe value for the jth variable
Parameters
jindex of the column with the safe value needed

Definition at line 210 of file STK_CategoricalBridge.h.

211{
212 int lmin = p_dataij_->col(j).safe().minElt(), lmax = p_dataij_->col(j).safe().maxElt();
213 Array2DVector<int> count(Range(lmin, lmax, 0), 0);
214 for (int i= p_dataij_->beginRows(); i < p_dataij_->endRows(); ++i)
215 {
216 if (!Arithmetic<int>::isNA(p_dataij_->elt(i,j)))
217 count[p_dataij_->elt(i,j)]++;
218 }
219 int l; count.maxElt(l);
220 return l;
221}
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().


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