Public Types | List of all members
gtsam::DecisionTreeFactor Class Reference

#include <DecisionTreeFactor.h>

Inheritance diagram for gtsam::DecisionTreeFactor:
Inheritance graph
[legend]

Public Types

typedef AlgebraicDecisionTree< KeyADT
 
typedef DiscreteFactor Base
 Typedef to base class. More...
 
using Binary = std::function< double(const double, const double)>
 
typedef std::shared_ptr< DecisionTreeFactorshared_ptr
 
typedef DecisionTreeFactor This
 
using Unary = std::function< double(const double &)>
 
using UnaryAssignment = std::function< double(const Assignment< Key > &, const double &)>
 
- Public Types inherited from gtsam::DiscreteFactor
typedef Factor Base
 Our base class. More...
 
using Binary = std::function< double(const double, const double)>
 
typedef std::shared_ptr< DiscreteFactorshared_ptr
 shared_ptr to this class More...
 
typedef DiscreteFactor This
 This class. More...
 
using Unary = std::function< double(const double &)>
 
using UnaryAssignment = std::function< double(const Assignment< Key > &, const double &)>
 
using Values = DiscreteValues
 backwards compatibility More...
 
using Names = DiscreteValues::Names
 Translation table from values to strings. More...
 
- Public Types inherited from gtsam::Factor
typedef KeyVector::const_iterator const_iterator
 Const iterator over keys. More...
 
typedef KeyVector::iterator iterator
 Iterator over keys. More...
 
- Public Types inherited from gtsam::AlgebraicDecisionTree< Key >
using Base = DecisionTree< Key, double >
 
- Public Types inherited from gtsam::DecisionTree< Key, double >
using Binary = std::function< double(const double &, const double &)>
 
using CompareFunc = std::function< bool(const double &, const double &)>
 
using LabelC = std::pair< Key, size_t >
 
using LabelFormatter = std::function< std::string(Key)>
 
using NodePtr = typename Node::Ptr
 
using Unary = std::function< double(const double &)>
 
using UnaryAssignment = std::function< double(const Assignment< Key > &, const double &)>
 
using ValueFormatter = std::function< std::string(double)>
 

Public Member Functions

Standard Constructors
 DecisionTreeFactor ()
 
 DecisionTreeFactor (const DiscreteKeys &keys, const ADT &potentials)
 
 DecisionTreeFactor (const DiscreteKeys &keys, const std::vector< double > &table)
 Constructor from doubles. More...
 
 DecisionTreeFactor (const DiscreteKeys &keys, const std::string &table)
 Constructor from string. More...
 
template<class SOURCE >
 DecisionTreeFactor (const DiscreteKey &key, SOURCE table)
 Single-key specialization. More...
 
 DecisionTreeFactor (const DiscreteKey &key, const std::vector< double > &row)
 Single-key specialization, with vector of doubles. More...
 
 DecisionTreeFactor (const DiscreteConditional &c)
 
Testable
bool equals (const DiscreteFactor &other, double tol=1e-9) const override
 equality More...
 
void print (const std::string &s="DecisionTreeFactor:\n", const KeyFormatter &formatter=DefaultKeyFormatter) const override
 print More...
 
Advanced Interface
DecisionTreeFactor apply (Unary op) const
 
DecisionTreeFactor apply (UnaryAssignment op) const
 
DecisionTreeFactor apply (const DecisionTreeFactor &f, Binary op) const
 
shared_ptr combine (size_t nrFrontals, Binary op) const
 
shared_ptr combine (const Ordering &keys, Binary op) const
 
std::vector< std::pair< DiscreteValues, double > > enumerate () const
 Enumerate all values into a map from values to double. More...
 
std::vector< double > probabilities () const
 Get all the probabilities in order of assignment values. More...
 
double computeThreshold (const size_t N) const
 Compute the probability value which is the threshold above which only N leaves are present. More...
 
DecisionTreeFactor prune (size_t maxNrAssignments) const
 Prune the decision tree of discrete variables. More...
 
