Alberi decisionali

I modelli di foresta decisionale sono composti da alberi decisionali. Gli algoritmi di apprendimento della foresta decisionale (come le foreste casuali) si basano, almeno in parte, sull'apprendimento degli alberi decisionali.

In questa sezione del corso esaminerai un piccolo set di dati di esempio e imparerai come viene addestrato un singolo albero decisionale. Nelle sezioni successive, scoprirai come vengono combinate le strutture decisionali per addestrare le foreste di alberi decisionali.

Codice YDF

In YDF, utilizza l'apprendente CART per addestrare singoli modelli di albero decisionale:

# https://ydf.readthedocs.io/en/latest/py_api/CartLearner
import ydf
model = ydf.CartLearner(label="my_label").train(dataset)

Il modello

Un albero decisionale è un modello composto da una raccolta di "domande" organizzate in modo gerarchico a forma di albero. Le domande sono in genere chiamate condizione, split o test. In questo corso utilizzeremo il termine "condizione". Ogni nodo non foglia contiene una condizione e ogni nodo foglia contiene una previsione.

Gli alberi botanici in genere crescono con la radice in basso; tuttavia, gli alberi decisionali sono solitamente rappresentati con la radice (il primo nodo) in alto.

Un albero decisionale contenente due condizioni e tre foglie. La prima condizione (la radice) è num_legs >= 3; la seconda condizione è
num_eyes >= 3. Le tre foglie sono pinguino, ragno e cane.

Figura 1. Un semplice albero decisionale di classificazione. La legenda in verde non fa parte dell'albero decisionale.

 

L'inferenza di un modello di albero decisionale viene calcolata instradando un esempio dal nodo principale (in alto) a uno dei nodi foglia (in basso) in base alle condizioni. Il valore della foglia raggiunta è la previsione dell'albero decisionale. L'insieme di nodi visitati è chiamato percorso di inferenza. Ad esempio, considera i seguenti valori delle funzionalità:

num_legs num_eyes
4 2

La previsione sarà cane. Il percorso di inferenza sarà:

  1. num_legs ≥ 3 → Sì
  2. num_eyes ≥ 3 → No

La stessa illustrazione della Figura 1, ma questa illustra il percorso di deduzione in due condizioni, che termina nel nodo a foglia per cane.

Figura 2. Il percorso di inferenza che termina con la foglia *cane* nell'esempio *{num_legs : 4, num_eyes : 2}*.

 

Nell'esempio precedente, le foglie dell'albero decisionale contengono le predizioni di classificazione, ovvero ogni foglia contiene una specie animale tra un insieme di specie possibili.

Analogamente, gli alberi decisionali possono prevedere valori numerici etichettando le foglie con predizioni di regressione (valori numerici). Ad esempio, il seguente albero decisionale prevede un punteggio numerico della dolcezza di un animale compreso tra 0 e 10.

Un albero decisionale in cui ogni foglia contiene un numero diverso con virgola mobile.

Figura 3. Un albero decisionale che effettua una previsione numerica.