L’utilizzo delle funzioni MATLAB per costruire modelli di clustering, come nel caso dell’analisi di un dataset sul diabete, offre un approccio robusto e flessibile per comprendere la distribuzione dei dati. Un esempio concreto è l’applicazione del modello a misture gaussiane (GMM) su due variabili cliniche: glucosio e indice di massa corporea (BMI). L’input, una matrice X composta da questi due attributi estratti da un database, viene sottoposto a una procedura che prevede la definizione di parametri e opzioni essenziali per la convergenza e la struttura della matrice di covarianza, in questo caso diagonale, sebbene possa essere scelta anche la forma completa.

Per agevolare la rappresentazione grafica, si costruisce una griglia bidimensionale mediante la funzione meshgrid, che consente di generare un reticolo regolare di punti su cui valutare la distribuzione probabilistica del modello. L’uso di linspace per definire gli estremi di questa griglia è strategico: si estende leggermente il dominio di analisi rispetto ai valori minimi e massimi osservati, consentendo una migliore visualizzazione dei contorni di probabilità.

La scelta del criterio di clustering si basa su una soglia calcolata tramite la funzione chi2inv, che determina il confine entro il quale i dati sono considerati appartenenti a una componente del modello, usando la distribuzione chi-quadrato con due gradi di libertà e un livello di confidenza del 99%. Questo approccio assicura una separazione statistica significativa tra i cluster, riflettendo la natura probabilistica della classificazione.

Il modello GMM viene quindi costruito tramite la funzione fitgmdist, che, dati i parametri impostati, ottimizza la composizione e i pesi delle gaussiane per meglio adattarsi ai dati. La successiva assegnazione dei punti ai cluster si effettua con cluster, che assegna ogni osservazione al componente con la massima probabilità a posteriori. Questo produce un vettore di clusterizzazione che distingue chiaramente i due gruppi.

La funzione mahal permette di calcolare le distanze di Mahalanobis, strumento fondamentale per valutare quanto un punto si discosta dalle medie dei cluster, tenendo conto della covarianza dei dati. Questi valori sono cruciali per identificare i punti all’interno del confine definito dalla soglia e quindi per tracciare con precisione le ellissi rappresentanti le distribuzioni gaussiane.

Dal punto di vista grafico, il processo coinvolge la creazione di due figure separate per ciascun cluster, evidenziando i punti originali con colori distinti, e sovrapponendo le ellissi che rappresentano la probabilità delle componenti GMM. L’uso del comando hold on consente di stratificare i vari elementi della visualizzazione senza perdere le informazioni precedentemente disegnate.

È importante sottolineare che, sebbene la matrice di covarianza diagonale sia spesso preferita per la semplicità computazionale e l’interpretabilità, l’adozione di una matrice completa può catturare meglio la correlazione tra variabili, migliorando la qualità del modello a costo di una maggiore complessità. Questa scelta dipende dalla natura del dataset e dagli obiettivi dell’analisi.

La metodologia descritta, benché applicata a un caso specifico, è generale e può essere estesa a diversi tipi di dati multidimensionali, a patto che si presti attenzione alla corretta impostazione dei parametri e all’interpretazione statistica dei risultati. La comprensione delle funzioni chiave, come fitgmdist, cluster e mahal, è essenziale per padroneggiare l’implementazione pratica di modelli di clustering basati su GMM in MATLAB.

Oltre a quanto esposto, è fondamentale che il lettore consideri la natura intrinseca dei dati e le assunzioni implicite nei modelli di misture gaussiane, quali la normalità delle distribuzioni sottostanti e l’indipendenza delle componenti quando si usa una covarianza diagonale. L’accuratezza del clustering dipende anche dalla corretta scelta del numero di cluster e dall’adeguatezza dei dati rispetto al modello scelto. Infine, la visualizzazione grafica non solo conferma il risultato quantitativo, ma fornisce un’importante interpretazione qualitativa, indispensabile per comunicare efficacemente le conclusioni in ambito scientifico o applicativo.

Come funzionano gli alberi decisionali e l’entropia nella gestione dell’incertezza?

