Decision trees · Architecture

Beyond CART: Decision Trees Don’t Have to Look Like CART

Treat CART as one point in a larger design space by changing how a tree splits, routes observations, shares rules, and predicts at its leaves.

A model is a collection of assumptions

Decision trees are one of the foundational models of machine learning. They are easy to visualize, require relatively few assumptions about the shape of the data, and form the basis of some of the strongest methods for tabular problems.

When decision trees are first introduced, however, we usually learn one particular version of them: CART, or Classification and Regression Trees.

A standard CART tree makes several architectural choices:

These choices are so familiar that they can easily start to feel like the definition of a decision tree itself. But they are not.

They are design assumptions.

Importantly, they are also useful assumptions. Restricting each node to one feature makes split search relatively simple and individual decisions easy to inspect. Hard routing means that only one path needs to be evaluated for each observation. Independent nodes allow different parts of the feature space to behave differently, while constant leaves keep local predictions statistically and computationally simple.

Together, these restrictions give CART many of the properties that make trees attractive in the first place: one active prediction path, direct rules, and a relatively simple greedy search for each node’s next split.

But what happens if we relax them individually?

CART, unpacked

Four choices hide inside one familiar tree

1Split geometryone feature + thresholdxⱼ < t
2Routingone crisp pathL xor R
CARTA small CART treeA root question sends each observation down one path through a second independent question to a leaf with a constant prediction.x₁ < 3?x₂ < 5?x₃ < 2?0.20.50.70.9one pathconstant predictions
3Rule sharinga separate rule at each nodeg₁, g₂, g₃
4Leaf modelone stored valueŷ = cℓ
CART is not the definition of a tree. It is one coordinated choice for splitting, routing, rule sharing, and prediction.

This is a useful way to think about machine-learning models more generally. A model is often better understood as a collection of design assumptions. New model families can emerge when we relax, replace, or share those assumptions.

The goal is not to find four improved versions of CART. Every modification will give us something while taking something else away. What matters is understanding that exchange.

Why only one feature?

A standard CART node asks a question of the form

xj<t x_j < t

where jj selects one feature and tt is a threshold.

If we have two features x1x_1 and x2x_2, the split might therefore be

x1<3.7 x_1 < 3.7

or

x2<8.1. x_2 < 8.1.

Geometrically, this restricts the decision boundary to be perpendicular to one of the feature axes.

But why should that restriction exist?

Suppose two classes in a 2D dataset are naturally separated by a diagonal line. An axis-aligned tree cannot draw that line directly. It must approximate it using several horizontal and vertical cuts, creating the familiar staircase-like partition produced by decision trees.

An oblique tree changes the splitting function itself. Instead of examining one feature, a node can examine a weighted combination of features:

wx<t. w^\top x < t.

For two features, this could become

0.8x10.5x2<2. 0.8x_1 - 0.5x_2 < 2.

The node can now create a diagonal boundary.

Change the split

For this diagonal dataset, CART builds a staircase; one oblique node draws the boundary directly

Class AClass B
CARTSeveral axis-aligned cuts
A staircase CART boundaryCircular observations lie above a staircase approximation made from horizontal and vertical CART boundaries; square observations lie below it.x₁x₂staircase
ObliqueOne diagonal cut
A single oblique boundaryThe same circular and square observations are separated by one diagonal weighted-feature split.x₁x₂wᵀx < t
Here, CART keeps each node simple and spends more tree structure on the approximation. The oblique node spends a weighted rule on one direct split.

This changes where the model stores its representational complexity.

CART keeps each individual node extremely simple, so a rotated boundary such as this one may require many nodes arranged into a deeper tree. An oblique tree gives each node more expressive power, which can allow a much smaller tree to represent the same geometry.

In other words, greater node complexity can produce lower tree complexity.

