SG++-Doxygen-Documentation
Loading...
Searching...
No Matches
sgpp::datadriven::SparseGridDensityEstimator Class Reference

#include <SparseGridDensityEstimator.hpp>

Inheritance diagram for sgpp::datadriven::SparseGridDensityEstimator:
sgpp::datadriven::DensityEstimator

Public Member Functions

void cov (base::DataMatrix &cov, base::DataMatrix *bounds=nullptr) override
 Computes the covariance of the density function.
 
size_t getDim () override
 get number of dimensions
 
virtual base::GridgetGrid ()
 returns the grid
 
size_t getNsamples () override
 get number of samples
 
std::shared_ptr< base::DataMatrixgetSamples () override
 returns the complete sample set
 
std::shared_ptr< base::DataVectorgetSamples (size_t dim) override
 returns the samples in the given dimension
 
virtual base::DataVectorgetSurpluses ()
 returns the surpluses
 
void initialize (base::DataMatrix &samples) override
 Estimate a sparse grid density based on the given data set and the specified configurations.
 
virtual sgpp::datadriven::SparseGridDensityEstimatormarginalize (size_t idim)
 Marginalize the density in one dimension and return result.
 
virtual sgpp::datadriven::SparseGridDensityEstimatormargToDimX (size_t idim)
 Compute marginal density.
 
double mean () override
 This method computes the mean of the density function.
 
void pdf (base::DataMatrix &points, base::DataVector &res) override
 Evaluation of the sparse grid density at a set of points.
 
double pdf (base::DataVector &x) override
 This methods evaluates the sparse grid density at a single point.
 
 SparseGridDensityEstimator (base::Grid &grid, base::DataVector &alpha, base::DataMatrix &samples)
 construct learner from given grid and coefficients
 
 SparseGridDensityEstimator (const SparseGridDensityEstimator &learnerSGDE)
 
 SparseGridDensityEstimator (sgpp::base::RegularGridConfiguration &gridConfig, sgpp::base::AdaptivityConfiguration &adaptivityConfig, sgpp::solver::SLESolverConfiguration &solverConfig, sgpp::datadriven::RegularizationConfiguration &regularizationConfig, CrossvalidationForRegularizationConfiguration &crossvalidationConfig, SGDEConfiguration &sgdeConfig)
 Constructor.
 
 SparseGridDensityEstimator (SparseGridDensityEstimatorConfiguration &learnerSGDEConfig)
 
virtual void train (base::Grid &grid, base::DataVector &alpha, base::DataMatrix &train, double lambdaReg)
 Does the learning step on a given grid, training set and regularization parameter lambda.
 
double variance () override
 Computes the variance of the density function.
 
 ~SparseGridDensityEstimator () override
 
- Public Member Functions inherited from sgpp::datadriven::DensityEstimator
virtual void corrcoef (base::DataMatrix &corr, base::DataMatrix *bounds=nullptr)
 
double crossEntropy (sgpp::base::DataMatrix &samples)
 
 DensityEstimator ()
 
virtual double std_deviation ()
 
virtual ~DensityEstimator ()
 

Protected Member Functions

std::shared_ptr< datadriven::DensitySystemMatrixcomputeDensitySystemMatrix (base::Grid &grid, base::DataMatrix &train, double lambdaReg)
 generates the density system matrix
 
base::OperationMatrixcomputeLTwoDotProductMatrix (base::Grid &grid)
 generates the L^2 dot product matrix
 
base::OperationMultipleEvalcomputeMultipleEvalMatrix (base::Grid &grid, base::DataMatrix &train)
 generates the MultipleEval matrix
 
base::OperationMatrixcomputeRegularizationMatrix (base::Grid &grid)
 generates the regularization matrix
 
double computeResidual (base::Grid &grid, base::DataVector &alpha, base::DataMatrix &test, double lambdaReg)
 Compute the residual for a given test data set on a learned grid.
 
std::shared_ptr< base::GridcreateRegularGrid ()
 generates a regular grid
 
double mean (base::Grid &grid, base::DataVector &alpha)
 
double optimizeLambdaCV ()
 Does cross-validation to obtain a suitable regularization parameter.
 
void splitset (std::vector< std::shared_ptr< base::DataMatrix > > &strain, std::vector< std::shared_ptr< base::DataMatrix > > &stest)
 splits the complete sample set in a set of smaller training and test samples for cross-validation.
 
double variance (base::Grid &grid, base::DataVector &alpha)
 

Protected Attributes

sgpp::base::AdaptivityConfiguration adaptivityConfig
 
