C++ main module for mmsd Package
1.0
|
This class is a geneal MMSD Cluster. More...
#include <MMSD_Cluster.h>
Public Member Functions | |
void | setWeightInitializationType (const tString &type, const double &shape, const double &rate) |
set the weight initialization type More... | |
void | setWeightInitializationType (const tFlag &t, const double &shape, const double &rate) |
set the weight initialization type More... | |
void | setWeightInitializationType (const tFlag &t) |
set the weight initialization type More... | |
void | setMaxFreedomDegreeValue (const double &v) |
set the max freedom degree value More... | |
double | getMaxFreedomDegreeValue () const |
get the max freedom degree value More... | |
double | getRate () const |
get rate of the cluster which is the percent of samples in this cluster. More... | |
const MMSD_DoubleFullMatrix & | getWeights () const |
get the weight of sample 's property of size NxP More... | |
const MMSD_DoubleVector & | getFreedomDegrees () const |
get the freedom degree of property of size P More... | |
void | setLaw (SP::MMSD_Law law) |
set the law More... | |
const MMSD_Law * | getLaw () const |
get the law More... | |
tBoolean | isEmpty () const |
return true is the cluster is empty More... | |
virtual void | restore (const MMSD_DoubleFullMatrix &properties) |
restore the unstored values after a backup More... | |
virtual void | initialize (const int &clusterIndex, const MMSD_IntegerVector &clusterIndexSamples, const MMSD_DoubleFullMatrix &properties) |
initialize the cluster More... | |
void | updateRate (const MMSD_DoubleVector &clusterProbabilitiesSamples) |
update the rate of the cluster More... | |
void | updateWeights (const MMSD_DoubleVector &probs) |
update the weights of the cluster More... | |
void | updateLaw (const MMSD_DoubleFullMatrix &properties, const MMSD_DoubleVector &probs) |
update the law parameters More... | |
void | updateFreedomDegrees (const MMSD_DoubleVector &probs) |
update the freedom degrees More... | |
void | sort () |
sort the freedom degrees with respect to the law More... | |
void | computeMultivariateDensity (double *Pk) const |
compute the probabities of samples to be in cluster This More... | |
void | computeMultivariateDensity (MMSD_DoubleVector &Pk) const |
compute the probabities of samples to be in cluster This More... | |
virtual tString | toString () const |
turn the class into string More... | |
void | setHasBeenLoaded (const tBoolean &v) |
set the if the object has completely been loaded More... | |
tBoolean | hasBeenLoaded () const |
return true if the object has completely been loaded More... | |
void | getSharedPointer (SP::CORE_Object &p) |
get the shared pointer of this class into p More... | |
void | getSharedPointer (SPC::CORE_Object &p) const |
get the shared pointer of this class into p More... | |
tString | getClassName () const |
return the class name of the object More... | |
tString | getIdentityString () const |
return the identity string of the object of the form className_at_address More... | |
tString | getPointerAddress () const |
return the identity string of the object More... | |
template<class T > | |
tBoolean | isInstanceOf () const |
return true if the object is an instance of T More... | |
virtual void | print () |
print the class More... | |
virtual ostream & | print (ostream &out) const |
print the class More... | |
virtual void | print (const tString &message) |
print the class More... | |
virtual void | print (const tInteger &str) |
print More... | |
virtual void | print (const tRelativeInteger &str) |
print More... | |
virtual void | print (const tReal &str) |
print More... | |
virtual void | print (const int &str) |
print More... | |
Static Public Member Functions | |
static void | initSeed (const long int &v) |
init the seed with v value More... | |
static void | initSeed () |
init the seed More... | |
static tString | getClassName (const tString &identityString) |
return the class name of the object using only the identity string More... | |
template<class T > | |
static tString | getTypeName () |
get type name More... | |
static tBoolean | is64Architecture () |
return true if the machine is a 64 bits machine More... | |
static tBoolean | is32Architecture () |
return true if the machine is a 32 bits machine More... | |
static tString | pointer2String (const void *obj) |
return the string represantation of a pointer More... | |
static void | setOutput (ostream &out) |
set output More... | |
static ostream & | getOutput () |
get output More... | |
static void | printObjectsInMemory () |
print object in memory More... | |
static ostream & | print (ostream &out, const tString &message) |
print the class More... | |
static void | outputPrint (const tString &message) |
Static Public Attributes | |
static tBoolean | mIsMemoryTesting =false |
indicator to store all classes created and deleted only for debuging version More... | |
Protected Member Functions | |
MMSD_Cluster (void) | |
create an object More... | |
virtual | ~MMSD_Cluster (void) |
destroy an object. More... | |
virtual void | computeMultivariateDensity (const MMSD_DoubleFullMatrix &YP, const MMSD_DoubleFullMatrix &P, const MMSD_DoubleVector &D, const MMSD_DoubleVector &mean, const MMSD_DoubleVector &nu, double *Pk) const =0 |
compute the probabities of samples to be in cluster This from law, freedom degrees & weights More... | |
virtual void | updateWeights (const MMSD_DoubleFullMatrix &YP, const MMSD_DoubleFullMatrix &P, const MMSD_DoubleVector &D, const MMSD_DoubleVector &mean, const MMSD_DoubleVector &nu, const MMSD_DoubleVector &probs, MMSD_DoubleFullMatrix &W) const =0 |
compute the weights from law, freedom degrees & probabilites More... | |
virtual void | updateFreedomDegrees (const MMSD_DoubleFullMatrix &W, const MMSD_DoubleVector &probs, const double &maxFD, MMSD_DoubleVector &nus)=0 |
update the freedom degrees from weights & probabilities. More... | |
virtual void | saveToUIClass (UI_Class &mclass) const |
how to save the object from a mate model class More... | |
virtual void | loadFromUIClass (const UI_Class &mclass) |
how to load the object from a Meta Model class More... | |
void | setThis (SP::CORE_Object p) |
set this weak shared pointer called toDoAfterThis setting method More... | |
virtual void | setType (tString type) |
set the type of the object More... | |
virtual void | toDoAfterThisSetting () |
method called after setThis() method this method can oly be called once. More... | |
This class is a geneal MMSD Cluster.
A MMSD_Cluster has:
The initialization of the weight needs the Gamma distribution function STAT_GammaDistribution to perform its weight attribute array initialization in case of "gamma" of weight initialisation type MMSD_Cluster::setWeightInitializationType.
Weights , freedom degrees , rate & law are initialized by the MMQSD_Cluster::initialize() method.
Weights , freedom degrees , rate & law are updated, during EM iterations, by the methods:
|
protected |
|
protectedvirtual |
destroy an object.
|
inline |
compute the probabities of samples to be in cluster This
Referenced by computeMultivariateDensity(), and MMSD_Model::computeSampleClusterProbabilities().
|
inline |
compute the probabities of samples to be in cluster This
References computeMultivariateDensity(), LAP_Vector< T >::getValues(), and LAP_Vector< T >::setSize().
|
protectedpure virtual |
compute the probabities of samples to be in cluster This from law, freedom degrees & weights
YP | : Y.P matrix of size NxP |
P | : P eigen value decomposition matrix of cov(Y) of size PXP |
D | : D eigen value decomposition diagonal matrix of cov(Y) of size P |
mean | : mean value of the properties cluster of size P |
nu | : freedom degrees of the cluster of size P |
Pk | : output vector which is the probability of the sample i to be in the cluster This. Must be of size N |
Implemented in MMSD_GaussianCluster.
return the class name of the object using only the identity string
Referenced by UI_Class::createVector2D(), LAP_DoublePackedUpperMatrix::matrixProduct(), LAP_DoubleBandedUpperMatrix::matrixProduct(), LAP_DoubleFullUpperMatrix::matrixProduct(), and CORE_Object::printObjectsInMemory().
|
inherited |
return the class name of the object
References tString.
Referenced by CORE_Object::getIdentityString().
|
inline |
get the freedom degree of property of size P
|
inlineinherited |
return the identity string of the object of the form className_at_address
References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.
Referenced by UI_Class::createPrimitiveMap(), UI_Class::saveAssociation(), UI_Class::saveClass(), UI_ClassFactory::saveIntoClass(), MATH_StiefelFunction::toString(), LAP_2DView::toString(), CORE_Object::toString(), MATH_StiefelOptimizer::toString(), and MM_Class::toString().
|
inline |
get the law
|
inline |
get the max freedom degree value
Referenced by MMSD_GaussianCluster::MMSD_GaussianCluster().
|
inlinestaticinherited |
get output
|
inlineinherited |
return the identity string of the object
References CORE_Object::pointer2String().
|
inline |
get rate of the cluster which is the percent of samples in this cluster.
Referenced by MMSD_Model::computeSampleClusterProbabilities().
|
inlineinherited |
get the shared pointer of this class into p
Referenced by CORE_Map< Key, Value >::getSharedPointer(), CORE_Array< tFlag >::getSharedPointer(), LAP_ConstVector< lapack_real >::getSharedPointer(), STAT_Combinatorial< T >::getSharedPointer(), LAP_Vector< lapack_int >::getSharedPointer(), CORE_Vector< T >::getSharedPointer(), CORE_Matrix< T >::getSharedPointer(), and CORE_Object::printObjectsInMemory().
|
inlineinherited |
get the shared pointer of this class into p
|
inlinestaticinherited |
get type name
References tString.
|
inline |
get the weight of sample 's property of size NxP
|
inlineinherited |
return true if the object has completely been loaded
Referenced by UI_Class::loadAssociation().
|
virtual |
initialize the cluster
clusterIndex | index of the cluster This |
clusters | : clusters index of size N for each samples |
properties | matrix Y of properties of size N x P |
References LAP_DoubleFullGeneralMatrix::getColumnsNumber(), LAP_DoubleFullGeneralMatrix::getRowsNumber(), LAP_DoubleMatrix::getStorage(), LAP_DoubleMatrixStorage::getValues(), LAP_Vector< T >::getValues(), STAT_GammaDistribution::New(), null, LAP_DoubleFullGeneralMatrix::setSize(), and LAP_Vector< T >::setSize().
|
staticinherited |
init the seed with v value
References STAT_Distribution::initSeed().
|
staticinherited |
init the seed
References CORE_Time::getTime().
Referenced by MMSD_Object::MMSD_Object(), testGaussianLaw11N(), testGaussianLaw1PN(), and testGaussianLaw2PN().
|
inlinestaticinherited |
return true if the machine is a 32 bits machine
References CORE_Object::is64Architecture().
|
staticinherited |
return true if the machine is a 64 bits machine
Referenced by CORE_Object::is32Architecture().
|
inline |
return true is the cluster is empty
Referenced by MMSD_Model::esperanceEvaluation().
|
inlineinherited |
return true if the object is an instance of T
References null.
|
protectedvirtual |
how to load the object from a Meta Model class
Reimplemented from UI_Object.
References UI_Class::getInterfaceType(), UI_Class::loadAssociation(), UI_Class::loadField(), UI_Class::loadFullMatrixField(), LAP_DoubleFullGeneralMatrix::setValues(), LAP_Vector< T >::setValues(), and tBoolean.
|
staticinherited |
print on output
References null, and CORE_Object::print().
Referenced by CORE_Exception::CORE_Exception().
|
staticinherited |
return the string represantation of a pointer
References tString.
Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), and CORE_Object::~CORE_Object().
|
inlinevirtualinherited |
print the class
References CORE_Object::toString().
Referenced by CORE_Object::outputPrint(), CORE_Out::print(), CORE_Object::print(), CORE_Out::printInt(), CORE_Out::println(), CORE_Out::printReal(), CORE_Out::printString(), and CORE_Out::setAction().
|
inlinevirtualinherited |
print the class
References CORE_Object::print(), and CORE_Object::toString().
|
virtualinherited |
print the class
Reimplemented in CORE_Out.
References null, and CORE_Object::print().
|
virtualinherited |
References null.
|
virtualinherited |
References null.
|
inlinestaticinherited |
print the class
|
staticinherited |
print object in memory
References CORE_Object::getClassName(), CORE_Object::getSharedPointer(), and CORE_Object::mIsMemoryTesting.
Referenced by main().
|
virtual |
restore the unstored values after a backup
|
protectedvirtual |
how to save the object from a mate model class
Reimplemented from UI_Object.
References LAP_DoubleFullGeneralMatrix::getColumnsNumber(), UI_Class::getInterfaceType(), LAP_DoubleFullGeneralMatrix::getRowsNumber(), LAP_Vector< T >::getSize(), LAP_DoubleMatrix::getStorage(), LAP_DoubleMatrixStorage::getValues(), LAP_Vector< T >::getValues(), UI_Class::saveAssociation(), UI_Class::saveField(), and UI_Class::saveFullMatrixField().
|
inlineinherited |
set the if the object has completely been loaded
Referenced by UI_Class::loadAssociation().
|
inline |
set the law
|
inline |
set the max freedom degree value
v | max freedom value |
By default set to 299
|
inlinestaticinherited |
set output
|
inlineprotectedinherited |
set this weak shared pointer called toDoAfterThis setting method
References CORE_Object::toDoAfterThisSetting().
|
inlineprotectedvirtualinherited |
set the type of the object
Referenced by LAP_IntegerVector::LAP_IntegerVector(), MATH_BetaFunction::MATH_BetaFunction(), MATH_C1Function::MATH_C1Function(), MATH_DigammaFunction::MATH_DigammaFunction(), MATH_EigenFunction::MATH_EigenFunction(), MATH_Equation::MATH_Equation(), MATH_Function::MATH_Function(), MATH_GammaFunction::MATH_GammaFunction(), MATH_KeplerFunction::MATH_KeplerFunction(), MATH_LogGammaFunction::MATH_LogGammaFunction(), MATH_NewtonEquation::MATH_NewtonEquation(), MATH_StiefelFunction::MATH_StiefelFunction(), MATH_StiefelOptimizer::MATH_StiefelOptimizer(), MATH_TranscendentEquation::MATH_TranscendentEquation(), MATH_TrigammaFunction::MATH_TrigammaFunction(), MATH_ZeroEquation::MATH_ZeroEquation(), MATH_ZKeplerFunction::MATH_ZKeplerFunction(), MM_Attribute::MM_Attribute(), MM_Class::MM_Class(), MM_ClassFactory::MM_ClassFactory(), MM_Data::MM_Data(), MM_Structure::MM_Structure(), MMSD_ClassFactory::MMSD_ClassFactory(), MMSD_Cluster(), MMSD_ConstDoubleVector::MMSD_ConstDoubleVector(), MMSD_ConstraintGaussianCluster::MMSD_ConstraintGaussianCluster(), MMSD_ConstraintGaussianModel::MMSD_ConstraintGaussianModel(), MMSD_DataSet::MMSD_DataSet(), MMSD_DataSetClassFactory::MMSD_DataSetClassFactory(), MMSD_DoubleFullMatrix::MMSD_DoubleFullMatrix(), MMSD_DoubleSymmetricMatrix::MMSD_DoubleSymmetricMatrix(), MMSD_DoubleVector::MMSD_DoubleVector(), MMSD_FluryGautschiGaussianLaw::MMSD_FluryGautschiGaussianLaw(), MMSD_GaussianCluster::MMSD_GaussianCluster(), MMSD_GaussianFDFunction::MMSD_GaussianFDFunction(), MMSD_GaussianLaw::MMSD_GaussianLaw(), MMSD_GaussianModel::MMSD_GaussianModel(), MMSD_Law::MMSD_Law(), MMSD_Model::MMSD_Model(), MMSD_ModelClassFactory::MMSD_ModelClassFactory(), MMSD_Object::MMSD_Object(), MMSD_StiefelFunction::MMSD_StiefelFunction(), MMSD_StiefelGaussianLaw::MMSD_StiefelGaussianLaw(), STAT_BernoulliDistribution::STAT_BernoulliDistribution(), STAT_BinomialDistribution::STAT_BinomialDistribution(), STAT_Combinatorial< T >::STAT_Combinatorial(), STAT_DiracDistribution::STAT_DiracDistribution(), STAT_Distribution::STAT_Distribution(), STAT_ExponentialDistribution::STAT_ExponentialDistribution(), STAT_GammaDistribution::STAT_GammaDistribution(), STAT_GeometricDistribution::STAT_GeometricDistribution(), STAT_InverseNormalDistribution::STAT_InverseNormalDistribution(), STAT_NormalDistribution::STAT_NormalDistribution(), STAT_Object::STAT_Object(), STAT_PoissonDistribution::STAT_PoissonDistribution(), STAT_UniformDistribution::STAT_UniformDistribution(), and STAT_UniformLaplaceTransform::STAT_UniformLaplaceTransform().
|
inline |
set the weight initialization type
type | of weight initialization ["gamma" or "constant"] |
shape | : parameter for statistic function weight initialization |
rate | : parameter for statistic function weight initialization |
References CORE_String::toLower(), and tString.
Referenced by setWeightInitializationType().
|
inline |
set the weight initialization type
type | of weight initialization MMSD_Cluster::GAMMA_WEIGHT_INITIALIZATION, MMSD_Cluster::CONSTANT_WEIGHT_INITIALIZATION |
shape | : parameter for statistic function weight initialization |
rate | : parameter for statistic function weight initialization |
|
inline |
set the weight initialization type
type | of weight initialization MMSD_Cluster::GAMMA_WEIGHT_INITIALIZATION, MMSD_Cluster::CONSTANT_WEIGHT_INITIALIZATION |
References setWeightInitializationType().
|
inline |
sort the freedom degrees with respect to the law
Referenced by MMSD_Model::esperanceMaximization().
|
inlineprotectedvirtualinherited |
method called after setThis() method this method can oly be called once.
Reimplemented in STAT_UniformLaplaceTransform.
Referenced by CORE_Object::setThis(), and STAT_UniformLaplaceTransform::toDoAfterThisSetting().
|
inlinevirtual |
turn the class into string
Reimplemented from CORE_Object.
Reimplemented in MMSD_GaussianCluster, and MMSD_ConstraintGaussianCluster.
References CORE_Object::toString(), and tString.
Referenced by MMSD_GaussianCluster::toString().
|
inline |
update the freedom degrees
Referenced by MMSD_Model::esperanceMaximization().
|
protectedpure virtual |
update the freedom degrees from weights & probabilities.
W | weights of the cluster of size NxP |
probs | : probability of each sample to be in This cluster of size N |
maxFD | max value of freedom degrees see MMSD_Cluster::setMaxFreedomDegreeValue() |
nus | output value of freedom degrees of size P |
Implemented in MMSD_GaussianCluster, and MMSD_ConstraintGaussianCluster.
|
inline |
update the law parameters
Referenced by MMSD_Model::esperanceMaximization().
void MMSD_Cluster::updateRate | ( | const MMSD_DoubleVector & | clusterProbabilitiesSamples | ) |
update the rate of the cluster
clusterProbabilitiesSamples | probability of each sample to be in this cluster |
References LAP_Vector< T >::getSize(), and LAP_Vector< T >::getValues().
Referenced by MMSD_Model::esperanceEvaluation().
|
inline |
update the weights of the cluster
Referenced by MMSD_Model::esperanceEvaluation().
|
protectedpure virtual |
compute the weights from law, freedom degrees & probabilites
YP | : Y.P matrix of size NxP |
P | : P eigen value decomposition matrix of cov(Y) of size PXP |
D | : D eigen value decomposition diagonal matrix of cov(Y) of size P |
mean | : mean value of the properties cluster of size P |
nu | : freedom degrees of the cluster of size P |
probs | : probability of the sample i in(0,N[ to be in the cluster This. |
W | : output weight matrix of size NxP |
Implemented in MMSD_GaussianCluster.
|
staticinherited |
indicator to store all classes created and deleted only for debuging version
Referenced by CORE_Object::CORE_Object(), main(), CORE_Object::printObjectsInMemory(), and CORE_Object::~CORE_Object().