Gli alberi decisionali sono strumenti fondamentali nell’analisi delle decisioni e nell’apprendimento automatico, capaci di guidare la scelta tra alternative sulla base di condizioni variabili. Essi si presentano come una struttura ramificata simile a un diagramma di flusso, in cui ogni nodo interno rappresenta un test su un attributo, ogni ramo è l’esito di quel test, e ogni nodo foglia indica una decisione finale o una classificazione. Questa struttura gerarchica inizia da un nodo radice, che rappresenta il punto di partenza da cui i dati si dividono progressivamente secondo le caratteristiche considerate.

In ambito decisionale, gli alberi sono utilizzati insieme ai diagrammi di influenza per supportare analiticamente e visivamente le scelte, calcolando valori attesi o utilità attesa delle alternative in gioco. I nodi si distinguono in tre categorie: nodi decisionali (rappresentati da quadrati), nodi di test o di probabilità (cerchi) e nodi terminali (triangoli), che indicano l’esito finale. Un esempio tipico è la scelta di effettuare un viaggio basata sulle condizioni meteorologiche: i nodi di test valutano temperatura, umidità e vento, mentre i nodi decisionali indicano se partire o restare a casa.

Gli alberi decisionali possono essere visti come una serie complessa di istruzioni condizionali "se-allora", dove ogni verifica conduce a un ramo successivo. Dal punto di vista dell’apprendimento automatico, rappresentano un algoritmo non parametrico supervisionato, applicabile sia per problemi di classificazione sia di regressione. Le principali terminologie includono il nodo radice, i nodi di test (che rappresentano le suddivisioni), i nodi foglia (decisioni finali) e i sottoalberi, parti dell’albero più piccole che possono essere analizzate singolarmente. Il processo di potatura (pruning) è essenziale per evitare il fenomeno di overfitting, ovvero l’adattamento eccessivo dell’albero ai dati di addestramento che compromette la sua capacità di generalizzazione.

La scelta del nodo radice e il momento in cui interrompere la suddivisione sono guidati da metriche di incertezza, tra cui l’entropia, che misura il grado di disordine o incertezza di un insieme di dati. L’entropia, concetto originario della fisica, riflette la quantità di confusione o casualità presente: esempi comuni sono il passaggio da uno stato ordinato a uno più disordinato, come il ghiaccio che si scioglie o il sale che si dissolve. Nel contesto decisionale, l’entropia valuta quanto una decisione è incerta o "impura".

Per comprendere l’entropia nel contesto decisionale, si può considerare un semplice esempio di votazione tra due destinazioni di viaggio: Parigi e Londra. Se 6 studenti votano per Parigi e 5 per Londra, l’incertezza è massima perché non emerge una chiara maggioranza. Se invece 8 votano Parigi e 3 Londra, l’entropia diminuisce e la decisione risulta più semplice. Matematicamente, l’entropia è calcolata come la somma negativa dei prodotti tra la probabilità di ciascuna classe e il logaritmo in base 2 di tale probabilità. In un dataset con due classi, positiva e negativa, la formula si riduce a questa somma per le due probabilità. Il valore ottenuto varia tra 0 (purezza totale, nessuna incertezza) e 1 (massima impurità o incertezza).

L’entropia quindi consente di misurare la "randomicità" o il disordine in un nodo dell’albero decisionale, orientando il processo di suddivisione verso nodi sempre più "puri". La finalità è ottenere sottogruppi con decisioni più nette e affidabili, riducendo l’incertezza residua. Un nodo con elevata impurità indica che i dati sono mescolati e non è chiaro quale decisione prendere, mentre un nodo con bassa impurità suggerisce che la decisione è chiara e ben definita.

Inoltre, è cruciale comprendere che la qualità di un albero decisionale non dipende solo dall’entropia ma anche dall’equilibrio tra profondità dell’albero e capacità di generalizzazione. Un albero troppo profondo rischia di "memorizzare" rumore e dettagli non rilevanti, perdendo efficacia sui dati nuovi. Per questo motivo, l’analisi dell’entropia deve essere integrata con tecniche di potatura e con la valutazione complessiva della performance del modello.

