L’algoritmo C4.5 in Machine Learning con Python

C4.5 header

L’algoritmo C4.5 è un algoritmo di apprendimento automatico ampiamente utilizzato per la costruzione di alberi di decisione. Gli alberi di decisione sono una forma di modello predittivo che può essere utilizzata sia per problemi di classificazione che per problemi di regressione. C4.5 è una versione migliorata dell’algoritmo ID3 (Iterative Dichotomiser 3) sviluppato da Ross Quinlan ed è stato introdotto negli anni ’90. Ecco come funziona l’algoritmo C4.5 e come utilizzarlo in Python.

  • Supervised
    Learning
    • Decision
      Trees
      • Random
        Forest
      • Gradient
        Boosting
      • CHAID
    • Scikit-learn

L’algoritmo C4.5

L’obiettivo principale di C4.5 è costruire un albero di decisione che possa essere utilizzato per classificare gli esempi o prevedere valori continui in base alle caratteristiche (variabili predittive) dei dati di addestramento. Ecco una panoramica dei passaggi principali dell’algoritmo C4.5:

  1. Selezione della variabile predittiva: L’algoritmo C4.5 inizia selezionando la variabile predittiva (caratteristica) che offre la migliore suddivisione dei dati di addestramento in base alla variabile target (classe o valore da prevedere). Questa selezione è basata su misure di impurità come l’entropia o l’indice di Gini.
  2. Divisione dei dati: Una volta selezionata la variabile predittiva, l’algoritmo C4.5 suddivide i dati di addestramento in base ai valori della variabile predittiva. Per le variabili continue, vengono identificati i punti di divisione ottimali.
  3. Ricorsione: Il processo di selezione della variabile predittiva e divisione dei dati viene ripetuto ricorsivamente per ciascun sottoinsieme di dati creato dalla divisione precedente. L’algoritmo continua a costruire l’albero fino a quando viene soddisfatto un criterio di arresto, come una profondità massima raggiunta o una purezza sufficiente dei nodi foglia.
  4. Creazione di nodi foglia: Quando viene raggiunto un nodo in cui tutti gli esempi appartengono alla stessa classe (per problemi di classificazione) o la variazione del valore target è al di sotto di una certa soglia (per problemi di regressione), viene creato un nodo foglia che rappresenta la previsione.

Un po’ di Storia

L’algoritmo C4.5 è stato sviluppato da Ross Quinlan ed è una delle pietre miliari nella storia dell’apprendimento automatico. Il suo sviluppo è iniziato nei primi anni ’80, ed è stato introdotto per la prima volta nel 1986 nel libro di Quinlan intitolato “Induction of Decision Trees” (Induzione di Alberi di Decisione).

Ecco alcune tappe importanti nella storia dell’algoritmo C4.5:

  1. ID3 (Iterative Dichotomiser 3): Prima di C4.5, Quinlan aveva sviluppato un predecessore chiamato ID3. ID3 era un algoritmo di apprendimento automatico che poteva costruire alberi di decisione utilizzando il concetto di entropia e selezionare la migliore variabile di divisione basata su misure di informazione. C4.5 è stato creato come un miglioramento di ID3.
  2. C4.5: C4.5 ha introdotto molte miglioramenti rispetto a ID3. Ad esempio, C4.5 è in grado di gestire dati con variabili continue, mentre ID3 trattava solo variabili categoriche. C4.5 ha anche introdotto il concetto di “gain ratio” per la selezione delle variabili di divisione, che è una misura di impurità basata su rapporti, migliorando la gestione di variabili con molte categorie. Questi miglioramenti lo hanno reso uno degli algoritmi di alberi di decisione più utilizzati ed efficaci.
  3. Successo e utilizzo: C4.5 ha ottenuto un grande successo nella comunità dell’apprendimento automatico e ha trovato applicazioni in una vasta gamma di settori, tra cui medicina, finanza, ingegneria e molto altro. La sua facilità di interpretazione e la capacità di gestire sia problemi di classificazione che di regressione lo hanno reso uno strumento prezioso per gli analisti dei dati e gli esperti di machine learning.
  4. Sviluppo successivo: C4.5 è diventato la base per lo sviluppo di molti altri algoritmi di alberi di decisione e algoritmi di ensemble come il Random Forest e il Gradient Boosting. Questi algoritmi si basano sul concetto di costruzione di alberi di decisione e hanno ulteriormente ampliato il campo dell’apprendimento automatico.

L’importanza di C4.5 nella storia dell’apprendimento automatico non può essere sottovalutata. Ha posto le basi per numerosi sviluppi successivi nell’ambito degli alberi di decisione e ha contribuito in modo significativo alla diffusione e all’uso dell’apprendimento automatico in una vasta gamma di applicazioni pratiche.

L’algoritmo C4.5 con Python

Scikit-learn, una delle librerie più popolari per il machine learning in Python, non include una specifica implementazione dell’algoritmo C4.5. Tuttavia, scikit-learn fornisce un algoritmo di albero di decisione che utilizza un approccio simile a C4.5, ma si basa sull’entropia come criterio predefinito per la selezione delle variabili.

Se hai una necessità specifica di lavorare con l’algoritmo C4.5 in Python, puoi cercare librerie o implementazioni personalizzate che lo supportino. Tuttavia, tieni presente che C4.5 è un algoritmo protetto da copyright e brevetto, ed è stato sostituito da C5.0 (il suo successore) e da altre varianti di algoritmi di alberi di decisione.

Su GitHub vi è una versione opensource dell’ algoritmo C4.5 in Python sviluppato da R. Quinlan

Una libreria popolare che offre una versione open source di C4.5 è “C5.0 for Python,” che implementa una versione compatibile di C5.0. Tuttavia, C5.0 ha funzionalità aggiuntive rispetto a C4.5, ed è spesso utilizzato a fini commerciali. Puoi trovare ulteriori informazioni sulla libreria C5.0 per Python su GitHub o su altri siti web che forniscono l’implementazione.

Ricorda che quando utilizzi qualsiasi libreria o implementazione di algoritmi, è importante rispettare i diritti d’autore e i brevetti, se applicabili.

Lascia un commento