Wrapper support
void dot (std::ostream &os, const KeyFormatter &keyFormatter=DefaultKeyFormatter, bool showZero=true) const
 
void dot (const std::string &name, const KeyFormatter &keyFormatter=DefaultKeyFormatter, bool showZero=true) const
 
std::string dot (const KeyFormatter &keyFormatter=DefaultKeyFormatter, bool showZero=true) const
 
std::string markdown (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const override
 Render as markdown table. More...
 
std::string html (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const override
 Render as html table. More...
 
HybridValues methods.
double error (const HybridValues &values) const override
 
- Public Member Functions inherited from gtsam::DiscreteFactor
 DiscreteFactor ()
 
template<typename CONTAINER >
 DiscreteFactor (const CONTAINER &keys, const std::map< Key, size_t > cardinalities={})
 
void print (const std::string &s="DiscreteFactor\n", const KeyFormatter &formatter=DefaultKeyFormatter) const override
 print More...
 
DiscreteKeys discreteKeys () const
 Return all the discrete keys associated with this factor. More...
 
std::map< Key, size_tcardinalities () const
 
size_t cardinality (Key j) const
 
double operator() (const DiscreteValues &values) const
 Find value for given assignment of values to variables. More...
 
double error (const HybridValues &c) const override
 
virtual AlgebraicDecisionTree< KeyerrorTree () const
 Compute error for each assignment and return as a tree. More...
 
- Public Member Functions inherited from gtsam::Factor
virtual ~Factor ()=default
 Default destructor. More...
 
bool empty () const
 Whether the factor is empty (involves zero variables). More...
 
Key front () const
 First key. More...
 
Key back () const
 Last key. More...
 
const_iterator find (Key key) const
 find More...
 
const KeyVectorkeys () const
 Access the factor's involved variable keys. More...
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
virtual void printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
 print only keys More...
 
bool equals (const This &other, double tol=1e-9) const
 check equality More...
 
KeyVectorkeys ()
 
iterator begin ()
 
iterator end ()
 
- Public Member Functions inherited from gtsam::AlgebraicDecisionTree< Key >
 AlgebraicDecisionTree (const AlgebraicDecisionTree< M > &other, const std::map< M, Key > &map)
 
 AlgebraicDecisionTree (const Base &add)
 
 AlgebraicDecisionTree (const DecisionTree< Key, X > &other, Func f)
 Create from an arbitrary DecisionTree<L, X> by operating on it with a functional f. More...
 
 AlgebraicDecisionTree (const Key &label, double y1, double y2)
 
 AlgebraicDecisionTree (const std::vector< typename Base::LabelC > &labelCs, const std::string &table)
 Create from keys and string table. More...
 
 AlgebraicDecisionTree (const std::vector< typename Base::LabelC > &labelCs, const std::vector< double > &ys)
 Create from keys with cardinalities and a vector table. More...
 
 AlgebraicDecisionTree (const typename Base::LabelC &labelC, double y1, double y2)
 Create a new leaf function splitting on a variable. More...
 
 AlgebraicDecisionTree (double leaf=1.0)
 
 AlgebraicDecisionTree (Iterator begin, Iterator end, const Key &label)
 Create a range of decision trees, splitting on a single variable. More...
 
bool equals (const AlgebraicDecisionTree &other, double tol=1e-9) const
 Equality method customized to value type double. More...
 
double max () const
 Find the maximum values amongst all leaves. More...
 
double min () const
 Find the minimum values amongst all leaves. More...
 
AlgebraicDecisionTree normalize () const
 Helper method to perform normalization such that all leaves in the tree sum to 1. More...
 
AlgebraicDecisionTree operator* (const AlgebraicDecisionTree &g) const
 
AlgebraicDecisionTree operator+ (const AlgebraicDecisionTree &g) const
 
AlgebraicDecisionTree operator- () const
 
AlgebraicDecisionTree operator- (const AlgebraicDecisionTree &g) const
 
AlgebraicDecisionTree operator/ (const AlgebraicDecisionTree &g) const
 
void print (const std::string &s="", const typename Base::LabelFormatter &labelFormatter=&DefaultFormatter) const
 print method customized to value type double. More...
 
double sum () const
 Compute sum of all values. More...
 
AlgebraicDecisionTree sum (const Key &label, size_t cardinality) const
 
AlgebraicDecisionTree sum (const typename Base::LabelC &labelC) const
 
- Public Member Functions inherited from gtsam::DecisionTree< Key, double >
 DecisionTree ()
 
 DecisionTree (const double &y)
 
 DecisionTree (const Key &label, const double &y1, const double &y2)
 Create tree with 2 assignments y1, y2, splitting on variable label More...
 
 DecisionTree (const LabelC &label, const double &y1, const double &y2)
 
 DecisionTree (const std::vector< LabelC > &labelCs, const std::vector< double > &ys)
 
 DecisionTree (const std::vector< LabelC > &labelCs, const std::string &table)
 
 DecisionTree (Iterator begin, Iterator end, const Key &label)
 
 DecisionTree (const Key &label, const DecisionTree &f0, const DecisionTree &f1)
 
 DecisionTree (const Unary &op, DecisionTree &&other) noexcept
 Move constructor for DecisionTree. Very efficient as does not allocate anything, just changes in-place. But other is consumed. More...
 
 DecisionTree (const DecisionTree< Key, X > &other, Func Y_of_X)
 Convert from a different value type. More...
 
 DecisionTree (const DecisionTree< M, X > &other, const std::map< M, Key > &map, Func Y_of_X)
 Convert from a different value type X to value type Y, also translate labels via map from type M to L. More...
 
void print (const std::string &s, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter) const
 GTSAM-style print. More...
 
bool equals (const DecisionTree &other, const CompareFunc &compare=&DefaultCompare) const
 
virtual ~DecisionTree ()=default
 Make virtual. More...
 
bool empty () const
 Check if tree is empty. More...
 
bool operator== (const DecisionTree &q) const
 
const double & operator() (const Assignment< Key > &x) const
 
void visit (Func f) const
 Visit all leaves in depth-first fashion. More...
 
void visitLeaf (Func f) const
 Visit all leaves in depth-first fashion. More...
 
void visitWith (Func f) const
 Visit all leaves in depth-first fashion. More...
 
size_t nrLeaves () const
 Return the number of leaves in the tree. More...
 
X fold (Func f, X x0) const
 Fold a binary function over the tree, returning accumulator. More...
 
std::set< Keylabels () const
 
DecisionTree apply (const Unary &op) const
 
DecisionTree apply (const UnaryAssignment &op) const
 Apply Unary operation "op" to f while also providing the corresponding assignment. More...
 
DecisionTree apply (const DecisionTree &g, const Binary &op) const
 
DecisionTree choose (const Key &label, size_t index) const
 
DecisionTree combine (const Key &label, size_t cardinality, const Binary &op) const
 
DecisionTree combine (const LabelC &labelC, const Binary &op) const
 
void dot (std::ostream &os, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, bool showZero=true) const
 
void dot (const std::string &name, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, bool showZero=true) const
 
std::string dot (const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, bool showZero=true) const
 
std::pair< DecisionTree< Key, A >, DecisionTree< Key, B > > split (std::function< std::pair< A, B >(const double &)> AB_of_Y) const
 Convert into two trees with value types A and B. More...
 
 DecisionTree (const NodePtr &root)
 

Standard Interface

virtual double evaluate (const Assignment< Key > &values) const override
 
double error (const DiscreteValues &values) const override
 Calculate error for DiscreteValues x, is -log(probability). More...
 
DecisionTreeFactor operator* (const DecisionTreeFactor &f) const override
 multiply two factors More...
 
DecisionTreeFactor operator/ (const DecisionTreeFactor &f) const
 divide by factor f (safely) More...
 
DecisionTreeFactor toDecisionTreeFactor () const override
 Convert into a decision tree. More...
 
shared_ptr sum (size_t nrFrontals) const
 Create new factor by summing all values with the same separator values. More...
 
shared_ptr sum (const Ordering &keys) const
 Create new factor by summing all values with the same separator values. More...
 
shared_ptr max (size_t nrFrontals) const
 Create new factor by maximizing over all values with the same separator. More...
 
shared_ptr max (const Ordering &keys) const
 Create new factor by maximizing over all values with the same separator. More...
 
static double safe_div (const double &a, const double &b)
 

Additional Inherited Members

- Static Public Member Functions inherited from gtsam::DecisionTree< Key, double >
static NodePtr compose (Iterator begin, Iterator end, const Key &label)
 
- Public Attributes inherited from gtsam::DecisionTree< Key, double >
NodePtr root_
 A DecisionTree just contains the root. TODO(dellaert): make protected. More...
 
- Protected Member Functions inherited from gtsam::Factor
 Factor ()
 
template<typename CONTAINER >
 Factor (const CONTAINER &keys)
 
template<typename ITERATOR >
 Factor (ITERATOR first, ITERATOR last)
 
- Static Protected Member Functions inherited from gtsam::Factor
template<typename CONTAINER >
static Factor FromKeys (const CONTAINER &keys)
 
template<typename ITERATOR >
static Factor FromIterators (ITERATOR first, ITERATOR last)
 
- Static Protected Member Functions inherited from gtsam::DecisionTree< Key, double >
static NodePtr build (It begin, It end, ValueIt beginY, ValueIt endY)
 
static NodePtr convertFrom (const typename DecisionTree< Key, X >::NodePtr &f, std::function< double(const X &)> Y_of_X)
 Convert from a DecisionTree<L, X> to DecisionTree<L, Y>. More...
 
static NodePtr convertFrom (const typename DecisionTree< M, X >::NodePtr &f, std::function< Key(const M &)> L_of_M, std::function< double(const X &)> Y_of_X)
 Convert from a DecisionTree<M, X> to DecisionTree<L, Y>. More...
 
static NodePtr create (It begin, It end, ValueIt beginY, ValueIt endY)
 
static bool DefaultCompare (const double &a, const double &b)
 Default method for comparison of two objects of type Y. More...
 
- Protected Attributes inherited from gtsam::DiscreteFactor
std::map< Key, size_tcardinalities_
 Map of Keys and their cardinalities. More...
 
- Protected Attributes inherited from gtsam::Factor
KeyVector keys_
 The keys involved in this factor. More...
 

Detailed Description

A discrete probabilistic factor.

Definition at line 45 of file DecisionTreeFactor.h.

Member Typedef Documentation

◆ ADT

Definition at line 52 of file DecisionTreeFactor.h.

◆ Base

Typedef to base class.

Definition at line 50 of file DecisionTreeFactor.h.

◆ Binary

using gtsam::DiscreteFactor::Binary = std::function<double(const double, const double)>

Definition at line 52 of file DiscreteFactor.h.

◆ shared_ptr

Definition at line 51 of file DecisionTreeFactor.h.

◆ This

Definition at line 49 of file DecisionTreeFactor.h.

◆ Unary

using gtsam::DiscreteFactor::Unary = std::function<double(const double&)>

Definition at line 49 of file DiscreteFactor.h.

◆ UnaryAssignment

using gtsam::DiscreteFactor::UnaryAssignment = std::function<double(const Assignment<Key>&, const double&)>

Definition at line 51 of file DiscreteFactor.h.

Constructor & Destructor Documentation

◆ DecisionTreeFactor() [1/7]

gtsam::DecisionTreeFactor::DecisionTreeFactor ( )

Default constructor for I/O

Definition at line 32 of file DecisionTreeFactor.cpp.

◆ DecisionTreeFactor() [2/7]

gtsam::DecisionTreeFactor::DecisionTreeFactor ( const DiscreteKeys keys,
const ADT potentials 
)

Constructor from DiscreteKeys and AlgebraicDecisionTree

Definition at line 35 of file DecisionTreeFactor.cpp.

◆ DecisionTreeFactor() [3/7]

gtsam::DecisionTreeFactor::DecisionTreeFactor ( const DiscreteKeys keys,
const std::vector< double > &  table 
)

Constructor from doubles.

Parameters
keysThe discrete keys.
tableThe table of values.
Exceptions
std::invalid_argumentif the size of table does not match the number of assignments.

Example:

DiscreteKey X(0,2), Y(1,3);
const std::vector<double> table {2, 5, 3, 6, 4, 7};

The values in the table should be laid out so that the first key varies the slowest, and the last key the fastest.

Definition at line 341 of file DecisionTreeFactor.cpp.

◆ DecisionTreeFactor() [4/7]

gtsam::DecisionTreeFactor::DecisionTreeFactor ( const DiscreteKeys keys,
const std::string &  table 
)

Constructor from string.

Parameters
keysThe discrete keys.
tableThe table of values.
Exceptions
std::invalid_argumentif the size of table does not match the number of assignments.

Example:

DiscreteKey X(0,2), Y(1,3);
DecisionTreeFactor factor({X, Y}, "2 5 3 6 4 7");

The values in the table should be laid out so that the first key varies the slowest, and the last key the fastest.

Definition at line 347 of file DecisionTreeFactor.cpp.

◆ DecisionTreeFactor() [5/7]

template<class SOURCE >
gtsam::DecisionTreeFactor::DecisionTreeFactor ( const DiscreteKey key,
SOURCE  table 
)
inline

Single-key specialization.

Definition at line 112 of file DecisionTreeFactor.h.

◆ DecisionTreeFactor() [6/7]

gtsam::DecisionTreeFactor::DecisionTreeFactor ( const DiscreteKey key,
const std::vector< double > &  row 
)
inline

Single-key specialization, with vector of doubles.

Definition at line 116 of file DecisionTreeFactor.h.

◆ DecisionTreeFactor() [7/7]

gtsam::DecisionTreeFactor::DecisionTreeFactor ( const DiscreteConditional c)
explicit

Construct from a DiscreteConditional type

Definition at line 40 of file DecisionTreeFactor.cpp.

Member Function Documentation

◆ apply() [1/3]

DecisionTreeFactor gtsam::DecisionTreeFactor::apply ( const DecisionTreeFactor f,
Binary  op 
) const

Apply binary operator (*this) "op" f

Parameters
fthe second argument for op
opa binary operator that operates on AlgebraicDecisionTree

Definition at line 102 of file DecisionTreeFactor.cpp.

◆ apply() [2/3]

DecisionTreeFactor gtsam::DecisionTreeFactor::apply ( Unary  op) const

Apply unary operator (*this) "op" f

Parameters
opa unary operator that operates on AlgebraicDecisionTree

Definition at line 86 of file DecisionTreeFactor.cpp.

◆ apply() [3/3]

DecisionTreeFactor gtsam::DecisionTreeFactor::apply ( UnaryAssignment  op) const

Apply unary operator (*this) "op" f

Parameters
opa unary operator that operates on AlgebraicDecisionTree. Takes both the assignment and the value.

Definition at line 94 of file DecisionTreeFactor.cpp.

◆ combine() [1/2]

DecisionTreeFactor::shared_ptr gtsam::DecisionTreeFactor::combine ( const Ordering keys,
Binary  op 
) const

Combine frontal variables in an Ordering using binary operator "op"

Parameters
nrFrontalsnr. of frontal to combine variables in this factor
opa binary operator that operates on AlgebraicDecisionTree
Returns
shared pointer to newly created DecisionTreeFactor

Definition at line 148 of file DecisionTreeFactor.cpp.

◆ combine() [2/2]

DecisionTreeFactor::shared_ptr gtsam::DecisionTreeFactor::combine ( size_t  nrFrontals,
Binary  op 
) const

Combine frontal variables using binary operator "op"

Parameters
nrFrontalsnr. of frontal to combine variables in this factor
opa binary operator that operates on AlgebraicDecisionTree
Returns
shared pointer to newly created DecisionTreeFactor

Definition at line 121 of file DecisionTreeFactor.cpp.

◆ computeThreshold()

double gtsam::DecisionTreeFactor::computeThreshold ( const size_t  N) const

Compute the probability value which is the threshold above which only N leaves are present.

This is used for pruning out the smaller probabilities.

Parameters
NThe number of leaves to keep post pruning.
Returns
double

Definition at line 410 of file DecisionTreeFactor.cpp.

◆ dot() [1/3]

std::string gtsam::DecisionTreeFactor::dot ( const KeyFormatter keyFormatter = DefaultKeyFormatter,
bool  showZero = true 
) const

output to graphviz format string

Definition at line 269 of file DecisionTreeFactor.cpp.

◆ dot() [2/3]

void gtsam::DecisionTreeFactor::dot ( const std::string &  name,
const KeyFormatter keyFormatter = DefaultKeyFormatter,
bool  showZero = true 
) const

output to graphviz format, open a file

Definition at line 262 of file DecisionTreeFactor.cpp.

◆ dot() [3/3]

void gtsam::DecisionTreeFactor::dot ( std::ostream &  os,
const KeyFormatter keyFormatter = DefaultKeyFormatter,
bool  showZero = true 
) const

output to graphviz format, stream version

Definition at line 255 of file DecisionTreeFactor.cpp.

◆ enumerate()

std::vector< std::pair< DiscreteValues, double > > gtsam::DecisionTreeFactor::enumerate ( ) const

Enumerate all values into a map from values to double.

Definition at line 187 of file DecisionTreeFactor.cpp.

◆ equals()

bool gtsam::DecisionTreeFactor::equals ( const DiscreteFactor other,
double  tol = 1e-9 
) const
overridevirtual

equality

Reimplemented from gtsam::DiscreteFactor.

Reimplemented in gtsam::DiscreteConditional.

Definition at line 45 of file DecisionTreeFactor.cpp.

◆ error() [1/2]

double gtsam::DecisionTreeFactor::error ( const DiscreteValues values) const
overridevirtual

Calculate error for DiscreteValues x, is -log(probability).

Reimplemented from gtsam::DiscreteFactor.

Definition at line 56 of file DecisionTreeFactor.cpp.

◆ error() [2/2]

double gtsam::DecisionTreeFactor::error ( const HybridValues values) const
overridevirtual

Calculate error for HybridValues x, is -log(probability) Simply dispatches to DiscreteValues version.

Reimplemented from gtsam::Factor.

Definition at line 61 of file DecisionTreeFactor.cpp.

◆ evaluate()

virtual double gtsam::DecisionTreeFactor::evaluate ( const Assignment< Key > &  values) const
inlineoverridevirtual

Calculate probability for given values, is just look up in AlgebraicDecisionTree.

Implements gtsam::DiscreteFactor.

Definition at line 140 of file DecisionTreeFactor.h.

◆ html()

string gtsam::DecisionTreeFactor::html ( const KeyFormatter keyFormatter = DefaultKeyFormatter,
const Names names = {} 
) const
overridevirtual

Render as html table.

Parameters
keyFormatterGTSAM-style Key formatter.
namesoptional, category names corresponding to choices.
Returns
std::string a html string.

Implements gtsam::DiscreteFactor.

Reimplemented in gtsam::DiscreteConditional.

Definition at line 307 of file DecisionTreeFactor.cpp.

◆ markdown()

string gtsam::DecisionTreeFactor::markdown ( const KeyFormatter keyFormatter = DefaultKeyFormatter,
const Names names = {} 
) const
overridevirtual

Render as markdown table.

Parameters
keyFormatterGTSAM-style Key formatter.
namesoptional, category names corresponding to choices.
Returns
std::string a markdown string.

Implements gtsam::DiscreteFactor.

Reimplemented in gtsam::DiscreteConditional.

Definition at line 276 of file DecisionTreeFactor.cpp.

◆ max() [1/2]

shared_ptr gtsam::DecisionTreeFactor::max ( const Ordering keys) const
inline

Create new factor by maximizing over all values with the same separator.

Definition at line 181 of file DecisionTreeFactor.h.

◆ max() [2/2]

shared_ptr gtsam::DecisionTreeFactor::max ( size_t  nrFrontals) const
inline

Create new factor by maximizing over all values with the same separator.

Definition at line 176 of file DecisionTreeFactor.h.

◆ operator*()

DecisionTreeFactor gtsam::DecisionTreeFactor::operator* ( const DecisionTreeFactor f) const
inlineoverridevirtual

multiply two factors

Implements gtsam::DiscreteFactor.

Definition at line 151 of file DecisionTreeFactor.h.

◆ operator/()

DecisionTreeFactor gtsam::DecisionTreeFactor::operator/ ( const DecisionTreeFactor f) const
inline

divide by factor f (safely)

Definition at line 158 of file DecisionTreeFactor.h.

◆ print()

void gtsam::DecisionTreeFactor::print ( const std::string &  s = "DecisionTreeFactor:\n",
const KeyFormatter formatter = DefaultKeyFormatter 
) const
overridevirtual

print

Reimplemented from gtsam::Factor.

Reimplemented in gtsam::DiscreteDistribution, gtsam::DiscreteLookupTable, and gtsam::DiscreteConditional.

Definition at line 74 of file DecisionTreeFactor.cpp.

◆ probabilities()

std::vector< double > gtsam::DecisionTreeFactor::probabilities ( ) const

Get all the probabilities in order of assignment values.

Definition at line 204 of file DecisionTreeFactor.cpp.

◆ prune()

DecisionTreeFactor gtsam::DecisionTreeFactor::prune ( size_t  maxNrAssignments) const

Prune the decision tree of discrete variables.

Pruning will set the leaves to be "pruned" to 0 indicating a 0 probability. An assignment is pruned if it is not in the top maxNrAssignments values.

A violation can occur if there are more duplicate values than maxNrAssignments. A violation here is the need to un-prune the decision tree (e.g. all assignment values are 1.0). We could have another case where some subset of duplicates exist (e.g. for a tree with 8 assignments we have 1, 1, 1, 1, 0.8, 0.7, 0.6, 0.5), but this is not a violation since the for maxNrAssignments=5 the top values are (1, 0.8).

Parameters
maxNrAssignmentsThe maximum number of assignments to keep.
Returns
DecisionTreeFactor

Definition at line 464 of file DecisionTreeFactor.cpp.

◆ safe_div()

double gtsam::DecisionTreeFactor::safe_div ( const double &  a,
const double &  b 
)
static

Definition at line 66 of file DecisionTreeFactor.cpp.

◆ sum() [1/2]

shared_ptr gtsam::DecisionTreeFactor::sum ( const Ordering keys) const
inline

Create new factor by summing all values with the same separator values.

Definition at line 171 of file DecisionTreeFactor.h.

◆ sum() [2/2]

shared_ptr gtsam::DecisionTreeFactor::sum ( size_t  nrFrontals) const
inline

Create new factor by summing all values with the same separator values.

Definition at line 166 of file DecisionTreeFactor.h.

◆ toDecisionTreeFactor()

DecisionTreeFactor gtsam::DecisionTreeFactor::toDecisionTreeFactor ( ) const
inlineoverridevirtual

Convert into a decision tree.

Implements gtsam::DiscreteFactor.

Definition at line 163 of file DecisionTreeFactor.h.


The documentation for this class was generated from the following files:
gtsam::DecisionTreeFactor::DecisionTreeFactor
DecisionTreeFactor()
Definition: DecisionTreeFactor.cpp:32
test_constructor::f1
auto f1
Definition: testHybridNonlinearFactor.cpp:56
gtsam::Y
GaussianFactorGraphValuePair Y
Definition: HybridGaussianProductFactor.cpp:29
X
#define X
Definition: icosphere.cpp:20
pruning_fixture::factor
DecisionTreeFactor factor(D &C &B &A, "0.0 0.0 0.0 0.60658897 0.61241912 0.61241969 0.61247685 0.61247742 0.0 " "0.0 0.0 0.99995287 1.0 1.0 1.0 1.0")
table
ArrayXXf table(10, 4)
gtsam::DiscreteKey
std::pair< Key, size_t > DiscreteKey
Definition: DiscreteKey.h:38


gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:23:41