Alberi decisionali

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

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

Codice YDF

In YDF, utilizza lo studente CART per addestrare i singoli modelli di alberi decisionali:

# 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 gerarchicamente a forma di albero. Le domande sono generalmente chiamate condizione, split o test. In questo corso useremo il termine "condizione". Ogni nodo non foglia contiene una condizione e ogni nodo foglia contiene una previsione.

Gli alberi botanici generalmente crescono con la radice nella parte inferiore; tuttavia, gli alberi decisionali di solito sono rappresentati dalla radice (il primo nodo) in cima.

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 leggenda in verde non fa parte dell'albero decisionale.

 

L'inferenza di un modello di albero decisionale viene calcolata eseguendo il routing di un esempio dalla radice (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 sarebbe dog. Il percorso di inferenza sarà:

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

La stessa illustrazione della Figura 1, ma questa illustrazione mostra il percorso di inferenza tra due condizioni, che termina con la foglia per il cane.

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

 

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

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

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

Figura 3. Un albero decisionale che esegue previsioni numeriche.