That extra expressiveness is not free. CART searches over candidate pairs (j,t)(j,t): choose a feature, then choose a threshold. An oblique node must search over (w,t)(w,t), where ww may contain one coefficient for every feature. The search space becomes much larger, and a decision involving several weighted variables is generally harder to interpret than a rule such as age < 35.

There are many ways to learn ww. Some methods test candidate directions, some fit linear models, and others optimize the coefficients directly or use differentiable formulations. The exact training procedure is a separate question from the architecture itself.

A tree containing one hard oblique split is therefore a linear threshold classifier: it uses a line or hyperplane to choose one of two sides. That shared boundary does not make it logistic regression. Logistic regression also specifies a smooth probability model and a training objective.

The broader lesson is that expressiveness can be distributed across a model in different ways. Simple components generally require more structure around them; stronger components can sometimes accomplish the same task with less structure.

Why choose only one path?

Consider two observations lying almost exactly on opposite sides of a CART threshold:

x=tϵ x=t-\epsilon

and

x=t+ϵ. x=t+\epsilon.

Even if ϵ\epsilon is tiny, the first observation goes completely to one branch and the second goes completely to the other.

Hard routing

A tiny move can flip the prediction

Follow one observation across the fixed threshold. Only its position changes.

Step 1 of 8
One observation crossing a hard tree thresholdA fixed stump tests whether x is less than zero. The left leaf predicts 2 and the right leaf predicts 8. As the same observation crosses zero, the active branch and prediction switch abruptly.left of thresholdright of thresholdt = 0x = −1.4yesnox < 0?left leafprediction 2right leafprediction 8Current prediction: 2

Observation x = −1.4 follows the left branch. The prediction is 2.

This happens because CART routing is discrete. Each split produces a binary decision: left or right.

But the routing operation itself does not have to be discrete.

A soft tree replaces the hard decision with a smooth gate. One possible formulation is

pR(x)=σ(xjtτ) p_R(x)=\sigma\left(\frac{x_j-t}{\tau}\right)

and

pL(x)=1pR(x), p_L(x)=1-p_R(x),

where σ\sigma is the sigmoid function and τ\tau controls how gradual the transition is.

Instead of saying that an observation belongs entirely to the left or right branch, the tree can assign weight to both.

For a depth-1 regression tree with leaf values vLv_L and vRv_R, the prediction becomes

y^(x)=pL(x)vL+pR(x)vR. \hat y(x)=p_L(x)v_L+p_R(x)v_R.

An observation close to the threshold might receive

pL(x)=0.55,pR(x)=0.45, p_L(x)=0.55,\qquad p_R(x)=0.45,

so both leaves contribute to the prediction.

In a deeper tree, the same idea continues recursively. The weight assigned to a leaf is the product of the routing probabilities along the path leading to it.

Before moving both controls, try one comparison. Keep xx just to the right of the threshold and lower τ\tau. Predict what will happen to the right-path weight, then move xx just to the left of zero.

Routing

Soften one threshold

Both paths contribute

Try one controlled change. Keep x at 0.2 and lower temperature toward 0.1. Predict how the right-path weight will move. Then cross the threshold without changing temperature.

One observation routed toward two regression leavesInput x is 0.2. The soft gate, temperature 1.0 sends weight 0.450to the left leaf with prediction two and weight 0.550 to the right leaf with prediction eight.−3threshold 03x = 0.2smooth gateτ = 1.0pₗ = 0.450pᵣ = 0.550left leafŷ = 2right leafŷ = 8
Left weightpₗ 0.450
Right weightpᵣ 0.550
Weighted predictionŷ 5.30

Input 0.2, temperature 1.0. Left path weight0.450, right path weight 0.550, prediction 5.30.

The parameter τ\tau makes the relationship with CART especially clear. With a large temperature, routing changes gradually around the threshold. For any xtx\neq t, as

τ0, \tau\rightarrow0,

the transition becomes increasingly sharp, so the soft gate approaches the hard left-or-right decision used by CART. Exactly at x=tx=t, however, the sigmoid remains 0.50.5 for every positive temperature. In the playground, choosing τ=0\tau=0 explicitly switches to the CART rule; it is not the sigmoid evaluated at zero temperature.