std::shared_ptr< base::DataVectoralpha
 
CrossvalidationForRegularizationConfiguration crossvalidationConfig
 
std::shared_ptr< base::Gridgrid
 
sgpp::base::RegularGridConfiguration gridConfig
 
sgpp::datadriven::RegularizationConfiguration regularizationConfig
 
std::shared_ptr< base::DataMatrixsamples
 
SGDEConfiguration sgdeConfig
 
sgpp::solver::SLESolverConfiguration solverConfig
 

Constructor & Destructor Documentation

◆ SparseGridDensityEstimator() [1/4]

sgpp::datadriven::SparseGridDensityEstimator::SparseGridDensityEstimator ( sgpp::base::RegularGridConfiguration gridConfig,
sgpp::base::AdaptivityConfiguration adaptivityConfig,
sgpp::solver::SLESolverConfiguration solverConfig,
sgpp::datadriven::RegularizationConfiguration regularizationConfig,
CrossvalidationForRegularizationConfiguration crossvalidationConfig,
SGDEConfiguration sgdeConfig 
)

Constructor.

Parameters
gridConfiggrid configuration
adaptivityConfigadaptive refinement configuration
solverConfigsolver configuration (CG)
regularizationConfigconfig for regularization operator
crossvalidationConfigconfiguration for the cross validation
sgdeConfigconfiguration for the sparse grid density estimation

◆ SparseGridDensityEstimator() [2/4]

sgpp::datadriven::SparseGridDensityEstimator::SparseGridDensityEstimator ( SparseGridDensityEstimatorConfiguration learnerSGDEConfig)
explicit

◆ SparseGridDensityEstimator() [3/4]

sgpp::datadriven::SparseGridDensityEstimator::SparseGridDensityEstimator ( base::Grid grid,
base::DataVector alpha,
base::DataMatrix samples 
)

construct learner from given grid and coefficients

Parameters
grid
alpha
samples

References alpha, grid, and samples.

◆ SparseGridDensityEstimator() [4/4]

sgpp::datadriven::SparseGridDensityEstimator::SparseGridDensityEstimator ( const SparseGridDensityEstimator learnerSGDE)

◆ ~SparseGridDensityEstimator()

sgpp::datadriven::SparseGridDensityEstimator::~SparseGridDensityEstimator ( )
override

Member Function Documentation

◆ computeDensitySystemMatrix()

std::shared_ptr< datadriven::DensitySystemMatrix > sgpp::datadriven::SparseGridDensityEstimator::computeDensitySystemMatrix ( base::Grid grid,
base::DataMatrix train,
double  lambdaReg 
)
protected

generates the density system matrix

Parameters
gridgrid
traintrain
lambdaRegregularization parameter

References computeLTwoDotProductMatrix(), computeMultipleEvalMatrix(), computeRegularizationMatrix(), grid, and train().

Referenced by computeResidual(), and train().

◆ computeLTwoDotProductMatrix()

base::OperationMatrix * sgpp::datadriven::SparseGridDensityEstimator::computeLTwoDotProductMatrix ( base::Grid grid)
protected

generates the L^2 dot product matrix

Parameters
gridgrid

References sgpp::op_factory::createOperationLTwoDotProduct(), and grid.

Referenced by computeDensitySystemMatrix().

◆ computeMultipleEvalMatrix()

◆ computeRegularizationMatrix()

base::OperationMatrix * sgpp::datadriven::SparseGridDensityEstimator::computeRegularizationMatrix ( base::Grid grid)
protected

◆ computeResidual()

double sgpp::datadriven::SparseGridDensityEstimator::computeResidual ( base::Grid grid,
base::DataVector alpha,
base::DataMatrix test,
double  lambdaReg 
)
protected

Compute the residual for a given test data set on a learned grid.

$|(A - lambda C) alpha - 1/n B|$

This is used as quality criterion for the estimated density.

Parameters
gridgrid
alphacoefficient vector
testtest set
lambdaRegregularization parameter
Returns

References alpha, computeDensitySystemMatrix(), sgpp::base::DataVector::getSize(), grid, and sgpp::base::DataVector::l2Norm().

Referenced by optimizeLambdaCV().

◆ cov()

void sgpp::datadriven::SparseGridDensityEstimator::cov ( base::DataMatrix cov,
base::DataMatrix bounds = nullptr 
)
overridevirtual

Computes the covariance of the density function.

Implements sgpp::datadriven::DensityEstimator.

