template<typename L>
class gtsam::AlgebraicDecisionTree< L >
An algebraic decision tree fixes the range of a DecisionTree to double.
Just has some nice constructors and some syntactic sugar. TODO(dellaert): consider eliminating this class altogether?
|
|
| AlgebraicDecisionTree (double leaf=1.0) |
|
| AlgebraicDecisionTree (const Base &add) |
|
| AlgebraicDecisionTree (const L &label, double y1, double y2) |
| | Create a new leaf function splitting on a variable.
|
| | AlgebraicDecisionTree (const typename Base::LabelC &labelC, double y1, double y2) |
| | Create a new leaf function splitting on a variable.
|
| | AlgebraicDecisionTree (const std::vector< typename Base::LabelC > &labelCs, const std::vector< double > &ys) |
| | Create from keys with cardinalities and a vector table.
|
| | AlgebraicDecisionTree (const std::vector< typename Base::LabelC > &labelCs, const std::string &table) |
| | Create from keys and string table.
|
| template<typename Iterator> |
| | AlgebraicDecisionTree (Iterator begin, Iterator end, const L &label) |
| | Create a range of decision trees, splitting on a single variable.
|
| template<typename M> |
| | AlgebraicDecisionTree (const AlgebraicDecisionTree< M > &other, const std::map< M, L > &map) |
| | Convert labels from type M to type L.
|
|
AlgebraicDecisionTree | operator+ (const AlgebraicDecisionTree &g) const |
| | sum
|
|
AlgebraicDecisionTree | operator* (const AlgebraicDecisionTree &g) const |
| | product
|
|
AlgebraicDecisionTree | operator/ (const AlgebraicDecisionTree &g) const |
| | division
|
|
AlgebraicDecisionTree | sum (const L &label, size_t cardinality) const |
| | sum out variable
|
|
AlgebraicDecisionTree | sum (const typename Base::LabelC &labelC) const |
| | sum out variable
|
|
void | print (const std::string &s="", const typename Base::LabelFormatter &labelFormatter=&DefaultFormatter) const |
| | print method customized to value type double.
|
|
bool | equals (const AlgebraicDecisionTree &other, double tol=1e-9) const |
| | Equality method customized to value type double.
|
|
| DecisionTree () |
| | Default constructor (for serialization).
|
|
| DecisionTree (const double &y) |
| | Create a constant.
|
| | DecisionTree (const L &label, const double &y1, const double &y2) |
| | Create tree with 2 assignments y1, y2, splitting on variable label.
|
|
| DecisionTree (const LabelC &label, const double &y1, const double &y2) |
| | Allow Label+Cardinality for convenience.
|
|
| DecisionTree (const std::vector< LabelC > &labelCs, const std::vector< double > &ys) |
| | Create from keys and a corresponding vector of values.
|
|
| DecisionTree (const std::vector< LabelC > &labelCs, const std::string &table) |
| | Create from keys and string table.
|
|
| DecisionTree (Iterator begin, Iterator end, const L &label) |
| | Create DecisionTree from others.
|
|
| DecisionTree (const L &label, const DecisionTree &f0, const DecisionTree &f1) |
| | Create DecisionTree from two others.
|
| | DecisionTree (const DecisionTree< L, X > &other, Func Y_of_X) |
| | Convert from a different value type.
|
| | DecisionTree (const DecisionTree< M, X > &other, const std::map< M, L > &map, Func Y_of_X) |
| | Convert from a different value type X to value type Y, also transate labels via map from type M to L.
|
| void | print (const std::string &s, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter) const |
| | GTSAM-style print.
|
|
bool | equals (const DecisionTree &other, const CompareFunc &compare=&DefaultCompare) const |
|
virtual | ~DecisionTree ()=default |
| | Make virtual.
|
|
bool | empty () const |
| | Check if tree is empty.
|
|
bool | operator== (const DecisionTree &q) const |
| | equality
|
|
const double & | operator() (const Assignment< L > &x) const |
| | evaluate
|
| void | visit (Func f) const |
| | Visit all leaves in depth-first fashion.
|
| void | visitLeaf (Func f) const |
| | Visit all leaves in depth-first fashion.
|
| void | visitWith (Func f) const |
| | Visit all leaves in depth-first fashion.
|
|
size_t | nrLeaves () const |
| | Return the number of leaves in the tree.
|
| X | fold (Func f, X x0) const |
| | Fold a binary function over the tree, returning accumulator.
|
| std::set< L > | labels () const |
| | Retrieve all unique labels as a set.
|
|
DecisionTree | apply (const Unary &op) const |
| | apply Unary operation "op" to f
|
| DecisionTree | apply (const UnaryAssignment &op) const |
| | Apply Unary operation "op" to f while also providing the corresponding assignment.
|
|
DecisionTree | apply (const DecisionTree &g, const Binary &op) const |
| | apply binary operation "op" to f and g
|
|
DecisionTree | choose (const L &label, size_t index) const |
| | create a new function where value(label)==index It's like "restrict" in Darwiche09book pg329, 330?
|
|
DecisionTree | combine (const L &label, size_t cardinality, const Binary &op) const |
| | combine subtrees on key with binary operation "op"
|
|
DecisionTree | combine (const LabelC &labelC, const Binary &op) const |
| | combine with LabelC for convenience
|
|
void | dot (std::ostream &os, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, bool showZero=true) const |
| | output to graphviz format, stream version
|
|
void | dot (const std::string &name, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, bool showZero=true) const |
| | output to graphviz format, open a file
|
|
std::string | dot (const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, bool showZero=true) const |
| | output to graphviz format string
|
|
| DecisionTree (const NodePtr &root) |
|
NodePtr | compose (Iterator begin, Iterator end, const L &label) const |