Un aspetto non trascurabile è la natura non parametrica dell’albero decisionale: non fa assunzioni specifiche sulla distribuzione dei dati e può gestire sia attributi numerici sia categorici. Questo lo rende uno strumento versatile in molteplici campi, dalla finanza alla medicina, dall’ingegneria ai sistemi di supporto alle decisioni.

Come si costruisce e si valuta un modello ad albero di regressione: selezione delle caratteristiche, allenamento e previsione

Nel processo di creazione di un modello ad albero di regressione, un passaggio fondamentale è l’ottimizzazione delle caratteristiche (feature selection) utilizzate per l’allenamento del modello. La selezione accurata delle variabili predittive consente di migliorare le prestazioni del modello, ridurre il rischio di overfitting e semplificare l’interpretazione. Nel contesto qui descritto, dopo aver aggiunto un modello ad albero multiplo nell’interfaccia di lavoro, si procede con l’attivazione di un wizard di selezione delle caratteristiche, che offre due algoritmi di ranking: MRMR e F Test. Nel caso specifico, si sceglie l’F Test per classificare le variabili in base alla loro rilevanza e si selezionano le quattro migliori tra le sette disponibili, mantenendo l’opzione di selezionare solo le caratteristiche più alte per evitare bias nella validazione.

Successivamente, il modello viene riaddestrato utilizzando esclusivamente le caratteristiche selezionate, e vengono generati nuovi modelli che mostrano quante variabili sono state effettivamente utilizzate. Per analizzare la bontà dell’addestramento, si ricorre alla visualizzazione dei residui tramite un grafico di tipo lineare, che consente di confrontare gli errori di predizione tra modelli con diverse configurazioni di feature. È interessante osservare come il modello ottimizzato su quattro predittori mostri prestazioni leggermente inferiori rispetto al modello completo con sette variabili, suggerendo un compromesso tra semplicità e accuratezza.

Un aspetto cruciale del flusso di lavoro è l’esportazione del modello in una versione completa o compatta, quest’ultima senza dati di training ma comunque utilizzabile per predizioni su nuovi dataset. Questo passaggio facilita l’integrazione del modello in ambienti esterni e l’esecuzione di previsioni autonome.

La fase di testing richiede particolare attenzione: il dataset di test deve replicare esattamente la struttura, i nomi e l’ordine delle variabili presenti nel dataset di training, per garantire la corretta applicazione del modello. L’esecuzione della funzione di previsione, inclusa nell’oggetto modello esportato, permette di ottenere le stime sui dati nuovi, seguendo un protocollo chiaro di passaggio dei dati e di chiamata alla funzione. La costruzione del dataset di test in codice deve quindi rispettare tali requisiti per ottenere risultati coerenti e affidabili.

Dal punto di vista della programmazione, la distinzione tra la classe base CompactRegressionTree e la sua derivata RegressionTree permette una gestione più flessibile dei modelli: la versione compatta, priva dei dati di training, è limitata in alcune operazioni ma utile per predizioni snelle e veloci, mentre la versione completa consente una manipolazione più approfondita e l’uso di funzioni avanzate come la cross-validation.

L’uso della funzione fitrtree() rappresenta il metodo principale per creare oggetti di tipo RegressionTree in MATLAB, offrendo numerose proprietà e opzioni per modellare in modo sofisticato e personalizzato alberi di regressione. Questa funzione è il punto di partenza per una modellazione robusta, capace di sfruttare appieno le potenzialità degli alberi decisionali per la regressione.

È importante sottolineare che, oltre alla corretta implementazione tecnica, il lettore deve comprendere come la selezione delle caratteristiche influenzi direttamente l’equilibrio tra complessità e performance del modello, e come la preparazione dei dati di test sia essenziale per validare efficacemente il modello. Un modello performante non è solo quello che predice con precisione sul dataset di training, ma soprattutto quello che generalizza bene su dati nuovi, con caratteristiche coerenti. Infine, la conoscenza della struttura degli oggetti modello e delle funzioni correlate consente di integrare facilmente la modellazione in flussi di lavoro più ampi, garantendo modularità e riutilizzabilità del codice.

Come si predispone un dataset per l’addestramento di modelli di classificazione multilabel nel contesto del diabete?