Something deeper has happened than merely smoothing the prediction. We replaced a discrete operation with a continuous relaxation.

Because the gate is differentiable, parameters controlling the split can potentially be adjusted using gradients together with other parameters in the model. This is an instance of a much broader technique in machine learning: when an operation is useful but discrete and difficult to optimize, we can sometimes replace it with a differentiable approximation.

Again, the relaxation comes with a price.

A hard tree evaluates one crisp path. A soft tree may assign meaningful probability to several paths simultaneously, which makes inference less sparse and explanations less direct. Instead of saying that an observation reached a leaf because three decisions were true, we may need to describe how several weighted paths contributed to its prediction.

As more of the tree becomes differentiable, its computation also begins to resemble a gated neural architecture.

This exposes an important tension. Making a tree easier to integrate with gradient-based learning can remove some of the discrete structure that made trees attractive.

Continuous relaxation exchanges discrete structure for smoother optimization.

Why should every node ask a different question?

In a normal CART tree, every internal node is independent.

A depth-3 tree might ask about income at the root, age on one branch, account_age on another, and completely different questions farther down the tree.

That flexibility is useful because each region of the input space can develop its own local logic. But do we always need it?

An oblivious tree, also called a symmetric tree, imposes a strong structural constraint: every node at the same depth uses the same splitting rule.

Change the structure

An oblivious tree repeats one question across each depth

Ordinary treeOne rule learned by node
An ordinary tree with independent node rulesThe root tests income below fifty. The left child tests age below thirty-five while the right child tests tenure below three.income < 50age < 35tenure < 3leaf 1leaf 2leaf 3leaf 4
Oblivious treeOne rule shared by depth
A symmetric tree with shared depth rulesThe root tests income below fifty. Both nodes at the second depth test age below thirty-five.income < 50age < 35age < 35leaf 1leaf 2leaf 3leaf 4same test across this level
The shared rule removes local freedom, but every observation now follows the same regular sequence of tests.

If the first level asks

x3<5, x_3 < 5,

every observation is evaluated using that rule. At the second level, another rule is chosen and applied regardless of which first-level branch the observation followed.

At each depth, an oblivious tree learns one rule and reuses it at every node on that level.

This modification moves in the opposite direction from oblique and soft trees.

We are deliberately making the model less expressive.

A standard tree can specialize each node to a small local region. An oblivious tree cannot. If one branch would benefit from splitting on age while another would benefit from splitting on income at the same depth, the model must still choose a single shared rule.

What we gain is regularity.

Because every observation receives the same test at each depth, evaluation becomes highly structured. A batch can apply one comparison to every observation at a level, and a complete path can be represented by the resulting sequence of binary outcomes.

The constraint can also act as regularization. By preventing different branches from independently inventing increasingly specialized rules, we reduce the flexibility of each individual tree.

This architecture is not merely theoretical. CatBoost uses symmetric trees by default. Their regular structure is particularly convenient for efficient evaluation, which matters when large numbers of trees must be executed repeatedly in production.

Shared by depth

One batch, two evaluation patterns

CART can ask local questions. A symmetric tree applies one question to the whole batch at each level.

Batch ready · 1 of 4
Ordinary CARTbatch splits into local groups
Ordinary CART treeThe root applies income less than fifty. At depth two, A and B form one local batch for age less than thirty-five, while C and D form another for tenure less than three.income < 50two local batchesage < 35tenure < 3leaf LLleaf LRleaf RLleaf RRABCD
Symmetric treebatch stays aligned by depth
Depth-shared symmetric treeThe root applies income less than fifty. At depth two, A through D remain in one aligned batch while both nodes share age less than thirty-five.income < 50one aligned batchage < 35age < 35leaf LLleaf LRleaf RLleaf RRABCD

The same observations A, B, C, and D enter both trees.

