Seguici sui social

AI 101

Che cos'è un albero decisionale?

mm

Che cos'è un albero decisionale?

A albero decisionale è un utile algoritmo di machine learning utilizzato sia per attività di regressione che di classificazione. Il nome “albero decisionale” deriva dal fatto che l’algoritmo continua a dividere il set di dati in porzioni sempre più piccole finché i dati non vengono divisi in singole istanze, che vengono poi classificate. Se dovessi visualizzare i risultati dell'algoritmo, il modo in cui sono divise le categorie assomiglierebbe a un albero e molte foglie.

Questa è una rapida definizione di albero decisionale, ma approfondiamo il funzionamento degli alberi decisionali. Avere una migliore comprensione di come funzionano gli alberi decisionali, così come i loro casi d'uso, ti aiuterà a sapere quando utilizzarli durante i tuoi progetti di machine learning.

Formato di un albero decisionale

Un albero decisionale è molto simile a un diagramma di flusso. Per utilizzare un diagramma di flusso si inizia dal punto di partenza, o radice, del grafico e poi, in base a come si risponde ai criteri di filtraggio di quel nodo iniziale, si passa a uno dei prossimi possibili nodi. Questo processo viene ripetuto finché non si raggiunge un finale.

Gli alberi decisionali funzionano essenzialmente allo stesso modo, con ogni nodo interno nell'albero che è una sorta di criterio di test/filtro. I nodi all'esterno, i punti finali dell'albero, sono le etichette per il datapoint in questione e sono soprannominati "foglie". I rami che portano dai nodi interni al nodo successivo sono caratteristiche o congiunzioni di caratteristiche. Le regole utilizzate per classificare i datapoint sono i percorsi che vanno dalla radice alle foglie.

Algoritmi per alberi decisionali

Gli alberi decisionali operano su un approccio algoritmico che suddivide il set di dati in singoli punti dati in base a criteri diversi. Queste suddivisioni vengono eseguite con variabili diverse o con le diverse caratteristiche del set di dati. Ad esempio, se l'obiettivo è determinare se un cane o un gatto viene descritto o meno dalle caratteristiche di input, le variabili su cui vengono suddivisi i dati potrebbero essere cose come "artigli" e "cortecce".

Quindi quali algoritmi vengono utilizzati per suddividere effettivamente i dati in rami e foglie? Esistono vari metodi che possono essere utilizzati per dividere un albero, ma il metodo più comune di divisione è probabilmente una tecnica denominata "scissione binaria ricorsiva”. Quando si esegue questo metodo di suddivisione, il processo inizia dalla radice e il numero di caratteristiche nel set di dati rappresenta il numero possibile di possibili suddivisioni. Viene utilizzata una funzione per determinare quanta precisione costerà ogni possibile suddivisione e la suddivisione viene effettuata utilizzando i criteri che sacrificano la minima precisione. Questo processo viene eseguito in modo ricorsivo e i sottogruppi vengono formati utilizzando la stessa strategia generale.

Per determinare il costo della divisione, viene utilizzata una funzione di costo. Una funzione di costo diversa viene utilizzata per le attività di regressione e di classificazione. L'obiettivo di entrambe le funzioni di costo è determinare quali rami hanno i valori di risposta più simili o i rami più omogenei. Considera che vuoi che i dati di prova di una certa classe seguano determinati percorsi e questo ha un senso intuitivo.

In termini di funzione di costo di regressione per la divisione binaria ricorsiva, l'algoritmo utilizzato per calcolare il costo è il seguente:

sum(y – previsione)^2

La previsione per un particolare gruppo di punti dati è la media delle risposte dei dati di addestramento per quel gruppo. Tutti i punti dati vengono eseguiti attraverso la funzione di costo per determinare il costo per tutte le possibili suddivisioni e viene selezionata la suddivisione con il costo più basso.

Per quanto riguarda la funzione di costo per la classificazione, la funzione è la seguente:

G = somma(pk * (1 – pk))

Questo è il punteggio di Gini, ed è una misura dell'efficacia di una scissione, in base a quante istanze di classi diverse si trovano nei gruppi risultanti dalla scissione. In altre parole, quantifica quanto sono misti i gruppi dopo la scissione. Una divisione ottimale è quando tutti i gruppi risultanti dalla divisione sono costituiti solo da input di una classe. Se è stata creata una suddivisione ottimale, il valore "pk" sarà 0 o 1 e G sarà uguale a zero. Potresti essere in grado di indovinare che la divisione nel caso peggiore è quella in cui è presente una rappresentazione 50-50 delle classi nella divisione, nel caso della classificazione binaria. In questo caso, il valore "pk" sarebbe 0.5 e anche G sarebbe 0.5.

Il processo di suddivisione termina quando tutti i punti dati sono stati trasformati in foglie e classificati. Tuttavia, potresti voler interrompere la crescita dell'albero in anticipo. I grandi alberi complessi sono soggetti a overfitting, ma è possibile utilizzare diversi metodi per combatterlo. Un metodo per ridurre l'overfitting consiste nello specificare un numero minimo di punti dati che verranno utilizzati per creare una foglia. Un altro metodo per controllare l'overfitting consiste nel limitare l'albero a una certa profondità massima, che controlla per quanto tempo un percorso può estendersi dalla radice a una foglia.

Un altro processo coinvolto nella creazione di alberi decisionali è la potatura. La potatura può aiutare ad aumentare le prestazioni di un albero decisionale eliminando i rami contenenti caratteristiche che hanno scarso potere predittivo/poca importanza per il modello. In questo modo, la complessità dell'albero viene ridotta, diventa meno probabile che si adatti eccessivamente e l'utilità predittiva del modello aumenta.

Quando si esegue la potatura, il processo può iniziare in cima o in fondo all'albero. Tuttavia, il metodo di potatura più semplice consiste nell'iniziare con le foglie e tentare di eliminare il nodo che contiene la classe più comune all'interno di quella foglia. Se l'accuratezza del modello non si deteriora quando si esegue questa operazione, la modifica viene preservata. Esistono altre tecniche utilizzate per eseguire il pruning, ma il metodo sopra descritto – pruning a errore ridotto – è probabilmente il metodo più comune per il pruning dell'albero decisionale.

Considerazioni sull'utilizzo degli alberi decisionali

Alberi decisionali sono spesso utili quando è necessario eseguire la classificazione ma il tempo di calcolo è un vincolo importante. Gli alberi decisionali possono chiarire quali caratteristiche nei set di dati scelti esercitano il maggior potere predittivo. Inoltre, a differenza di molti algoritmi di apprendimento automatico in cui le regole utilizzate per classificare i dati possono essere difficili da interpretare, gli alberi decisionali possono rendere interpretabili le regole. Gli alberi decisionali sono anche in grado di utilizzare sia variabili categoriche che continue, il che significa che è necessaria una minore preelaborazione rispetto agli algoritmi che possono gestire solo uno di questi tipi di variabili.

Gli alberi decisionali tendono a non funzionare molto bene quando vengono utilizzati per determinare i valori degli attributi continui. Un'altra limitazione degli alberi decisionali è che, quando si esegue la classificazione, se ci sono pochi esempi di addestramento ma molte classi, l'albero decisionale tende ad essere impreciso.

Blogger e programmatore con specialità in machine Learning e Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.