![]() |
SG++-Doxygen-Documentation
|
Class to host all methods required to perform the harmonica algorithm. More...
#include <Harmonica.hpp>
Public Member Functions | |
| bool | addConstraint (size_t idx, int bias) |
| Adds a constraint based on an entry in the parity row. More... | |
| void | calculateConstrainedSpace (const DataVector &transformedScores, double lambda, int shrink) |
| Second step of the harmonica algorithm. More... | |
| bool | checkConstraints () |
| Tests all constraints for validity in the current bit configuration. More... | |
| void | createRandomConfigs (size_t nBits, std::vector< int > &configIDs, int seed, size_t start) |
| Function to create a vector of random numbers within the valid range of possible configurations without duplicates. More... | |
| void | fixConfigBits (bool resetFree) |
| resolves constraints, fixing free and dependent bits More... | |
| Harmonica (FitterFactory *fitterFactory) | |
| Constructor. More... | |
| int | moveToNewSpace (int configID, std::vector< ConfigurationBit *> oldFreeBits) |
| Recalculates a configID to the new constrained binary space. More... | |
| void | prepareConfigs (std::vector< ModelFittingBase *> &fitters, int seed, std::vector< std::string > &configStrings) |
| First step in harmonica. More... | |
| void | resetBits () |
| resets bits to be able to resolve constraints again More... | |
| void | setParameters (int configID, size_t matrixrow) |
| Sets bits and the resulting parameter configuration based on a configID while simultaneously creating one row of the parity function matrix. More... | |
| void | transformScores (const DataVector &source, DataVector &target) |
| Transforms scores to accentuate the optimum. More... | |
Protected Attributes | |
| std::vector< ConfigurationBit * > | configBits |
| all configuration bits More... | |
| std::vector< int > | configIDs |
| binary configurations as integers More... | |
| std::vector< std::unique_ptr< ConfigurationRestriction > > | constraints |
| all constraints that currently exist More... | |
| FitterFactory * | fitterFactory |
| pointer to the fitterFactory to produce fitters for each configuration More... | |
| std::vector< ConfigurationBit * > | freeBits |
| bits that are not dependent on other bits More... | |
| base::DataMatrix | paritymatrix |
| matrix that holds the values of the parity function (predictors for regression) for all samples More... | |
| std::vector< std::vector< ConfigurationBit * > > | parityrow |
| row to create the parity matrix and the constraints More... | |
| DataVector | savedScores |
| Scores saved for moving configurations to new space. More... | |
Class to host all methods required to perform the harmonica algorithm.
|
explicit |
Constructor.
| fitterFactory | to produce fitter type objects |
References configBits, freeBits, and sgpp::datadriven::FitterFactory::getConfigBits().
| bool sgpp::datadriven::Harmonica::addConstraint | ( | size_t | idx, |
| int | bias | ||
| ) |
Adds a constraint based on an entry in the parity row.
| idx | index of the parity row that holds pointers to the bits that will be constrained |
| bias | bias value of the constraint |
References checkConstraints(), constraints, fixConfigBits(), parityrow, and resetBits().
Referenced by calculateConstrainedSpace().
| void sgpp::datadriven::Harmonica::calculateConstrainedSpace | ( | const DataVector & | transformedScores, |
| double | lambda, | ||
| int | shrink | ||
| ) |
Second step of the harmonica algorithm.
Calculates relavance of ConfigurationBits and introduces constraints to reduce the search space
| transformedScores | input (possibly transformed) scores after evaluation |
| lambda | used for regression |
| shrink | number of constraints to introduce |
References addConstraint(), alpha, configIDs, DEFAULT_RES_THRESHOLD, freeBits, g, sgpp::base::DataMatrix::getNcols(), python.statsfileInfo::i, moveToNewSpace(), sgpp::base::DataVector::normalize(), paritymatrix, parityrow, and savedScores.
| bool sgpp::datadriven::Harmonica::checkConstraints | ( | ) |
Tests all constraints for validity in the current bit configuration.
References constraints.
Referenced by addConstraint(), and moveToNewSpace().
| void sgpp::datadriven::Harmonica::createRandomConfigs | ( | size_t | nBits, |
| std::vector< int > & | configIDs, | ||
| int | seed, | ||
| size_t | start | ||
| ) |
Function to create a vector of random numbers within the valid range of possible configurations without duplicates.
| nBits | number of bits a configuration consists of |
| configIDs | container to store generated random configuration ID's |
| seed | to use in random generator |
| start | to offset newly generated ID's from existing ones from previous iterations |
References python.statsfileInfo::i, and sgpp::combigrid::pow().
Referenced by prepareConfigs().
| void sgpp::datadriven::Harmonica::fixConfigBits | ( | bool | resetFree | ) |
resolves constraints, fixing free and dependent bits
References configBits, constraints, and freeBits.
Referenced by addConstraint(), moveToNewSpace(), and setParameters().
| int sgpp::datadriven::Harmonica::moveToNewSpace | ( | int | configID, |
| std::vector< ConfigurationBit *> | oldFreeBits | ||
| ) |
Recalculates a configID to the new constrained binary space.
| configID | binary configuration in old space as integer |
| oldFreeBits | bits that received the old binary values |
References checkConstraints(), fixConfigBits(), freeBits, m, and resetBits().
Referenced by calculateConstrainedSpace().
| void sgpp::datadriven::Harmonica::prepareConfigs | ( | std::vector< ModelFittingBase *> & | fitters, |
| int | seed, | ||
| std::vector< std::string > & | configStrings | ||
| ) |
First step in harmonica.
Configurations are prepared for evaluation and the parity function matrix is constructed for later use.
| fitters | container to store fitters for evaluation outside the class |
| seed | for random sampling |
| configStrings | container to store information about the configurations in string form |
References sgpp::datadriven::FitterFactory::buildFitter(), configIDs, createRandomConfigs(), fitterFactory, freeBits, python.statsfileInfo::i, m, paritymatrix, parityrow, sgpp::datadriven::FitterFactory::printConfig(), chess::seed, and setParameters().
| void sgpp::datadriven::Harmonica::resetBits | ( | ) |
resets bits to be able to resolve constraints again
References configBits, and constraints.
Referenced by addConstraint(), moveToNewSpace(), and setParameters().
| void sgpp::datadriven::Harmonica::setParameters | ( | int | configID, |
| size_t | matrixrow | ||
| ) |
Sets bits and the resulting parameter configuration based on a configID while simultaneously creating one row of the parity function matrix.
| configID | bits of the configuration as an integer |
| matrixrow | index of the row of the parity matrix to be filled |
References fitterFactory, fixConfigBits(), freeBits, python.statsfileInfo::i, paritymatrix, parityrow, resetBits(), sgpp::base::DataMatrix::set(), sgpp::datadriven::FitterFactory::setHarmonica(), and analyse_erg::tmp.
Referenced by prepareConfigs().
| void sgpp::datadriven::Harmonica::transformScores | ( | const DataVector & | source, |
| DataVector & | target | ||
| ) |
Transforms scores to accentuate the optimum.
| source | |
| target |
References python.statsfileInfo::i, and sgpp::combigrid::pow().
|
protected |
all configuration bits
Referenced by fixConfigBits(), Harmonica(), and resetBits().
|
protected |
binary configurations as integers
Referenced by calculateConstrainedSpace(), and prepareConfigs().
|
protected |
all constraints that currently exist
Referenced by addConstraint(), checkConstraints(), fixConfigBits(), and resetBits().
|
protected |
pointer to the fitterFactory to produce fitters for each configuration
Referenced by prepareConfigs(), and setParameters().
|
protected |
bits that are not dependent on other bits
Referenced by calculateConstrainedSpace(), fixConfigBits(), Harmonica(), moveToNewSpace(), prepareConfigs(), and setParameters().
|
protected |
matrix that holds the values of the parity function (predictors for regression) for all samples
Referenced by calculateConstrainedSpace(), prepareConfigs(), and setParameters().
|
protected |
row to create the parity matrix and the constraints
Referenced by addConstraint(), calculateConstrainedSpace(), prepareConfigs(), and setParameters().
|
protected |
Scores saved for moving configurations to new space.
Referenced by calculateConstrainedSpace().