aGrUM 3.0.0
a C++ library for (probabilistic) graphical models
gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy > Class Template Reference

Class used to perform Decision Tree Regression in the FMDP Framework. More...

#include <agrum/base/multidim/patterns/treeRegress.h>

Collaboration diagram for gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >:

Public Member Functions

Constructors / Destructors
 TreeRegress (const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > *qAction, const Bijection< const DiscreteVariable *, const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * > pxi)
 Default constructor.
 ~TreeRegress ()
 Default destructor.
Main Method
MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * compute ()
 Computes and builds the Function Graph that is the result of the operation.

Private Member Functions

MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * _xPloreVFunc_ (NodeId currentNodeId)
 The whatever 1.

Private Attributes

const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * _vFunc_
 The function graphs used for the operation.
const Bijection< const DiscreteVariable *, const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * > _pxi_
HashTable< const DiscreteVariable *, Idx_context_

Detailed Description

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy = ExactTerminalNodePolicy>
class gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >

Class used to perform Decision Tree Regression in the FMDP Framework.

Definition at line 71 of file treeRegress.h.

Constructor & Destructor Documentation

◆ TreeRegress()

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy>
gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::TreeRegress ( const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * qAction,
const Bijection< const DiscreteVariable *, const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * > pxi )

Default constructor.

Definition at line 66 of file treeRegress_tpl.h.

69 :
72 }
Class used to perform Decision Tree Regression in the FMDP Framework.
Definition treeRegress.h:71
TreeRegress(const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > *qAction, const Bijection< const DiscreteVariable *, const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * > pxi)
Default constructor.
const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * _vFunc_
The function graphs used for the operation.
const Bijection< const DiscreteVariable *, const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * > _pxi_

References TreeRegress(), _pxi_, and _vFunc_.

Referenced by TreeRegress(), and ~TreeRegress().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~TreeRegress()

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy>
gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::~TreeRegress ( )

Default destructor.

Definition at line 78 of file treeRegress_tpl.h.

78 {
80 }

References TreeRegress().

Here is the call graph for this function:

Member Function Documentation

◆ _xPloreVFunc_()

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy>
MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::_xPloreVFunc_ ( NodeId currentNodeId)
private

The whatever 1.

Definition at line 103 of file treeRegress_tpl.h.

104 {
106
108
109 for (Idx moda = 0; moda < currentNode->nodeVar()->domainSize(); ++moda) {
111 _context_.insert(currentNode->nodeVar(), moda);
112 if (_vFunc_->isTerminalNode(currentNode->son(moda))) {
113 GUM_ELEMENT value = _vFunc_->nodeValue(currentNode->son(moda));
114 if (value) {
116 vpxi->manager()->setRootNode(vpxi->manager()->addTerminalNode(value));
117 }
118 } else {
120 }
121
122 if (vpxi != nullptr) {
124 _pxi_.second(currentNode->nodeVar()),
125 _context_);
126 varbucket.push_back(combinope.compute());
127 }
128 delete vpxi;
129 _context_.erase(currentNode->nodeVar());
130 }
131
132 if (varbucket.empty()) return nullptr;
133
135 varbucket.pop_back();
136 while (!varbucket.empty()) {
139 vp = projope.compute();
140 delete temp;
141 temp = varbucket.back();
142 varbucket.pop_back();
143 delete temp;
144 }
145
146 return vp;
147 }
static MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * getTreeInstance()
Returns an arborescent instance.
MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * _xPloreVFunc_(NodeId currentNodeId)
The whatever 1.
HashTable< const DiscreteVariable *, Idx > _context_
MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * compute()
Computes and builds the Function Graph that is the result of the operation.

References _context_, _pxi_, _vFunc_, _xPloreVFunc_(), gum::TreeOperator< GUM_ELEMENT, COMBINEOPERATOR, TerminalNodePolicy >::compute(), gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::getTreeInstance(), gum::InternalNode::nodeVar(), and gum::InternalNode::son().

Referenced by _xPloreVFunc_(), and compute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute()

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy>
MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::compute ( )

Computes and builds the Function Graph that is the result of the operation.

Definition at line 89 of file treeRegress_tpl.h.

References _vFunc_, _xPloreVFunc_(), gum::MultiDimContainer< GUM_ELEMENT >::copy(), and gum::MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >::getTreeInstance().

Referenced by gum::TreeOperatorStrategy< GUM_ELEMENT >::regress().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _context_

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy = ExactTerminalNodePolicy>
HashTable< const DiscreteVariable*, Idx > gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::_context_
private

Definition at line 108 of file treeRegress.h.

Referenced by _xPloreVFunc_().

◆ _pxi_

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy = ExactTerminalNodePolicy>
const Bijection< const DiscreteVariable*, const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >* > gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::_pxi_
private

Definition at line 107 of file treeRegress.h.

Referenced by TreeRegress(), and _xPloreVFunc_().

◆ _vFunc_

template<typename GUM_ELEMENT, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy = ExactTerminalNodePolicy>
const MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy >* gum::TreeRegress< GUM_ELEMENT, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::_vFunc_
private

The function graphs used for the operation.

Definition at line 104 of file treeRegress.h.

Referenced by TreeRegress(), _xPloreVFunc_(), and compute().


The documentation for this class was generated from the following files:
  • agrum/base/multidim/utils/FunctionGraphUtilities/operators/treeRegress.h
  • agrum/base/multidim/utils/FunctionGraphUtilities/operators/treeRegress_tpl.h