References alpha, cov(), sgpp::op_factory::createOperationCovariance(), and grid.

Referenced by python.uq.dists.Dist.Dist::corrcoeff(), and cov().

◆ createRegularGrid()

std::shared_ptr< base::Grid > sgpp::datadriven::SparseGridDensityEstimator::createRegularGrid ( )
protected

generates a regular grid

Returns
grid

References sgpp::base::Grid::createGrid(), gridConfig, and sgpp::base::GeneralGridConfiguration::level_.

Referenced by initialize(), and optimizeLambdaCV().

◆ getDim()

◆ getGrid()

◆ getNsamples()

size_t sgpp::datadriven::SparseGridDensityEstimator::getNsamples ( )
overridevirtual

get number of samples

Implements sgpp::datadriven::DensityEstimator.

References samples.

Referenced by getSamples(), and optimizeLambdaCV().

◆ getSamples() [1/2]

std::shared_ptr< base::DataMatrix > sgpp::datadriven::SparseGridDensityEstimator::getSamples ( )
overridevirtual

returns the complete sample set

Implements sgpp::datadriven::DensityEstimator.

References samples.

◆ getSamples() [2/2]

std::shared_ptr< base::DataVector > sgpp::datadriven::SparseGridDensityEstimator::getSamples ( size_t  dim)
overridevirtual

returns the samples in the given dimension

Parameters
dim

Implements sgpp::datadriven::DensityEstimator.

References getNsamples(), and samples.

◆ getSurpluses()

base::DataVector & sgpp::datadriven::SparseGridDensityEstimator::getSurpluses ( )
virtual

returns the surpluses

References alpha.

◆ initialize()

◆ marginalize()

SparseGridDensityEstimator * sgpp::datadriven::SparseGridDensityEstimator::marginalize ( size_t  idim)
virtual

Marginalize the density in one dimension and return result.

Parameters
idimdimension which should be marginalized

References alpha, sgpp::op_factory::createOperationDensityMarginalize(), grid, samples, and sgpp::base::DataMatrix::setColumn().

◆ margToDimX()

SparseGridDensityEstimator * sgpp::datadriven::SparseGridDensityEstimator::margToDimX ( size_t  idim)
virtual

Compute marginal density.

Parameters
idimdimension which should be left after marginalization

References alpha, sgpp::op_factory::createOperationDensityMargTo1D(), grid, samples, and sgpp::base::DataMatrix::setColumn().

◆ mean() [1/2]

double sgpp::datadriven::SparseGridDensityEstimator::mean ( )
overridevirtual

◆ mean() [2/2]

◆ optimizeLambdaCV()

◆ pdf() [1/2]

void sgpp::datadriven::SparseGridDensityEstimator::pdf ( base::DataMatrix points,
base::DataVector res 
)
overridevirtual

Evaluation of the sparse grid density at a set of points.

Parameters
pointsDataMatrix (nrows = number of samples, ncols = dimensionality)
resDataVector (size = number of samples) where the results are stored

Implements sgpp::datadriven::DensityEstimator.

References alpha, sgpp::op_factory::createOperationMultipleEval(), and grid.

Referenced by python.uq.dists.Dist.Dist::crossEntropy(), python.uq.dists.J.J::discretize(), python.uq.dists.Dist.Dist::klDivergence(), and python.uq.dists.Dist.Dist::l2error().

◆ pdf() [2/2]

double sgpp::datadriven::SparseGridDensityEstimator::pdf ( base::DataVector x)
overridevirtual

This methods evaluates the sparse grid density at a single point.

Parameters
xDataVector length equal to dimensionality

Implements sgpp::datadriven::DensityEstimator.

References alpha, sgpp::op_factory::createOperationEval(), and grid.

Referenced by python.uq.dists.Dist.Dist::crossEntropy(), python.uq.dists.J.J::discretize(), python.uq.dists.Dist.Dist::klDivergence(), and python.uq.dists.Dist.Dist::l2error().

◆ splitset()

void sgpp::datadriven::SparseGridDensityEstimator::splitset ( std::vector< std::shared_ptr< base::DataMatrix > > &  strain,
std::vector< std::shared_ptr< base::DataMatrix > > &  stest 
)
protected

splits the complete sample set in a set of smaller training and test samples for cross-validation.

Parameters
strainvector containing the training samples for cv
stestvector containing the test samples for cv

References crossvalidationConfig, sgpp::datadriven::CrossvalidationForRegularizationConfiguration::kfold_, samples, sgpp::datadriven::CrossvalidationForRegularizationConfiguration::seed_, sgpp::datadriven::CrossvalidationForRegularizationConfiguration::shuffle_, and sgpp::datadriven::CrossvalidationForRegularizationConfiguration::silent_.

