← CS Lab AI & Machine Learning / Decision Tree Open standalone ↗

A decision tree predicts by asking a chain of yes/no questions about features. The tool above shows one cut; a real tree stacks many of them, recursively splitting the data into ever-purer regions until each leaf hands back a prediction.

Where you meet it

What it does

It learns a hierarchy of axis-parallel splits. Each internal node tests one feature against a threshold and routes the sample left or right; each leaf stores a prediction — the majority class (classification) or the mean (regression) of the training points that landed there. Prediction is just walking root-to-leaf.

A single tree is readable but jittery — change a few rows and it reshapes. That's exactly why we average a forest.

How it works

Growth is greedy and recursive. At each node the algorithm scans every feature and every candidate threshold, and picks the split that reduces impurity the most — the largest information gain:

gain = impurity(parent) − ( n_L/n · impurity(left) + n_R/n · impurity(right) )

Impurity measures how mixed a node is. Two common choices for classification:

Gini    = 1 − Σ pₖ²
Entropy = − Σ pₖ · log₂ pₖ

Both are 0 for a pure node and peak when classes are balanced. One split, concretely: a parent with 7 A + 7 B has Gini 1 − 0.5² − 0.5² = 0.5. Split it into a 6A/1B leaf (≈ 0.24) and a 1A/6B leaf (≈ 0.24); the weighted child impurity is 0.24, so the gain is 0.5 − 0.24 = 0.26. The algorithm keeps the split with the biggest such drop, then recurses on each child — stopping when a node is pure, too small (min_samples_leaf), or hits max_depth.

Watch out

  • Overfitting. Grown unrestricted, a tree memorises noise — perfect on train, poor on test. Limit depth, set min_samples_leaf, or apply cost-complexity pruning (ccp_alpha).
  • Instability. A small change in the data can flip an early split and reshape the whole tree. Averaging many trees — a Random Forest — fixes this and is the usual reason single trees are rarely used alone.
  • Imbalanced classes & biased splits. A dominant class can starve good splits; impurity criteria also favour features with many distinct values. Use class weights and watch the splitting metric.
  • Axis-parallel only. Diagonal boundaries get approximated by a staircase of cuts — fine, but it costs depth.

Go deeper

Ein Entscheidungsbaum sagt vorher, indem er eine Kette von Ja/Nein-Fragen über Merkmale stellt. Das Tool oben zeigt einen Schnitt; ein echter Baum stapelt viele davon und teilt die Daten rekursiv in immer reinere Bereiche, bis jedes Blatt eine Vorhersage liefert.

Wo es vorkommt

Was es tut

Er lernt eine Hierarchie aus achsenparallelen Splits. Jeder innere Knoten testet ein Merkmal gegen eine Schwelle und schickt das Sample links oder rechts; jedes Blatt speichert eine Vorhersage — die Mehrheitsklasse (Klassifikation) oder den Mittelwert (Regression) der dort gelandeten Trainingspunkte. Vorhersagen heißt: von der Wurzel zum Blatt laufen.

Ein einzelner Baum ist lesbar, aber nervös — ein paar Zeilen anders und er formt sich um. Genau darum mittelt man einen Forest.

Wie es funktioniert

Das Wachsen ist gierig und rekursiv. An jedem Knoten prüft der Algorithmus jedes Merkmal und jede mögliche Schwelle und wählt den Split, der die Unreinheit am stärksten senkt — den größten Information Gain:

Gewinn = Unreinheit(Eltern) − ( n_L/n · Unreinheit(links) + n_R/n · Unreinheit(rechts) )

Die Unreinheit misst, wie gemischt ein Knoten ist. Zwei gängige Maße für die Klassifikation:

Gini    = 1 − Σ pₖ²
Entropie = − Σ pₖ · log₂ pₖ

Beide sind 0 für einen reinen Knoten und maximal bei ausgeglichenen Klassen. Ein Split, konkret: Ein Elternknoten mit 7 A + 7 B hat Gini 1 − 0,5² − 0,5² = 0,5. Teilt man ihn in ein 6A/1B-Blatt (≈ 0,24) und ein 1A/6B-Blatt (≈ 0,24), beträgt die gewichtete Kind-Unreinheit 0,24 — der Gewinn also 0,5 − 0,24 = 0,26. Der Algorithmus behält den Split mit dem größten Rückgang und rekursiert auf jedem Kind — Stopp, sobald ein Knoten rein ist, zu klein wird (min_samples_leaf) oder max_depth erreicht.

Worauf achten

  • Überanpassung. Ohne Grenzen lernt ein Baum das Rauschen auswendig — perfekt auf Training, schwach im Test. Tiefe begrenzen, min_samples_leaf setzen oder Cost-Complexity-Pruning (ccp_alpha) nutzen.
  • Instabilität. Eine kleine Datenänderung kann einen frühen Split kippen und den ganzen Baum umformen. Das Mitteln vieler Bäume — ein Random Forest — behebt das und ist der übliche Grund, warum einzelne Bäume selten allein laufen.
  • Unbalancierte Klassen & verzerrte Splits. Eine dominante Klasse kann gute Splits ausbremsen; Unreinheitsmaße bevorzugen zudem Merkmale mit vielen verschiedenen Werten. Klassengewichte setzen und die Split-Metrik im Blick behalten.
  • Nur achsenparallel. Diagonale Grenzen werden durch eine Treppe aus Schnitten angenähert — geht, kostet aber Tiefe.

Mehr dazu

Next up
AI & Machine LearningK-Means Clustering AI & Machine LearningFeature Scaling All concepts →