The interesting point is that we improved some properties of the model by restricting what it was allowed to do.

More flexibility is not automatically better. Architectural constraints can make models easier to execute, regularize, and sometimes optimize, even when those constraints reduce the expressive power of an individual model.

Why should a leaf be a constant?

So far we have changed the internal nodes. The leaves contain another assumption that is easy to overlook.

In CART regression, once an observation reaches leaf \ell, its prediction is simply

f(x)=c. f(x)=c_\ell.

Every observation reaching that leaf receives the same value.

This means that CART is making an implicit assumption: once the input space has been partitioned into a sufficiently local region, there is no remaining structure inside that region worth modeling.

Consider a regression problem with two regimes. In the first region, the target increases approximately linearly with xx. In the second region, it also follows a roughly linear trend, but with a different slope.

A standard regression tree can identify the two regimes. Once inside each regime, however, it still approximates the trend using constant steps. Capturing the slope requires additional partitions.

Why should the tree have to do both jobs?

A model tree separates them.

Instead of storing a constant in leaf \ell,

f(x)=f(x), f(x)=f_\ell(x),

where ff_\ell is itself a predictive model.

For example, each leaf might contain a linear regression:

f(x)=βx+b. f_\ell(x)=\beta_\ell^\top x+b_\ell.

Change the leaf

The tree can choose the regime while each leaf models what happens inside

CART leavesOne value inside each region
Piecewise constant leaf predictionsTwo regions contain the same observations as the model-tree panel: a shallow rise on the left and a steeper rise on the right. Each CART leaf predicts one horizontal mean.same partitionxyleaf meanleaf mean
Model leavesOne fitted line inside each region
Piecewise linear leaf predictionsThe same two regions and observations each contain a fitted rising line. The left line is shallow and the right line is steeper.same partitionxyshallow linesteeper line
Both trees use the same partition. The model tree spends extra parameters to capture the local trend without adding more splits.

The resulting decomposition is useful:

Tree: Which regime am I in?

Leaf model: What happens inside this regime?

The tree handles discontinuities and regime changes, while the leaf model handles smoother local relationships.

This is also the basic connection to local-model systems: one mechanism chooses a region, and another models what happens inside it.

The cost is additional complexity. A constant leaf may need only a mean or a class distribution. A linear leaf requires several coefficients, enough local observations to estimate them reliably, and a more involved fitting procedure.

As the leaf models become more expressive, the original simplicity of tree predictions gradually disappears.

Still, the architectural lesson is broader than model trees themselves: different parts of a model can specialize in different jobs. Partitioning the input space and modeling behavior inside each partition do not need to be performed by the same mechanism.

A design space, not four algorithms

We can now return to the original CART tree and describe it as a collection of choices.

Four independent decisions

A tree architecture is assembled one design axis at a time

Four decision-tree design choices, CART defaults, and alternative model families.
Design axisCART choiceAnother choice
1Split geometryxⱼ < twᵀx < tOblique
2Routingleft or rightleft + right weightsSoft
3Node rulesone rule per nodeone rule per depthOblivious
4Leaf predictionconstant cℓlocal model fℓ(x)Model tree
The columns are choices, not a ranking. Any row can change while the other three stay fixed.

These dimensions are largely independent.

An oblique tree does not need soft routing. A soft tree does not need linear leaves. An oblivious tree can still use ordinary axis-aligned splits.

Thinking in terms of architecture makes combinations easier to understand. We have not discovered four mutually exclusive algorithms. We have identified four decisions that CART happens to make in one particular way.

The builder below uses fixed, hand-set depth-2 examples. It does not train a new model when you click a control. Keep the dataset fixed, start from CART, and change one row at a time. Before each click, predict whether the boundary direction, routing edges, repeated rules, or within-leaf predictions will change.

Design space

Build a tree