Referenced by optimizeLambdaCV().

◆ train()

◆ variance() [1/2]

double sgpp::datadriven::SparseGridDensityEstimator::variance ( )
overridevirtual

Computes the variance of the density function.

Implements sgpp::datadriven::DensityEstimator.

References alpha, grid, and variance().

Referenced by variance().

◆ variance() [2/2]

double sgpp::datadriven::SparseGridDensityEstimator::variance ( base::Grid grid,
base::DataVector alpha 
)
protected

Member Data Documentation

◆ adaptivityConfig

sgpp::base::AdaptivityConfiguration sgpp::datadriven::SparseGridDensityEstimator::adaptivityConfig
protected

◆ alpha

◆ crossvalidationConfig

CrossvalidationForRegularizationConfiguration sgpp::datadriven::SparseGridDensityEstimator::crossvalidationConfig
protected

◆ grid

std::shared_ptr<base::Grid> sgpp::datadriven::SparseGridDensityEstimator::grid
protected

Referenced by python.uq.dists.SGDEdist.SGDEdist::__str__(), python.learner.Learner.Learner::applyData(), python.tools.Matrix::ApplyMatrix(), python.uq.dists.SGDEdist.SGDEdist::cdf(), computeDensitySystemMatrix(), computeLTwoDotProductMatrix(), computeMultipleEvalMatrix(), computeRegularizationMatrix(), computeResidual(), cov(), python.uq.learner.Interpolant.Interpolant::doLearningIteration(), python.learner.Learner.Learner::doLearningIteration(), python.learner.Classifier.Classifier::evalError(), python.uq.learner.Interpolant.Interpolant::evalError(), python.tools.Matrix::generateb(), python.controller.CheckpointController.CheckpointController::generateFoldValidationJob(), python.uq.learner.SimulationLearner.SimulationLearner::getCollocationNodes(), getGrid(), python.uq.learner.SimulationLearner.SimulationLearner::getGrid(), python.uq.learner.SimulationLearner.SimulationLearner::getLearner(), initialize(), python.learner.Learner.Learner::learnData(), python.learner.Learner.Learner::learnDataWithFolding(), python.uq.learner.Regressor.Regressor::learnDataWithFolding(), python.learner.Learner.Learner::learnDataWithTest(), python.uq.learner.Regressor.Regressor::learnDataWithTest(), python.controller.CheckpointController.CheckpointController::loadAll(), python.uq.operations.forcePositivity.operationMakePositive.OperationMakePositive::makePositive(), python.uq.operations.forcePositivity.operationMakePositiveFast.OperationMakePositiveFast::makePositive(), marginalize(), margToDimX(), mean(), mean(), python.uq.dists.SGDEdist.SGDEdist::mean(), optimizeLambdaCV(), pdf(), pdf(), python.uq.dists.SGDEdist.SGDEdist::pdf(), python.uq.dists.SGDEdist.SGDEdist::ppf(), python.learner.Classifier.Classifier::refineGrid(), python.learner.Regressor.Regressor::refineGrid(), python.uq.learner.Regressor.Regressor::refineGrid(), python.uq.learner.SimulationLearner.SimulationLearner::refineGrid(), python.controller.CheckpointController.CheckpointController::saveGrid(), python.controller.CheckpointController.CheckpointController::setGrid(), python.learner.Learner.Learner::setGrid(), python.uq.learner.Learner.Learner::setGrid(), SparseGridDensityEstimator(), SparseGridDensityEstimator(), python.uq.operations.forcePositivity.localFullGridSearch.LocalFullGrid::split(), python.uq.dists.SGDEdist.SGDEdist::toJson(), train(), python.uq.dists.SGDEdist.SGDEdist::var(), variance(), and variance().

◆ gridConfig

sgpp::base::RegularGridConfiguration sgpp::datadriven::SparseGridDensityEstimator::gridConfig
protected

◆ regularizationConfig

sgpp::datadriven::RegularizationConfiguration sgpp::datadriven::SparseGridDensityEstimator::regularizationConfig
protected

◆ samples

◆ sgdeConfig

SGDEConfiguration sgpp::datadriven::SparseGridDensityEstimator::sgdeConfig
protected

◆ solverConfig

sgpp::solver::SLESolverConfiguration sgpp::datadriven::SparseGridDensityEstimator::solverConfig
protected

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