38 #ifndef __ReducedVarianceModelBuilder_hxx
39 #define __ReducedVarianceModelBuilder_hxx
41 #include "ReducedVarianceModelBuilder.h"
47 #include "CommonTypes.h"
48 #include "Exceptions.h"
53 ReducedVarianceModelBuilder<T>::ReducedVarianceModelBuilder()
58 typename ReducedVarianceModelBuilder<T>::StatisticalModelType*
61 unsigned numberOfPrincipalComponents)
const
74 BuilderInfo::ParameterInfoList bi;
75 bi.push_back(BuilderInfo::KeyValuePair(
"NumberOfPincipalComponents ", Utils::toString(numberOfPrincipalComponents)));
77 BuilderInfo::DataInfoList di;
79 BuilderInfo builderInfo(
"ReducedVarianceModelBuilder", di, bi);
80 builderInfoList.push_back(builderInfo);
84 unsigned numComponentsForScores = std::min(static_cast<unsigned>(inputModel->
GetModelInfo().
GetScoresMatrix().rows()), numberOfPrincipalComponents);
99 double totalVariance)
const {
102 double modelVariance = pcaVariance.sum();
105 double cumulatedVariance = 0;
106 unsigned numComponentsToReachPrescribedVariance = 0;
107 for (
unsigned i = 0; i < pcaVariance.size(); i++) {
108 cumulatedVariance += pcaVariance(i);
109 numComponentsToReachPrescribedVariance++;
110 if (cumulatedVariance / modelVariance >= totalVariance)
113 return BuildNewModelWithLeadingComponents(inputModel, numComponentsToReachPrescribedVariance);
116 template <
typename T>
120 double totalVariance)
const {
122 return BuildNewModelWithVariance(inputModel, totalVariance);
const ModelInfo & GetModelInfo() const
Definition: StatisticalModel.hxx:493
MatrixType GetOrthonormalPCABasisMatrix() const
Definition: StatisticalModel.hxx:473
float GetNoiseVariance() const
Definition: StatisticalModel.hxx:447
StatisticalModelType * BuildNewModelWithVariance(const StatisticalModelType *model, double totalVariance) const
Definition: ReducedVarianceModelBuilder.hxx:97
const MatrixType & GetScoresMatrix() const
Definition: ModelInfo.cxx:74
Builds a new model which retains only the specified total variance.
Definition: ReducedVarianceModelBuilder.h:60
const VectorType & GetPCAVarianceVector() const
Definition: StatisticalModel.hxx:460
Holds information about the data and the parameters used by a specific modelbuilder.
Definition: ModelInfo.h:125
void SetModelInfo(const ModelInfo &modelInfo)
Definition: StatisticalModel.hxx:486
BuilderInfoList GetBuilderInfoList() const
Definition: ModelInfo.cxx:70
stores meta information about the model, such as e.g. the name (uri) of the datasets used to build th...
Definition: ModelInfo.h:61
const RepresenterType * GetRepresenter() const
Definition: StatisticalModel.h:564
const VectorType & GetMeanVector() const
Definition: StatisticalModel.hxx:454
StatisticalModelType * BuildNewModelWithLeadingComponents(const StatisticalModelType *model, unsigned numberOfPrincipalComponents) const
Definition: ReducedVarianceModelBuilder.hxx:59
A Point/Value pair that is used to specify a value at a given point.
Definition: StatisticalModel.h:100
ITK Wrapper for the statismo::StatisticalModel class.
Definition: itkStatisticalModel.h:62