![]() |
SG++-Doxygen-Documentation
|
#include <DBMatOnlineDEOrthoAdapt.hpp>
Public Member Functions | |
| void | add_new_refine_point (sgpp::base::DataVector &x) |
| Adds new DataVector to list of refined points For testing purposes only. More... | |
| DBMatOnlineDEOrthoAdapt (DBMatOffline &offline, Grid &grid, double lambda, double beta=0.) | |
| Constructor. More... | |
| sgpp::base::DataMatrix & | getB () |
| Returns the additive component of the sherman-morrison-formula, which yields all the information about the refined points. More... | |
| std::vector< sgpp::base::DataVector > * | getRefinedPointsPointer () |
| Gets pointer to the container of refined points, only for testing purposes. More... | |
| void | sherman_morrison_adapt (size_t newPoints, bool refine, std::vector< size_t > coarsen_indices={}) |
| Rank-one updates/downdates the system matrix, based on the Sherman-Morrison-formula In the current version of the function, the refinePts already are adapted to the regularization parameter lambda. More... | |
| std::vector< size_t > | updateSystemMatrixDecomposition (DensityEstimationConfiguration &densityEstimationConfig, Grid &grid, size_t numAddedGridPoints, std::list< size_t > deletedGridPointIndices, double lambda) override |
Public Member Functions inherited from sgpp::datadriven::DBMatOnlineDE | |
| void | computeDensityFunction (DataVector &alpha, Grid &grid, DensityEstimationConfiguration &densityEstimationConfig, bool do_cv=false) |
| Computes the density function again based on the saved b's (only applicable for streaming) More... | |
| void | computeDensityFunction (DataVector &alpha, DataMatrix &m, Grid &grid, DensityEstimationConfiguration &densityEstimationConfig, bool save_b=false, bool do_cv=false, std::list< size_t > *deletedPoints=nullptr, size_t newPoints=0) |
| Computes the density function for a certain data matrix. More... | |
| DBMatOnlineDE (DBMatOffline &offline, Grid &grid, double lambda, double beta=0.) | |
| Constructor. More... | |
| double | eval (DataVector &alpha, const DataVector &p, Grid &grid, bool force=false) |
| Evaluates the density function at a certain point. More... | |
| void | eval (DataVector &alpha, DataMatrix &values, DataVector &results, Grid &grid, bool force=false) |
| Evaluates the density function on multiple points. More... | |
| double | getBeta () |
| Returns the current weighting factor. More... | |
| bool | isComputed () |
| Returns if the surplus has already been computed. More... | |
| double | normalize (DataVector &alpha, Grid &grid, size_t samples=1000) |
| Normalize the Density. More... | |
| double | normalizeQuadrature (DataVector &alpha, Grid &grid) |
| Normalize the Density using Quadrature. More... | |
| void | setBeta (double beta) |
| Sets the weighting factor. More... | |
| void | updateRhs (size_t gridSize, std::list< size_t > *deletedPoints) |
| Restructures the rhs (b vector) of the system matrix. More... | |
Public Member Functions inherited from sgpp::datadriven::DBMatOnline | |
| DBMatOnline (DBMatOffline &o) | |
| Constructor. More... | |
| DBMatOnline (const DBMatOnline &rhs)=delete | |
| DBMatOnline (DBMatOnline &&rhs)=default | |
| DBMatOffline & | getOfflineObject () |
| Returns a reference to the offline object. More... | |
| const DBMatOffline & | getOfflineObject () const |
| DBMatOnline & | operator= (const DBMatOnline &rhs)=delete |
| DBMatOnline & | operator= (DBMatOnline &&rhs)=default |
| void | setLambda (double lambda) |
| Changes the weighting factor for the regularization term, if possible (might depend on the kind of decomposition for classification) More... | |
| virtual | ~DBMatOnline ()=default |
| Destructor. More... | |
Protected Member Functions | |
| void | solveSLE (DataVector &alpha, DataVector &b, Grid &grid, DensityEstimationConfiguration &densityEstimationConfig, bool do_cv) override |
| Solves the system (R + lambda*I) * alpha = b, and obtains alpha The solving is done after offline and online phase and works as follows: (R + lambda*I)^{-1} * b = ((Q*T^{-1}*Q^{t} + B) * b = alpha, where B holds the refine/coarsen information. More... | |
Protected Member Functions inherited from sgpp::datadriven::DBMatOnlineDE | |
| double | computeL2Error (DataVector &alpha, Grid &grid) |
| double | resDensity (DataVector &alpha, Grid &grid) |
Protected Attributes | |
| sgpp::base::DataMatrix | b_adapt_matrix_ |
| bool | b_is_refined |
| size_t | current_refine_index |
| std::vector< sgpp::base::DataVector > | refined_points_ |
Protected Attributes inherited from sgpp::datadriven::DBMatOnlineDE | |
| double | beta |
| DataVector | bSave |
| DataVector | bTotalPoints |
| bool | functionComputed |
| double | lambda |
| double | normFactor |
| size_t | oDim |
| DataMatrix * | testMat |
| DataMatrix * | testMatRes |
| size_t | totalPoints |
Protected Attributes inherited from sgpp::datadriven::DBMatOnline | |
| DBMatOffline & | offlineObject |
|
explicit |
Constructor.
| offline | The offline object we base our evaluations on. |
| lambda | The regularization strength (TODO(fuchsgruber) remove this) |
| grid | The underlying grid (TODO(fuchsgruber) do we need this?) |
| beta | The initial weighting factor |
References b_adapt_matrix_, b_is_refined, current_refine_index, sgpp::datadriven::DBMatOffline::getDecompositionType(), sgpp::datadriven::OrthoAdapt, and refined_points_.
|
inline |
Adds new DataVector to list of refined points For testing purposes only.
| x | The DataVector to add |
References refined_points_.
|
inline |
Returns the additive component of the sherman-morrison-formula, which yields all the information about the refined points.
References b_adapt_matrix_.
Referenced by sgpp::datadriven::DBMatOnlineDE::computeDensityFunction(), and solveSLE().
|
inline |
Gets pointer to the container of refined points, only for testing purposes.
References python.uq.operations.discretizeProduct::refine(), refined_points_, sherman_morrison_adapt(), and updateSystemMatrixDecomposition().
| void sgpp::datadriven::DBMatOnlineDEOrthoAdapt::sherman_morrison_adapt | ( | size_t | newPoints, |
| bool | refine, | ||
| std::vector< size_t > | coarsen_indices = {} |
||
| ) |
Rank-one updates/downdates the system matrix, based on the Sherman-Morrison-formula In the current version of the function, the refinePts already are adapted to the regularization parameter lambda.
| newPoints | number of refined points |
| refine | decides: true for refine, false for coarsen |
| coarsen_indices | the indices of points to coarsen |
References b_adapt_matrix_, b_is_refined, current_refine_index, sgpp::base::DataVector::get(), sgpp::base::DataMatrix::get(), sgpp::base::DataMatrix::getColumn(), sgpp::base::HashGridStorage::getDimension(), sgpp::datadriven::DBMatOffline::getGridSize(), sgpp::base::HashGridStorage::getLevelIndexArraysForEval(), sgpp::base::DataMatrix::getNcols(), sgpp::base::DataMatrix::getNrows(), sgpp::base::DataMatrix::getPointer(), sgpp::datadriven::DBMatOfflineOrthoAdapt::getQ(), sgpp::base::DataMatrix::getRow(), sgpp::base::HashGridStorage::getSize(), sgpp::base::Grid::getStorage(), sgpp::datadriven::DBMatOfflineOrthoAdapt::getTinv(), grid(), python.statsfileInfo::i, python.utils.statsfile2gnuplot::j, level, sgpp::datadriven::DBMatOnline::offlineObject, refined_points_, sgpp::base::DataMatrix::resizeQuadratic(), sgpp::base::DataMatrix::set(), sgpp::base::DataMatrix::setColumn(), and sgpp::base::DataMatrix::setRow().
Referenced by getRefinedPointsPointer(), and updateSystemMatrixDecomposition().
|
overrideprotectedvirtual |
Solves the system (R + lambda*I) * alpha = b, and obtains alpha The solving is done after offline and online phase and works as follows: (R + lambda*I)^{-1} * b = ((Q*T^{-1}*Q^{t} + B) * b = alpha, where B holds the refine/coarsen information.
| alpha | the datavetor where surplusses will be stored |
| b | The right hand side of the system |
| grid | the underlying grid |
| densityEstimationConfig | configuration for the density estimation |
| do_cv | Specifies, if cross-validation should be done (todo: currently not implemented) |
Implements sgpp::datadriven::DBMatOnlineDE.
References alpha, chess::b, getB(), sgpp::datadriven::DBMatOfflineOrthoAdapt::getQ(), sgpp::base::DataVector::getSize(), sgpp::datadriven::DBMatOfflineOrthoAdapt::getTinv(), sgpp::datadriven::DBMatOnline::offlineObject, sgpp::base::DataVector::resizeZero(), and sgpp::datadriven::DBMatDMSOrthoAdapt::solve().
|
overridevirtual |
| densityEstimationConfig | configuration for the density estimation |
| grid | the underlying grid |
| numAddedGridPoints | Number of grid points inserted at the end of the grid storage |
| deletedGridPointIndices | Indices of grid points that were deleted |
| lambda | The last best lambda value |
Reimplemented from sgpp::datadriven::DBMatOnline.
References sgpp::datadriven::DBMatOffline::getGridSize(), sgpp::datadriven::DBMatOnline::offlineObject, and sherman_morrison_adapt().
Referenced by getRefinedPointsPointer().
|
protected |
Referenced by DBMatOnlineDEOrthoAdapt(), getB(), and sherman_morrison_adapt().
|
protected |
Referenced by DBMatOnlineDEOrthoAdapt(), and sherman_morrison_adapt().
|
protected |
Referenced by DBMatOnlineDEOrthoAdapt(), and sherman_morrison_adapt().
|
protected |
Referenced by add_new_refine_point(), DBMatOnlineDEOrthoAdapt(), getRefinedPointsPointer(), and sherman_morrison_adapt().