kscorer semplifica il processo di clustering e fornisce un approccio pratico all’analisi dei dati attraverso il punteggio avanzato e la parallelizzazione
L’apprendimento automatico non supervisionato, in particolare il clustering, è un compito impegnativo nella scienza dei dati. È fondamentale per un’ampia gamma di progetti pratici di analisi aziendale. Il clustering può funzionare da solo, ma è anche un componente prezioso in complesse pipeline di elaborazione dati che migliorano l’efficienza di altri algoritmi. Ad esempio, il clustering gioca un ruolo cruciale nello sviluppo di a sistema di raccomandazione.
Bene, Scikit-Learn offre notoriamente vari algoritmi di clustering comprovati. Tuttavia, la maggior parte di essi sono parametrici e richiedono l’impostazione del numero di cluster, che rappresenta 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. Significa eseguire il clustering più volte, ogni volta con un numero diverso di cluster, e valutare il risultato corrispondente. Sebbene questa tecnica sia utile, presenta dei limiti.
IL pacchetto di mattoni gialli è uno strumento comunemente utilizzato che semplifica l’identificazione del numero ottimale di cluster. Tuttavia, presenta anche alcuni inconvenienti. Uno svantaggio significativo è la possibilità di risultati contrastanti quando si valutano più parametri e la difficoltà di identificarne uno gomito sul diagramma.
Inoltre, la dimensione del set di dati pone un altro problema, indipendentemente dal pacchetto utilizzato. Quando si lavora con set di dati di grandi dimensioni, le difficoltà di consumo delle risorse possono impedire la capacità di scorrere in modo efficiente un’ampia gamma di cluster. Se questo è il caso, valuta la possibilità di esplorare tecniche come MiniBatchKMeansche possono permettersi il clustering parallelo.
Ma l’ottimizzazione avanzata della routine di clustering potrebbe richiedere tecniche meno conosciute, descritte più avanti. Potrai anche conoscere il pacchetto kscorerche semplifica queste tecniche, offrendo un approccio più robusto ed efficiente per determinare il numero ottimale di cluster.
Senza intoppi, queste tecniche sono:
- Riduzione della dimensionalità. Potrebbe essere utile eseguire un’analisi delle componenti principali (PCA) sui dati prima di applicare l’algoritmo di clustering. Ciò ridurrà l’interferenza dei dati e porterà a un processo di clustering più affidabile.
- Somiglianza del coseno. Esiste un modo semplice per utilizzare le distanze coseno (approssimative) nelle medie K applicando la normalizzazione euclidea ai dati. In questo modo non è necessario precalcolare la matrice delle distanze, come durante l’esecuzione del clustering agglomerativo.
- Molti parametri a portata di mano. Per trovare il numero ottimale di cluster, si dovrebbe fare affidamento su una valutazione multimetrica invece che su una singola metrica.
- Campionamento dei dati. Per risolvere 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 le metriche. La media dei punteggi di più iterazioni può ridurre l’effetto della casualità e produrre risultati più coerenti.
Questo flusso di lavoro è illustrato di seguito.
Fortunatamente, non è necessario costruire l’intera pipeline da zero poiché un’implementazione è attualmente disponibile nel file pacchetto kscorer.
Una volta ho sentito uno scienziato dei dati affermare in una conferenza: “Fondamentalmente, puoi fare quello che vuoi, purché tu sappia cosa stai facendo.” © Alex2006
Si consiglia di ridimensionare i dati prima del clustering per garantire che tutte le funzionalità siano su un piano di parità e che nessuna prevalga a causa della loro grandezza. Standardizzazione (centrato attorno alla media e scalato in base alla deviazione standard) o Scala Min-Max (ridimensionamento dei valori in un intervallo specificato) sono tecniche comuni utilizzate per il ridimensionamento.
Vale la pena notare che l’importanza del ridimensionamento delle funzionalità è perfetta illustrato quinon è limitato ai soli modelli KNeighbors ma si applica anche a varie metodologie di data science. La standardizzazione delle caratteristiche attraverso la normalizzazione del punteggio z garantisce che tutte le caratteristiche siano sulla stessa scala, impedendo che qualsiasi caratteristica domini la regolazione del modello a causa della sua grandezza. Questa procedura di dimensionamento può avere un impatto significativo sulle prestazioni del modello, determinando aggiustamenti diversi del modello rispetto all’utilizzo di dati non dimensionati.
Inoltre, esiste un legame fondamentale tra il clustering K-means e PCAesplorato nell’articolo di Ding e He “K-significa clustering tramite analisi delle componenti principali”. Sebbene inizialmente servano a scopi distinti, queste tecniche mirano infine a rappresentare in modo efficiente i dati riducendo al minimo gli errori di ricostruzione. La PCA mira a rappresentare i vettori di dati come una combinazione di un numero ridotto di autovettori. Al contrario, il clustering K-means mira a rappresentare i vettori di dati come una combinazione di vettori centroidi del cluster. Entrambi gli approcci mirano a minimizzare l’errore di ricostruzione del valore quadratico medio.
Dopo aver applicato la PCA, ridimensioneremo nuovamente i nostri dati a causa di problemi computazionali che potrebbero sorgere (alcuni valori potrebbero essere vicini allo zero mentre altri saranno piuttosto grandi). Ciò ha perfettamente senso poiché abbiamo già perso traccia delle nostre caratteristiche iniziali (dopo PCA), quindi non ci sarà alcuna interpretazione dei dati.
Un’altra correlazione interessante che potrebbe non essere comunemente nota è tra Somiglianza del coseno e la distanza euclidea. Comprendere la relazione tra queste misure è cruciale quando vengono utilizzate in modo intercambiabile, anche se indirettamente. Questa conoscenza ha un’applicazione pratica nella trasformazione del tradizionale algoritmo di clustering K-means nell’algoritmo di clustering K-means sferico, dove la somiglianza del coseno è una metrica vitale per il clustering dei dati. Come accennato in precedenza, possiamo “stabilire” la connessione tra la somiglianza del coseno e la distanza euclidea applicando la normalizzazione euclidea ai dati.
In assenza di etichette di cluster di verità, la valutazione dei modelli di clustering deve fare affidamento su misure intrinseche pacchetto kscorer offre una serie completa di indicatori per valutare la qualità del clustering. Questi indicatori suggeriscono informazioni preziose sul grado di separazione tra i cluster riconosciuti:
- Coefficiente di sagoma. Quantifica la separazione dei cluster calcolando la differenza tra la distanza media dal cluster più vicino a cui non appartiene un punto dati e la distanza media all’interno del cluster per ciascun punto dati. Il risultato è standardizzato ed espresso come il rapporto tra i due, con valori elevati che indicano una separazione dei cluster superiore.
- Indice Calinski-Harabasz. Calcola il rapporto tra lo scattering tra cluster e lo scattering all’interno del cluster. Un punteggio più alto nel test Calinski-Harabasz indica migliori prestazioni di clustering, indicando cluster ben definiti.
- Indice Davies-Bouldin. Misura il rapporto tra la dispersione tra cluster e la dispersione all’interno del cluster, con un valore inferiore che indica prestazioni di clustering superiori e cluster più distinti.
- Indice Dunn. Valuta la qualità del cluster confrontando la distanza tra cluster (la distanza più piccola tra due centroidi qualsiasi del cluster) e la distanza intracluster (la distanza più grande tra due punti qualsiasi all’interno di un cluster). Un indice Dunn più alto indica cluster più ben definiti.
Il calcolo Python per l’indice utilizzato nel pacchetto è delineato come segue:
- Criterio informativo bayesiano (BIC). Il BIC funge da metrica aggiuntiva e in una certa misura indipendente. Sebbene le medie K non offrano un modello probabilistico diretto, BIC può aiutare a stimare la distribuzione dei dati dopo aver applicato un modello delle medie K. Questo approccio fornisce una valutazione più completa della qualità del cluster.
Tutti i parametri sono standardizzati, garantendo che i 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 i limiti di memoria ed eseguire opportunamente operazioni di preelaborazione e punteggio dei dati per il clustering K-means, il pacchetto kscorer utilizza N campioni di dati casuali. Questo approccio garantisce un’esecuzione senza interruzioni e si adatta a set di dati di diverse dimensioni e strutture. Simile alle tecniche di convalida incrociata, mantiene risultati robusti, anche se ogni iterazione si concentra su un sottoinsieme limitato di dati.
Quindi, abbiamo alcuni dati per il clustering. Tieni presente che facciamo finta di non conoscere il numero esatto di cluster in questo scenario.
Andando avanti, divideremo il nostro set di dati in set di training e set di test e adatteremo un modello per rilevare il numero ottimale di cluster. Il modello cercherà automaticamente il numero ottimale di cluster compreso tra 3 e 15. Questo può essere ottenuto facilmente come segue:
Dopo aver completato il processo di adattamento, possiamo rivedere i punteggi scalati per tutte le metriche applicate. 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 nei punteggi medi di tutti i parametri e rappresentano quindi le migliori opzioni per selezionare il numero ottimale di cluster.
Ora possiamo valutare in che misura le nostre nuove etichette di cluster corrispondono alle etichette reali. Assicurati che questa opzione solitamente non sia disponibile in scenari aziendali pratici 😉
Con una mossa insolita nel clustering, potresti provare a raggruppare dati mai visti prima. Ma tieni presente che questa non è una tipica attività di clustering. Una strategia diversa e spesso più utile sarebbe quella di creare un classificatore utilizzando le etichette dei cluster come obiettivi. Ciò semplificherà l’assegnazione delle etichette dei cluster ai nuovi dati.
E, infine, un fresco prospettiva interattiva sui nostri dati.
Quindi, è così che abbiamo approfondito il clustering K-means utilizzando il metodo pacchetto kscorerche semplifica il processo di ricerca del numero ottimale di cluster. Grazie alle sue metriche complesse e all’elaborazione parallela, si è rivelato uno strumento pratico per l’analisi dei dati.
Fonte: towardsdatascience.com