Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Online ml River Tree Nodes HTR

From Leeroopedia


Knowledge Sources
Domains Online_Learning, Decision_Trees
Last Updated 2026-02-08 16:00 GMT

Overview

Hoeffding Tree Regressor (HTR) leaf node implementations providing different prediction strategies for regression tasks.

Description

This module provides three types of leaf nodes for Hoeffding Tree regressors. LeafMean predicts using the average target value and manages memory by removing bad splits from E-BST splitters. LeafModel uses a regression model (like linear regression) for predictions. LeafAdaptive dynamically selects between mean and model predictions based on which has lower FMSE (Faded Mean Squared Error).

Usage

Use LeafMean for simple predictions, LeafModel when a specific model is appropriate for the data, and LeafAdaptive when uncertain which strategy will perform better on your regression stream.

Code Reference

Source Location

Signature

class LeafMean(HTLeaf):
    def __init__(self, stats, depth, splitter, **kwargs):
        ...
    def prediction(self, x, *, tree=None):
        ...
    def manage_memory(self, criterion, last_check_ratio, last_check_vr, last_check_e):
        ...

class LeafModel(LeafMean):
    def __init__(self, stats, depth, splitter, leaf_model, **kwargs):
        ...
    def learn_one(self, x, y, *, w=1.0, tree=None):
        ...
    def prediction(self, x, *, tree=None):
        ...

class LeafAdaptive(LeafModel):
    def __init__(self, stats, depth, splitter, leaf_model, **kwargs):
        ...
    def learn_one(self, x, y, *, w=1.0, tree=None):
        ...
    def prediction(self, x, *, tree=None):
        ...

Import

from river.tree.nodes.htr_nodes import LeafMean
from river.tree.nodes.htr_nodes import LeafModel
from river.tree.nodes.htr_nodes import LeafAdaptive

I/O Contract

Input Type Description
stats Var Target variance statistics
depth int Node depth in tree
splitter Splitter Numeric attribute observer
leaf_model Regressor Model for predictions (LeafModel/LeafAdaptive only)
Output Type Description
prediction float Predicted target value
promise int Negative depth (for memory management)

Usage Examples

from river.tree.nodes.htr_nodes import LeafAdaptive
from river.tree.splitter import EBSTSplitter
from river import linear_model

# Create adaptive leaf with linear model
leaf = LeafAdaptive(
    stats=None,  # Var() will be created
    depth=2,
    splitter=EBSTSplitter(),
    leaf_model=linear_model.LinearRegression()
)

# Learn from samples
x = {'feature1': 0.5, 'feature2': 12.5}
leaf.learn_one(x, y=25.5, w=1.0, tree=None)

# Get prediction (chooses between mean and model)
pred = leaf.prediction(x, tree=None)

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment