kumulant

RegressionAuditLeaf

Leaf that tracks per-candidate pos/neg stats. When a candidate clears the Hoeffding- bound test, this leaf is replaced by a RegressionSplitNode. The candidate subset is per-leaf ; picked at leaf birth; so mtry-style random subspace selection lives at the leaf level.

Properties

arm

The leaf's weighted-variance accumulator.

candidates

Candidate splits being evaluated at this leaf.

neg

Per-candidate accumulator for observations that route false.

observationsSinceLastCheck

Counter throttling audit work to every Nth observation. Atomic so concurrent updaters don't lose ticks; the split decision is taken by the thread that crosses the period boundary, under the tree's split lock.

pos

Per-candidate accumulator for observations that route true.

Functions

Link copied to clipboard

Public per-node subtree aggregate over all observations routed through this node (leaves: the arm snapshot; splits: the exact Chan-merge of both children plus any RegressionSplitNode.carryover). Lets callers score internal nodes — e.g. a Thompson walk-down that picks a branch by its subtree's posterior — without the tree having to keep a live arm on every split node. Equivalent to a directly-accumulated internal arm: Chan's parallel merge is exact for weighted-variance aggregates.

Link copied to clipboard
override fun findLeaf(row: Row): RegressionLeafNode<Row>

Walk to the leaf this row resolves to.

Link copied to clipboard

Freeze a live VectorView tree node into an immutable, serializable snapshot. Internal split aggregates are derived from the snapshotted children so the wire format stays stable even though live splits hold no arm.