Decision tree

Attraverso gli alberi decisionali è possibile partizionare il dominio dei feature vector in base ai valori delle singole feature (i.e. componenti), e a dei threshold che rappresentano il confine di suddivisione.

Per esempio, dallo spazio con feature vector

Dati in cluster opposti

si può ricavare un albero simile a:

Classificazione

Un algoritmo per la costruzione dell'albero è l'algoritmo di Hunt ricorsivo, che prende un dataset :

build_tree(D)
	best_split, best_gain = null
	for each feature f
		for each threshold t
			gain = split_goodness(f, t)	// Riduzione dell'errore partizionando per (f <= t)
			if gain >= best_gain
				best_gain = gain
				best_split = (f, t)

	if best_gain = 0 or other_stopping_criterion
		μ = best_prediction(D)	// Media/moda delle y di D per regressione/classificazione
		return Leaf(μ)

	f, t = best_split
	L = build_tree(filter(D, x : x[f] <= t))
	R = build_tree(filter(D, x : x[f] > t))
	return Node(L, R)

Foglie

La best_prediction(D) è definita come la moda delle di , ovvero il label più frequente:

Per semplicità, d'ora in poi si definisce come l'errore della miglior previsione di .

Nodi interni

La qualità del taglio è dato dal guadagno dell'errore che si ha tagliando rispetto a non tagliare: