ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
ppforest2::TreeNode Struct Referenceabstract

Abstract base class for nodes in a projection pursuit tree. More...

#include <TreeNode.hpp>

Classes

struct  Visitor
 Visitor interface for tree node dispatch. More...
 

Public Types

using Ptr = std::unique_ptr<TreeNode>
 

Public Member Functions

virtual ~TreeNode ()=default
 
virtual void accept (Visitor &visitor) const =0
 Accept a tree node visitor (double dispatch).
 
virtual Ptr clone () const =0
 Deep copy of this node and its subtree.
 
virtual bool equals (TreeNode const &other) const =0
 Structural equality comparison (value-based).
 
virtual int group_count () const =0
 Number of distinct groups reachable from this node.
 
virtual bool is_leaf () const =0
 Whether this node is a leaf (TreeResponse).
 
virtual std::set< types::Responsenode_groups () const =0
 Sorted set of group labels reachable from this node.
 
bool operator!= (TreeNode const &other) const
 
bool operator== (TreeNode const &other) const
 
virtual types::Response predict (types::FeatureVector const &data) const =0
 Predict the group label for a single observation.
 
virtual types::Response response () const =0
 The group label at this node (leaf value or majority group).
 

Public Attributes

bool degenerate = false
 Whether this node (or any descendant) had a degenerate split.
 

Detailed Description

Abstract base class for nodes in a projection pursuit tree.

A tree is a recursive structure of nodes: internal split nodes (TreeCondition) that project and threshold, and leaf nodes (TreeResponse) that hold a group label.

Member Typedef Documentation

◆ Ptr

using ppforest2::TreeNode::Ptr = std::unique_ptr<TreeNode>

Constructor & Destructor Documentation

◆ ~TreeNode()

virtual ppforest2::TreeNode::~TreeNode ( )
virtualdefault

Member Function Documentation

◆ accept()

virtual void ppforest2::TreeNode::accept ( Visitor & visitor) const
pure virtual

Accept a tree node visitor (double dispatch).

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

◆ clone()

virtual Ptr ppforest2::TreeNode::clone ( ) const
pure virtual

Deep copy of this node and its subtree.

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

◆ equals()

virtual bool ppforest2::TreeNode::equals ( TreeNode const & other) const
pure virtual

Structural equality comparison (value-based).

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

◆ group_count()

virtual int ppforest2::TreeNode::group_count ( ) const
pure virtual

Number of distinct groups reachable from this node.

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

◆ is_leaf()

virtual bool ppforest2::TreeNode::is_leaf ( ) const
pure virtual

Whether this node is a leaf (TreeResponse).

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

◆ node_groups()

virtual std::set< types::Response > ppforest2::TreeNode::node_groups ( ) const
pure virtual

Sorted set of group labels reachable from this node.

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

◆ operator!=()

bool ppforest2::TreeNode::operator!= ( TreeNode const & other) const

◆ operator==()

bool ppforest2::TreeNode::operator== ( TreeNode const & other) const

◆ predict()

virtual types::Response ppforest2::TreeNode::predict ( types::FeatureVector const & data) const
pure virtual

Predict the group label for a single observation.

Parameters
dataFeature vector (p).
Returns
Predicted group label.

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

◆ response()

virtual types::Response ppforest2::TreeNode::response ( ) const
pure virtual

The group label at this node (leaf value or majority group).

Implemented in ppforest2::TreeCondition, and ppforest2::TreeResponse.

Member Data Documentation

◆ degenerate

bool ppforest2::TreeNode::degenerate = false

Whether this node (or any descendant) had a degenerate split.


The documentation for this struct was generated from the following file: