aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
gum::TreeRegress< GUM_SCALAR, 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_SCALAR, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >:

Public Member Functions

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

Private Member Functions

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

Private Attributes

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

Detailed Description

template<typename GUM_SCALAR, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy = ExactTerminalNodePolicy>
class gum::TreeRegress< GUM_SCALAR, 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_SCALAR, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy>
gum::TreeRegress< GUM_SCALAR, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::TreeRegress ( const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * qAction,
const Bijection< const DiscreteVariable *, const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * > pxi )

Default constructor.

Definition at line 65 of file treeRegress_tpl.h.

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

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_SCALAR, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy>
gum::TreeRegress< GUM_SCALAR, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::~TreeRegress ( )

Default destructor.

Definition at line 77 of file treeRegress_tpl.h.

77 {
79 }

References TreeRegress().

Here is the call graph for this function:

Member Function Documentation

◆ _xPloreVFunc_()

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

The whatever 1.

Definition at line 102 of file treeRegress_tpl.h.

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

References _context_, _pxi_, _vFunc_, _xPloreVFunc_(), gum::TreeOperator< GUM_SCALAR, COMBINEOPERATOR, TerminalNodePolicy >::compute(), gum::MultiDimFunctionGraph< GUM_SCALAR, 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_SCALAR, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy>
MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy > * gum::TreeRegress< GUM_SCALAR, COMBINEOPERATOR, PROJECTOPERATOR, TerminalNodePolicy >::compute ( )

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

Definition at line 88 of file treeRegress_tpl.h.

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

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

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

Member Data Documentation

◆ _context_

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

Definition at line 108 of file treeRegress.h.

Referenced by _xPloreVFunc_().

◆ _pxi_

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

Definition at line 107 of file treeRegress.h.

Referenced by TreeRegress(), and _xPloreVFunc_().

◆ _vFunc_

template<typename GUM_SCALAR, template< typename > class COMBINEOPERATOR, template< typename > class PROJECTOPERATOR, template< typename > class TerminalNodePolicy = ExactTerminalNodePolicy>
const MultiDimFunctionGraph< GUM_SCALAR, TerminalNodePolicy >* gum::TreeRegress< GUM_SCALAR, 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