![]() |
aGrUM 3.1.1
a C++ library for (probabilistic) graphical models
|
the class for computing the NML penalty used by MIIC More...
#include <kNML.h>
Public Member Functions | |
Constructors / Destructors | |
| KNML (const DBRowGeneratorParser &parser, const Prior &prior, const std::vector< std::pair< std::size_t, std::size_t > > &ranges, const Bijection< NodeId, std::size_t > &nodeId2columns=Bijection< NodeId, std::size_t >()) | |
| default constructor | |
| KNML (const DBRowGeneratorParser &parser, const Prior &prior, const Bijection< NodeId, std::size_t > &nodeId2columns=Bijection< NodeId, std::size_t >()) | |
| default constructor | |
| KNML (const KNML &from) | |
| copy constructor | |
| KNML (KNML &&from) | |
| move constructor | |
| virtual KNML * | clone () const |
| virtual copy constructor | |
| ~KNML () override | |
| destructor | |
Operators | |
| KNML & | operator= (const KNML &from) |
| copy operator | |
| KNML & | operator= (KNML &&from) |
| move operator | |
Accessors / Modifiers | |
| double | score (NodeId var1, NodeId var2) |
| returns the kNML penalty for a pair of nodes | |
| double | score (NodeId var1, NodeId var2, const std::vector< NodeId > &rhs_ids) |
| returns the kNML penalty for a pair of nodes given conditioning nodes | |
| void | clear () override |
| clears all the data structures from memory, including the C_n^r cache | |
| void | clearCache () override |
| clears the current C_n^r cache | |
| void | useCache (const bool on_off) override |
| turn on/off the use of the C_n^r cache | |
Accessors / Modifiers | |
| void | setNumberOfThreads (Size nb) override |
| sets the number max of threads that can be used | |
| Size | getNumberOfThreads () const override |
| returns the current max number of threads of the scheduler | |
| bool | isGumNumberOfThreadsOverriden () const override |
| indicates whether the user set herself the number of threads | |
| virtual void | setMinNbRowsPerThread (const std::size_t nb) const |
| changes the number min of rows a thread should process in a multithreading context | |
| virtual std::size_t | minNbRowsPerThread () const |
| returns the minimum of rows that each thread should process | |
| void | setRanges (const std::vector< std::pair< std::size_t, std::size_t > > &new_ranges) |
| sets new ranges to perform the counts | |
| void | clearRanges () |
| reset the ranges to the one range corresponding to the whole database | |
| const std::vector< std::pair< std::size_t, std::size_t > > & | ranges () const |
| returns the current ranges | |
| const Bijection< NodeId, std::size_t > & | nodeId2Columns () const |
| return the mapping between the columns of the database and the node ids | |
| const DatabaseTable & | database () const |
| return the database used by the score | |
Protected Attributes | |
| const double | one_log2_ {M_LOG2E} |
| 1 / log(2) | |
| Prior * | prior_ {nullptr} |
| the expert knowledge prior added to the contingency tables | |
| RecordCounter | counter_ |
| the record counter used for the counts over discrete variables | |
| ScoringCache | cache_ |
| the scoring cache | |
| bool | use_cache_ {true} |
| a Boolean indicating whether we wish to use the cache | |
| const std::vector< NodeId > | empty_ids_ |
| an empty vector | |
| gum::learning::KNML::KNML | ( | const DBRowGeneratorParser & | parser, |
| const Prior & | prior, | ||
| const std::vector< std::pair< std::size_t, std::size_t > > & | ranges, | ||
| const Bijection< NodeId, std::size_t > & | nodeId2columns = Bijection< NodeId, std::size_t >() ) |
default constructor
| parser | the parser used to parse the database |
| prior | An prior that we add to the computation of the score (this should come from expert knowledge): this consists in adding numbers to counts in the contingency tables |
| ranges | a set of pairs {(X1,Y1),...,(Xn,Yn)} of database's rows indices. The counts are then performed only on the union of the rows [Xi,Yi), i in {1,...,n}. This is useful, e.g, when performing cross validation tasks, in which part of the database should be ignored. An empty set of ranges is equivalent to an interval [X,Y) ranging over the whole database. |
| nodeId2Columns | a mapping from the ids of the nodes in the graphical model to the corresponding column in the DatabaseTable parsed by the parser. This enables estimating from a database in which variable A corresponds to the 2nd column the parameters of a BN in which variable A has a NodeId of 5. An empty nodeId2Columns bijection means that the mapping is an identity, i.e., the value of a NodeId is equal to the index of the column in the DatabaseTable. |
References gum::learning::CachedContingencyCounter::ranges().
Referenced by KNML(), KNML(), clone(), operator=(), and operator=().
| gum::learning::KNML::KNML | ( | const DBRowGeneratorParser & | parser, |
| const Prior & | prior, | ||
| const Bijection< NodeId, std::size_t > & | nodeId2columns = Bijection< NodeId, std::size_t >() ) |
default constructor
| parser | the parser used to parse the database |
| prior | An prior that we add to the computation of the score (this should come from expert knowledge): this consists in adding numbers to counts in the contingency tables |
| nodeId2Columns | a mapping from the ids of the nodes in the graphical model to the corresponding column in the DatabaseTable parsed by the parser. This enables estimating from a database in which variable A corresponds to the 2nd column the parameters of a BN in which variable A has a NodeId of 5. An empty nodeId2Columns bijection means that the mapping is an identity, i.e., the value of a NodeId is equal to the index of the column in the DatabaseTable. |
| gum::learning::KNML::KNML | ( | const KNML & | from | ) |
| gum::learning::KNML::KNML | ( | KNML && | from | ) |
|
override |
destructor
|
overridevirtual |
clears all the data structures from memory, including the C_n^r cache
Reimplemented from gum::learning::CachedContingencyCounter.
|
overridevirtual |
clears the current C_n^r cache
Reimplemented from gum::learning::CachedContingencyCounter.
|
inherited |
reset the ranges to the one range corresponding to the whole database
|
nodiscardvirtual |
|
inherited |
return the database used by the score
|
overridevirtualinherited |
returns the current max number of threads of the scheduler
Implements gum::IThreadNumberManager.
|
overridevirtualinherited |
indicates whether the user set herself the number of threads
Implements gum::IThreadNumberManager.
|
virtualinherited |
returns the minimum of rows that each thread should process
|
inherited |
return the mapping between the columns of the database and the node ids
|
inherited |
returns the current ranges
Referenced by CachedContingencyCounter(), gum::learning::IndependenceTest::IndependenceTest(), gum::learning::IndepTestChi2::IndepTestChi2(), gum::learning::IndepTestG2::IndepTestG2(), and gum::learning::KNML::KNML().
returns the kNML penalty for a pair of nodes
| double gum::learning::KNML::score | ( | NodeId | var1, |
| NodeId | var2, | ||
| const std::vector< NodeId > & | rhs_ids ) |
returns the kNML penalty for a pair of nodes given conditioning nodes
|
virtualinherited |
changes the number min of rows a thread should process in a multithreading context
|
overridevirtualinherited |
sets the number max of threads that can be used
Implements gum::IThreadNumberManager.
|
inherited |
sets new ranges to perform the counts
|
overridevirtual |
turn on/off the use of the C_n^r cache
Reimplemented from gum::learning::CachedContingencyCounter.
|
protectedinherited |
the scoring cache
Definition at line 171 of file cachedContingencyCounter.h.
|
protectedinherited |
the record counter used for the counts over discrete variables
Definition at line 168 of file cachedContingencyCounter.h.
|
protectedinherited |
an empty vector
Definition at line 177 of file cachedContingencyCounter.h.
|
protectedinherited |
the expert knowledge prior added to the contingency tables
Definition at line 165 of file cachedContingencyCounter.h.
|
protectedinherited |
a Boolean indicating whether we wish to use the cache
Definition at line 174 of file cachedContingencyCounter.h.