PRO e CONTRO del Decision Tree nel Machine Learning

Nell’articoli di oggi parliamo dei PRO e CONTRO del Decision Tree, uno dei modelli più utilizzati e famosi degli algoritmi di Machine Learning.

PRO e CONTRO del Decision Tree
Foto di Pixabay

Il Decision Tree è indubbiamente uno dei modelli più famosi e utilizzati tra gli algoritmi di Machine Learning. E’ di fatto il primo che non fa parte degli algoritmi più di statistica classica (come la regressione logistica o lineare) che si inizia a studiare quando si approfondisce il tema del Machine Learning.

In un articolo di qualche anno fa avevo già parlato di questo celeberrimo algoritmo, ma oggi vorrei concentrarci sui suoi pregi e suoi difetti.

INDICE

  • Decision Tree: cos’è
  • Come funziona un Albero Decisionale
  • PRO e CONTRO del Decision Tree
    • PRO del Decision Tree
    • CONTRO del Decision Tree

Decision Tree: cos’è

Recuperiamo un po’ le basi del Decision Tree, conosciuto anche in Italia come Albero Decisionale.

Gli Alberi Decisionali sono algoritmi predittivi supervisionati che possono essere usati sia per casi di classificazione, sia per casi di regressione.

Questo vuol dire che l’output che andrà a prevedere il modello sarà o una variabile categorica/qualitativa (per esempio una binaria SI/NO) o una quantità continua/numerica (il prezzo di una casa).

Sono gli algoritmi di ML più comuni perché sono molto veloci e soprattutto semplici da interpretare e questo è di fondamentale importanza in alcuni settori specifici in cui si può preferire una maggior semplicità di comprensione e interpretazione a una maggior accuratezza del modello.

Come funziona un Albero Decisionale

Gli alberi decisionali sono una sorta di mappa decisionale: come un “se questo, allora quello” che porta a prendere determinate decisioni in base alle caratteristiche dei dati.

Immagina di dover identificare se un cliente sarà propenso o meno ad acquistare un prodotto basandoti su una serie di caratteristiche, come età, reddito e preferenze di acquisto. L’albero decisionale, in questo caso, esaminerebbe queste caratteristiche e farebbe domande a cascata: “Ha più di 30 anni?” – “Guadagna più di X?” – “Preferisce prodotti di lusso?” fino a giungere a una decisione.

L’obiettivo è quello di dividere la popolazione iniziale per il valore di una variabile che permette di creare due gruppi il più omogenei possibile internamente e il più disomogenei possibile tra loro (vengono usate metriche come l’entropia o l’indice di Gini), per raggiungere quindi la maggior “purezza” possibile nei nuovi gruppi formati, che prendono il nome di foglie.

Per ogni variabile si cerca il valore che crea maggior purezza delle foglie, e una volta creati i due gruppi separati, per ogni nuovo nodo si ripete la stessa operazione fino alla fine.

PRO e CONTRO del Decision Tree

Ora che sappiamo cosa sia il Decision Tree e come funziona, possiamo andarne a sondare i PRO e i CONTRO

PRO del Decision Tree

1. Facilità di comprensione

Sono algoritmi intuitivi che possono essere visualizzati facilmente, la loro struttura “if-then-else” rende semplice comprendere come vengono prese le decisioni. Questo permette di interfacciarsi anche con stakeholder non tecnici e riuscire a far meglio apprezzare i risultati.

E’ un aspetto che spesso viene sottovalutato ma che in realtà è un grandissimo pregio. A volte uno dei problemi che si riscontrano nell’adozione di algoritmi di ML è proprio la loro natura complessa.

2. Gestione di diversi tipi di variabili

E’ possibile inserire nei dati di training sia variabili di tipo quantitativo sia variabili di tipo qualitativo.

Siamo abituati a pensare che gli algoritmi possano accettare tutti i tipi di variabili ma non è così. Gli algoritmi basati sugli alberi gestiscono meglio di molti altri sia variabili di tipo qualitativo sia quantitativo.

3. Features Importance

L’algoritmo restituisce una features importance, ovvero un ranking delle variabili in base alla loro importanza (quante volte sono state usate per fare gli split nei nodi).

A volte l’obiettivo non è solo quello di costruire un modello che funzioni, ovvero che faccia delle prediction accurate, ma è anche quello capirne il funzionamento. Grazie alla features importance è possibile capire quali sono le variabili che sono maggiormente entrate in gioco nel momento della decisione.

4. Velocità

Un altro aspetto da non sottovalutare assolutamente è la loro velocità sia in fase di training sia in fase di inferenza.

Grazie a questa loro velocità è possibile applicarli in contesti che richiedono anche una prediction real-time.

Contro del Decision Tree

1. Overfitting

Il più grande problema degli alberi decisionali è l’overfitting, ovvero l’incapacità del modello di generalizzare su dati nuovi, che dovrebbe essere l’obiettivo di ogni tipo di modello predittivo.

Questo perché l’algoritmo se non viene opportunamente fermato va a creare una foglia finale per ogni individuo dei dati di training, creando foglie perfette dal punto di vista della purezza, ma non utilizzabili in contesti reali.

Si può lavorare su diversi parametri per evitare questi problemi, facendo un’opportuna hyperparameter optimization (se ti interessa il tema di consiglio questi due articoli: articolo 1, articolo 2).

In particolare, io solitamente mi concentro su due iperparametri: max_depth e min_samples_leaf (se usi l’implementazione di scikit learn).

Abbassando il max_depth si andrà a fare l’operazione di pruning, che va a tagliare la parte finale dell’albero e gli impedisce di andare troppo a fondo e di creare quindi una foglia per individuo. Alzando invece il parametro min_samples_leaf vado a dire al modello che le foglie finali non possono avere meno di un certo numero di individui, riducendo il problema sopra citato.

2. Sensibilità

Una piccola modifica nei dati di addestramento può comportare la creazione di un albero decisionale completamente diverso, il che potrebbe non essere ideale in situazioni in cui è richiesta una certa stabilità nel modello.

Conclusioni

In questo articolo ti ho parlato dei PRO e dei CONTRO del Decision Tree, uno degli algoritmi più utili e utilizzati tra quelli di Machine Learning.

Se ti interessano questi temi ti consiglio di dare un’occhiata al mio blog, Pulp Learning e magari anche al mio profilo LinkedIn, dove cerco di pubblicare ogni giorno argomenti di Data Science e Machine Learning –> Davide Nardini

Grazie e alla prossima!