fixed depth 2 · illustrative
Dataset
Baseline
Change one row at a time.The observations stay fixed. Each choice loads a hand-set example so you can isolate architecture—not compare training quality.
Split
Routing
Rules
Leaves
Decision surface36 observations · held fixed
Decision surface for the assembled treeThe Diagonal dataset has 36 observations over the prediction surface produced by a fixed, illustrative model with axis-aligned splits, hard routing, independent node rules, and constant leaves. The controls select hand-set rules and leaf values; they do not train the model. A slanted boundary rewards a split that can rotate. The surface uses horizontal and vertical boundaries. Changes at those boundaries are abrupt. Each side of the root has its own second-depth boundary. Predictions stay constant within each final region. Negative observations are warm diamonds; positive observations are green circles.feature x₁feature x₂
prediction 0prediction 1
Treecrisp path
The assembled depth-two treeFor the Diagonal dataset, the root uses x₁ < 0. The left second-depth node uses x₂ < 0.62; the right one uses x₂ < −0.62. Routing is hard, and the four leaves are constant models.x₁ < 0depth 1x₂ < 0.62left-region rulex₂ < −0.62right-region ruleconstantc₁ = 0.08constantc₂ = 0.88constantc₃ = 0.12constantc₄ = 0.92one crisp path per observation
Distinct split rules3root + two local depth-2 rules
Split evaluations2for one prediction

Current dataset: Diagonal, 36 observations. A slanted boundary rewards a split that can rotate. Current architecture: axis-aligned splits, hard routing, independent node rules, and constant leaves. The displayed rules and leaf values are fixed examples, not fitted comparisons. The surface uses horizontal and vertical boundaries. Changes at those boundaries are abrupt. Each side of the root has its own second-depth boundary. Predictions stay constant within each final region. The left second-depth node uses x₂ < 0.62; the right one uses x₂ < −0.62. It uses 3 distinct split rules and needs approximately 2 rule evaluations for one prediction.

After isolating each change, combine oblique splits, soft routing, independent rules, and linear leaves. That configuration is particularly revealing.

Its nodes compute weighted combinations of features. Its routing is smooth and differentiable. Several paths may contribute to a prediction. In a trained model of this form, its leaves would contain learned functions rather than constants.

At that point, the architecture begins to resemble a hierarchical mixture-of-experts neural model much more than the textbook tree we started with.

This raises an interesting question: at what point does a modified decision tree stop behaving like the kind of model we originally valued as a tree?

There is no single boundary. But the question matters because every relaxation changes not only what the model can represent, but also how it computes, how it is trained, and how easily its predictions can be understood.

Constraints define models

At the beginning, CART’s assumptions looked like limitations.

Why restrict a split to one feature when several could be combined? Why force an observation onto one branch? Why prevent nodes from sharing parameters? Why make every leaf constant?

After relaxing them individually, the picture becomes more nuanced.

Each restriction buys something. Axis alignment keeps each decision local to one feature, even when a rotated boundary needs more nodes. Hard routing keeps one crisp prediction path. Independent rules preserve local flexibility. Constant leaves keep local estimation small and data-efficient. Relaxing an assumption therefore does not automatically improve the model; it moves complexity somewhere else.

Constraints buy useful behavior

Every move away from CART exchanges one property for another

Oblique

Gaincompact rotated boundariesCostharder split search

Soft

Gainsmooth optimizationCostseveral weighted paths

Model leaves

Gainlocal trendsCostmore parameters + data

Oblivious

Gainregular evaluationCostless local flexibility
CART tree at the center of four trade-offsA root node connects to two decision nodes and two leaves in a compact tree glyph.CARTone choice set
The alternatives point in different directions. None is a universal upgrade; each moves complexity to a new part of the model.

The compact mental model is this: a tree architecture chooses how to split, route, share rules, and predict inside a leaf. Change one choice and you change both what the model can express and what it costs to train, run, or explain.

CART’s restrictions are therefore useful inductive biases, not historical baggage. Learning to design models begins with noticing those hidden choices and predicting what each one buys.