kumulant

ClassificationTreeConfig

@Serializable
data class ClassificationTreeConfig(val delta: Double = HoeffdingDefaults.DELTA, val deltaDecay: Double = HoeffdingDefaults.DELTA_DECAY, val tau: Double = HoeffdingDefaults.TAU, val minSamplesSplit: Double = HoeffdingDefaults.MIN_SAMPLES_SPLIT, val minSamplesLeaf: Double = HoeffdingDefaults.MIN_SAMPLES_LEAF, val splitPeriod: Int = HoeffdingDefaults.SPLIT_PERIOD, val maxDepth: Int = HoeffdingDefaults.MAX_DEPTH, val maxNodes: Int = HoeffdingDefaults.MAX_NODES, val metric: ClassificationSplitMetric = GiniReduction, val mtry: Int? = null) : HoeffdingTreeConfig(source)

Classification analogue of RegressionTreeConfig. The same tunables, but the split metric defaults to GiniReduction and the criterion is a ClassificationSplitMetric.

Every field except metric is described on HoeffdingTreeConfig.

Constructors

ClassificationTreeConfig

constructor(delta: Double = HoeffdingDefaults.DELTA, deltaDecay: Double = HoeffdingDefaults.DELTA_DECAY, tau: Double = HoeffdingDefaults.TAU, minSamplesSplit: Double = HoeffdingDefaults.MIN_SAMPLES_SPLIT, minSamplesLeaf: Double = HoeffdingDefaults.MIN_SAMPLES_LEAF, splitPeriod: Int = HoeffdingDefaults.SPLIT_PERIOD, maxDepth: Int = HoeffdingDefaults.MAX_DEPTH, maxNodes: Int = HoeffdingDefaults.MAX_NODES, metric: ClassificationSplitMetric = GiniReduction, mtry: Int? = null)(source)

Properties

delta

open override val delta: Double(source)

Hoeffding-bound confidence threshold. Lower means splits require more evidence.

This is the delta of the bound sqrt(-ln(delta) / 2n), so it enters logarithmically: an order of magnitude buys only a modest widening of the margin a candidate has to clear.

deltaDecay

open override val deltaDecay: Double(source)

Multiplicative decay applied to delta per depth, which slows growth near the leaves.

Deeper leaves see less of the stream, so a fixed confidence level would let them split on proportionally thinner evidence. Shrinking delta with depth counteracts that.

maxDepth

open override val maxDepth: Int(source)

Hard ceiling on tree depth.

maxNodes

open override val maxNodes: Int(source)

Hard ceiling on internal plus leaf nodes.

metric

Split criterion; ranks candidates by the class impurity they remove.

minSamplesLeaf

open override val minSamplesLeaf: Double(source)

Minimum weighted samples required on each side of a candidate split.

minSamplesSplit

open override val minSamplesSplit: Double(source)

Minimum total weighted samples at a leaf before split evaluation runs at all.

mtry

open override val mtry: Int?(source)

Breiman-style random-subspace size: at every audit-leaf birth, draw a fresh random subset of this many candidates from the tree's full pool. null disables the trick and considers every candidate.

This is what decorrelates the trees in a forest. A single tree usually leaves it null.

splitPeriod

open override val splitPeriod: Int(source)

Audit every Nth observation rather than every update.

Evaluating every candidate at every observation is the dominant cost in a VFDT, and the bound moves slowly, so checking periodically loses almost nothing.

tau

open override val tau: Double(source)

If the Hoeffding bound itself shrinks below this, the leaf may split even when the runner-up is close: the classic VFDT tie-break parameter.

Without it, two candidates of genuinely equal merit deadlock forever, because the margin between them never exceeds any bound. This gives the tree permission to pick one once it has enough evidence to know the choice does not matter much.