Clustering di precisione reso semplice La guida di kscorer per la selezione automatica di cluster ottimali tramite K-means

Clustering di precisione semplificato La guida di kscorer per la selezione automatica ottimale dei cluster tramite K-means

kscorer semplifica il processo di clustering e offre un approccio pratico all’analisi dei dati attraverso scoring avanzato e parallelizzazione

Realizzato da DALL-E-2 secondo la descrizione dell'autore

L’apprendimento automatico non supervisionato, in particolare il clustering, è un compito impegnativo nella scienza dei dati. È fondamentale per una vasta gamma di progetti pratici di analisi aziendale. Il clustering può funzionare autonomamente, ma è anche un componente prezioso nelle pipeline di elaborazione dati complesse che migliorano l’efficienza di altri algoritmi. Ad esempio, il clustering svolge un ruolo cruciale nello sviluppo di un sistema di raccomandazione.

Beh, Scikit-Learn offre notoriamente vari algoritmi di clustering provati. Tuttavia, la maggior parte di essi sono parametrici e richiedono di impostare il numero di cluster, che è una delle sfide più significative nel clustering.

Comunemente, viene utilizzato un metodo iterativo per decidere il numero ottimale di cluster quando si lavora con i dati. Ciò significa che si esegue il clustering più volte, ogni volta con un diverso numero di cluster, e si valuta il risultato corrispondente. Sebbene questa tecnica sia utile, ha anche dei limiti.

Il pacchetto yellowbrick è uno strumento comunemente utilizzato che facilita l’individuazione del numero ottimale di cluster. Tuttavia, ha anche alcuni svantaggi. Un grave inconveniente è la possibilità di risultati contrastanti durante la valutazione di più metriche e la sfida di individuare un punto di flessione nel diagramma.

Inoltre, le dimensioni dei dati rappresentano un altro problema, indipendentemente dal pacchetto utilizzato. Quando si lavora con grandi set di dati, le difficoltà legate al consumo delle risorse possono ostacolare la possibilità di iterare efficientemente attraverso una vasta gamma di cluster. Se questo è il caso, si consiglia di esplorare tecniche come MiniBatchKMeans, che consentono il clustering parallelo.

Tuttavia, l’ottimizzazione avanzata della routine di clustering potrebbe richiedere tecniche meno conosciute, descritte di seguito. Inoltre, scoprirai il pacchetto kscorer, che semplifica queste tecniche, offrendo un approccio più robusto ed efficiente per determinare il numero ottimale di cluster.

Senza intoppi, le tecniche sono le seguenti:

  • Riduzione della dimensionalità. Può essere vantaggioso eseguire un’analisi delle componenti principali (PCA) sui dati prima di applicare l’algoritmo di clustering. Ciò ridurrà le interferenze dei dati e condurrà a un processo di clustering più affidabile.
  • Similarità del coseno. C’è un modo semplice per utilizzare distanze (approssimative) del coseno in K-means applicando la normalizzazione euclidea ai dati. Quindi non è necessario calcolare preventivamente una matrice di distanza, ad esempio durante l’esecuzione del clustering agglomerativo.
  • Molti metri a disposizione. Per trovare il numero ottimale di cluster, è necessario fare affidamento su una valutazione multimetrica invece di dipendere da una singola metrica.
  • Campionamento dei dati. Per affrontare i problemi di consumo delle risorse e migliorare i risultati del clustering, è possibile ottenere campioni casuali dai dati per eseguire operazioni di clustering e valutare metriche. La media dei punteggi da più iterazioni può ridurre l’effetto di casualità e produrre risultati più coerenti.

Questo flusso di lavoro è illustrato di seguito.

Immagine di un autore

Fortunatamente, non è necessario costruire l’intera pipeline da zero poiché un’implementazione è attualmente disponibile nel pacchetto kscorer.

Ora, approfondiamo un po’

Una volta ho sentito un data scientist affermare durante una conferenza: “In sostanza, puoi fare ciò che vuoi, purché tu sappia cosa stai facendo.” © Alex2006

È consigliato ridimensionare i dati prima del clustering per garantire che tutte le caratteristiche abbiano la stessa importanza e che nessuna domina a causa delle sue dimensioni. Standardizzazione (centrata sulla media e scalata diviso la deviazione standard) o ridimensionamento Min-Max (ridimensiona i valori in un intervallo specificato) sono tecniche comuni utilizzate per il ridimensionamento.

Vale la pena notare che l’importanza del ridimensionamento delle caratteristiche, perfettamente illustrata qui, non si limita solo ai modelli KNeighbors ma si applica anche a varie metodologie di data science. La standardizzazione delle caratteristiche tramite normalizzazione dei punteggi z assicura che tutte le caratteristiche abbiano la stessa scala, evitando che una caratteristica domini l’adattamento del modello a causa delle sue dimensioni. Questa procedura di ridimensionamento può influire significativamente sulle prestazioni del modello, portando a diversi adattamenti del modello rispetto all’utilizzo dei dati non ridimensionati.

Inoltre, c’è un collegamento fondamentale tra il clustering K-means e PCA, esplorato nel documento di Ding e He “Clustering K-means tramite Analisi delle Componenti Principali”. Sebbene inizialmente servano a scopi distinti, queste tecniche mirano a rappresentare in modo efficiente i dati riducendo gli errori di ricostruzione. PCA mira a rappresentare i vettori dei dati come una combinazione di un numero ridotto di autovettori. Al contrario, il clustering K-means mira a rappresentare i vettori dei dati come una combinazione di vettori centroidi dei cluster. Entrambi gli approcci cercano di minimizzare l’errore quadratico medio di ricostruzione.