Nel trattamento di dati per modelli di classificazione, uno degli aspetti cruciali è la preparazione accurata del dataset originale per garantire la correttezza e l’efficacia dell’addestramento. Nel caso specifico del dataset originale sul diabete, denominato "Dataset of Diabetes.csv", si riscontra una mescolanza tra dati numerici e stringhe di testo, come nella colonna "Gender" che contiene valori testuali (“M” e “F”), e la presenza di una distribuzione non uniforme delle classi nella colonna finale "CLASS". Questa ultima caratteristica è particolarmente problematica perché, per esempio, i primi 107 record hanno tutti la classe “N”, mentre la classe “Y” occupa oltre 800 righe, generando un bias che compromette la validità del modello predittivo.

Per risolvere questi problemi, il dataset deve essere modificato in modo da ottenere dati esclusivamente numerici e una distribuzione casuale delle istanze. La conversione delle variabili testuali in valori numerici, come la trasformazione di “M” in 1 e “F” in 0 nella colonna “Gender”, consente ai modelli di classificazione di operare su un insieme dati omogeneo e numericamente interpretabile. Questa conversione è realizzata mediante l’uso della funzione strcmp() in MATLAB, che confronta ogni valore testuale e assegna il corrispondente valore numerico.

Successivamente, si procede con la randomizzazione dell’ordine delle righe del dataset per assicurare che l’addestramento e il test del modello non siano influenzati da una distribuzione sequenziale delle classi. L’uso di un ciclo for abbinato alla funzione randi() consente di estrarre casualmente righe dall’insieme originale per generare un nuovo dataset che mantiene la stessa struttura ma con una disposizione randomizzata delle istanze. Questo processo si conclude con la scrittura del nuovo dataset in un file Excel, più agevole da manipolare.

Con il dataset così modificato, denominato "Dataset of Diabetes_M.xlsx", è possibile implementare diversi algoritmi di classificazione multilabel. Nel contesto presentato, sono stati utilizzati tre algoritmi principali: K-Nearest Neighbors (KNN) tramite la funzione fitcknn(), Naive Bayes con fitcnb(), e Error-Correcting Output Codes (ECOC) con fitcecoc(). Questi modelli vengono addestrati utilizzando i dati di training, composti da 900 record, mentre i restanti 100 record sono destinati al test. La valutazione della bontà della classificazione è supportata dalla rappresentazione grafica delle matrici di confusione, che consentono di visualizzare le performance dei modelli nel distinguere correttamente le classi previste rispetto a quelle reali.

L’approccio descritto sottolinea l’importanza di una fase preliminare di preprocessing meticolosa, senza la quale i modelli di machine learning rischierebbero di imparare pattern fuorvianti o inefficaci. La trasformazione delle variabili testuali in valori numerici non è solo una mera formalità tecnica, ma una condizione imprescindibile affinché le funzioni di classificazione di MATLAB possano operare correttamente.

La randomizzazione del dataset è altrettanto essenziale, in quanto garantisce una distribuzione più equilibrata e imparziale delle classi, evitando che il modello sviluppi un bias verso categorie eccessivamente rappresentate in sequenza. Questo processo permette di ottenere risultati più affidabili e generalizzabili.

Oltre a ciò, è importante che il lettore comprenda come la scelta e la configurazione del modello di classificazione siano strettamente connesse alla qualità e alla preparazione del dataset. Anche i migliori algoritmi falliscono se alimentati con dati non correttamente preparati o non rappresentativi del problema reale. Inoltre, la comprensione delle matrici di confusione e delle metriche derivate è fondamentale per valutare criticamente le performance del modello e individuare eventuali margini di miglioramento.

In conclusione, il procedimento descritto rappresenta un esempio concreto e dettagliato di come il preprocessing, la codifica delle variabili e la randomizzazione siano fasi imprescindibili per un’analisi di classificazione multilabel efficace, specialmente in ambiti complessi come quello medico. Solo con una solida base dati è possibile proseguire con l’implementazione e la valutazione dei modelli di machine learning, assicurandosi che le predizioni siano attendibili e utili per successive applicazioni cliniche o di ricerca.