Dopo aver applicato PCA, ridimensioneremo nuovamente i nostri dati a causa di problemi computazionali che potrebbero sorgere (alcuni valori potrebbero essere vicini a zero mentre altri saranno piuttosto grandi). Questo ha perfettamente senso poiché abbiamo già perso traccia delle nostre caratteristiche iniziali (dopo PCA), quindi non ci sarà interpretazione dei dati.

Un’altra correlazione interessante che potrebbe non essere comunemente conosciuta è tra Similarità del coseno e Distanza Euclidea. Capire la relazione tra queste misure è fondamentale quando vengono utilizzate in modo interscambiabile, sebbene in modo indiretto. Questa conoscenza ha un’applicazione pratica nella trasformazione dell’algoritmo di clustering K-means tradizionale nell’algoritmo di clustering K-means sferico, in cui la similarità del coseno è una metrica essenziale per il clustering dei dati. Come accennato in precedenza, possiamo “stabilire” la connessione tra la similarità del coseno e la distanza euclidea applicando la normalizzazione euclidea ai dati.

In assenza delle etichette di cluster di base, la valutazione dei modelli di clustering deve fare affidamento su misure intrinseche, e il pacchetto kscorer offre un set completo di indicatori per valutare la qualità del clustering. Questi indicatori forniscono una preziosa visione del grado di separazione tra i cluster riconosciuti:

  • Coeficiente di Silhouette. Quantifica la separazione dei cluster calcolando la differenza tra la distanza media al cluster più vicino a cui un punto dati non appartiene e la distanza media intra-cluster per ogni punto dati. Il risultato è standardizzato e espresso come rapporto tra i due, con valori elevati che indicano una migliore separazione dei cluster.
  • Indice di Calinski-Harabasz. Calcola il rapporto tra la dispersione tra cluster e la dispersione all’interno dei cluster. Un punteggio più alto nel test di Calinski-Harabasz indica una migliore performance di clustering, indicando cluster ben definiti.
  • Indice di Davies-Bouldin. Misura il rapporto tra la dispersione tra i cluster e la dispersione all’interno dei cluster, con un valore più basso che indica una migliore performance di clustering e cluster più distinti.
  • Indice di Dunn. Valuta la qualità del cluster confrontando la distanza intercluster (la distanza più piccola tra due centroidi di cluster) con la distanza intracluster (la distanza più grande tra due punti all’interno di un cluster). Un indice di Dunn più alto indica cluster più ben definiti.

Il calcolo in Python per l’indice utilizzato nel pacchetto è così descritto:

  • Criterio di Informazione Bayesiano (BIC). BIC funge da metrica aggiuntiva e in parte indipendente. Mentre K-means non offre un modello probabilistico diretto, BIC può aiutare a stimare la distribuzione dei dati dopo l’applicazione di un modello K-means. Questo approccio fornisce una valutazione più completa della qualità del cluster.

Tutte le metriche sono standardizzate, garantendo che punteggi più alti indichino costantemente cluster ben definiti. Questa valutazione approfondita è fondamentale per identificare il numero ottimale di cluster in un set di dati.

Per superare le limitazioni di memoria ed eseguire rapidamente operazioni di pre-elaborazione dei dati e di punteggio per il clustering K-means, il pacchetto kscorer utilizza N campioni di dati casuali. Questo approccio garantisce un’esecuzione senza problemi e si adatta a set di dati di diverse dimensioni e strutture. Simile alle tecniche di cross-validation, mantiene risultati robusti, anche se ogni iterazione si concentra su un sottoinsieme limitato dei dati.

Esperienza pratica con kscorer

Quindi, abbiamo alcuni dati per il clustering. Si prega di notare che fingiamo di non conoscere il numero esatto di cluster in questo scenario.

Procedendo, divideremo il nostro set di dati in set di allenamento e di test e adatteremo un modello per individuare il numero ottimale di cluster. Il modello cercherà automaticamente il numero ottimale di cluster tra 3 e 15. Questo può essere facilmente ottenuto nel seguente modo:

Dopo aver completato il processo di adattamento, possiamo esaminare i punteggi scalati per tutte le metriche utilizzate. Questo ci aiuterà a determinare il miglior numero di cluster per i nostri dati disponibili. Quando controlli il grafico, noterai che alcuni cluster sono evidenziati con i punteggi corrispondenti. Questi punti etichettati corrispondono ai massimi locali dei punteggi medi su tutte le metriche e rappresentano quindi le migliori opzioni per la selezione del numero ottimale di cluster.

Ora, possiamo valutare quanto bene le nostre nuove etichette di cluster corrispondano alle etichette reali. Assicurati che questa opzione di solito non sia disponibile in scenari di business pratici 😉

In un movimento insolito nel clustering, potresti provare a raggruppare dati che non sono mai stati visti prima. Ma nota che questo non è un compito di clustering tipico. Una strategia diversa e spesso più utile sarebbe creare un classificatore utilizzando le etichette di cluster come target. Questo faciliterà l’assegnazione di etichette di cluster a nuovi dati.

E, infine, una nuova prospettiva interattiva sui nostri dati.

Ecco come ci siamo addentrati nel clustering K-means utilizzando il pacchetto kscorer, che semplifica il processo di individuazione del numero ottimale di cluster. Grazie alle sue complesse metriche e all’elaborazione parallela, si è rivelato uno strumento pratico per l’analisi dei dati.