Clustering Scipy

Clustering Scipy
Per le persone che sono nuove nei linguaggi di programmazione, il concetto di clustering è anche nuovo per loro. Python è una delle lingue più utilizzate a livello globale. Questo linguaggio di programmazione di alto livello è più semplice e più semplice di qualsiasi altro linguaggio di programmazione di alto livello, che è il motivo principale per cui gli sviluppatori principianti tendono ad imparare prima il Python rispetto a qualsiasi altra lingua. In questo articolo, esploriamo la biblioteca Scipy del linguaggio di programmazione Python e cerchiamo di comprendere il concetto di clustering nel linguaggio di programmazione.

Cosa è Scipy nel linguaggio di programmazione Python?

Scipy è una libreria di calcolo scientifico open source e gratuita fornita dal linguaggio di programmazione Python. È costruito su Numpy; Quindi, estende anche le funzionalità della biblioteca numpy. Scipy è un'abbreviazione di Python scientifico e fornisce metodi utili per gestire qualsiasi applicazione scientifica. Utilizzando la libreria Scipy, puoi facilmente gestire qualsiasi tipo di problema matematico, scientifico, ottimizzazione, computazionale, elaborazione del segnale o statistica in un programma Python. Inoltre, fornisce varie utili tecniche di visualizzazione e manipolazione dei dati. Il clustering è uno dei metodi di base della libreria Scipy. Questo articolo è specificamente dedicato al clustering nel linguaggio di programmazione Python.

Cosa sta raggruppando nel linguaggio di programmazione Python?

Il clustering - come suggerisce il nome - fa cluster di dati. Il concetto di base di clustering è quello di realizzare cluster di dati con le stesse caratteristiche. In parole semplici, il clustering è il concetto di realizzare piccoli gruppi di dati simili nelle caratteristiche a un folto gruppo di dati. Molti settori come l'assistenza sanitaria, la finanza, la vendita al dettaglio, ecc. Usa il concetto di clustering per diverse attività analitiche.

Il concetto di clustering nel linguaggio di programmazione Python è lo stesso del concetto generale di clustering. Il linguaggio di programmazione Python fornisce diversi strumenti utili e di facile utilizzo per eseguire l'analisi del cluster. Puoi selezionare dall'elenco dello strumento che si adatta meglio al tuo problema. Insieme a ciò, devi anche capire quale algoritmo funziona meglio e devi essere in grado di valutare ogni algoritmo che può essere utilizzato per il tuo problema.

Per valutare le prestazioni dell'algoritmo di clustering, è necessario trovare la distanza media del cluster dal centro. La distanza media dal centro del cluster di dati a ciascuna osservazione determina la compattezza di un cluster e questo è comunemente noto come centroide. Ciò è sensato perché tutti gli algoritmi di clustering Python generano un cluster di dati strettamente imballato. Più si avvicinano i punti dati nel cluster, migliori sono i risultati dell'algoritmo di clustering. Valutare le prestazioni di un algoritmo di clustering significa prendere la somma della distanza del cluster tracciata rispetto al numero totale di cluster.

In generale, ci sono tre tecniche per eseguire il clustering in python, k-means, spettrale e modello di miscela gaussiano clustering. La tecnica di clustering K-mean funziona meglio per compiti a bassa dimensione con pochi numeri di input, mentre la tecnica di clustering spettrale è abbastanza adatto per problemi ad alta dimensione con diverse migliaia di input. Al contrario, il modello di miscela gaussiana si trova tra i medi K e le tecniche di clustering spettrale. È un modello flessibile e robusto che funziona meglio con attività moderatamente complicate.

Cos'è il clustering di Scipy?

La libreria Scipy in Python fornisce due moduli di base: il modulo VQ e il modulo gerarchia per creare cluster con un programma Python. Il modulo VQ sta per la quantizzazione vettoriale che è più utile per compressione, comunicazioni, rilevamento del target, teoria dell'informazione, ecc. Tuttavia, supporta solo gli algoritmi di quantizzazione K-mean e vettoriale. D'altra parte, il modulo gerarchico funziona meglio per visualizzare i cluster con dendrogrammi, calcolare le statistiche sui cluster, generare cluster gerarchici dalle matrici di distanza e tagliare i collegamenti per generare cluster piatti. Ciò significa che è molto utile per il clustering agglomerativo e gerarchico.

Quantizzazione vettoriale e clustering k-mean

La quantizzazione vettoriale o gli algoritmi di clustering K-mean della libreria Scipy sono usati per trovare i cluster e il centro di cluster in un set di dati. Questi algoritmi prendono l'insieme di vettori di osservazione e il numero di cluster da generare come input. L'algoritmo calcola i centroidi del cluster e ritorna per ciascuno dei cluster K. La libreria Scipy fornisce l'implementazione completa dell'algoritmo K-Means tramite il pacchetto cluster. Ecco come è possibile utilizzare l'algoritmo VQ o K-mean nel tuo programma:

Esempio 1:

Dimostriamo un esempio di cluster.vq per capire come può essere utilizzato in un programma Python. Dai un'occhiata al seguente codice di esempio:

da Scipy.grappolo.VQ Import Kmeans, VQ
da numpy import vstack, array
da Numpy.Importazione casuale Rand
Data = vStack ((RAND (10,3) + array ([.1,.2,.3]), rand (10,3)))
Centr, _ = kmeans (dati, 3)
Stampa (centr)
clx, _ = vq (dati, centr)
Stampa (CLX)

Innanzitutto, il Scipy.grappolo.VQ viene utilizzato per importare i moduli KMeans e VQ. Quindi, la libreria Numpy viene chiamata a importare Vstack e Array nel programma. Infine, il rand viene importato nel programma usando il numpy.modulo casuale. Una variabile "dati" viene inizializzata e passata alla funzione KMeans () per trovare il centroide dei dati. I dati originali e il centroide calcolato dei dati vengono passati alla funzione VQ. Vedi il risultato dei moduli KMeans e VQ nel seguente output:

Clustering gerarchico

Il clustering gerarchico viene utilizzato per realizzare cluster di oggetti simili usando gli algoritmi di apprendimento non supervisionato. L'algoritmo di clustering gerarchico assegna un cluster a ciascun punto dati all'inizio e quindi combina i cluster più vicini ad ogni iterazione, risultando in un solo grande cluster. È molto utile per scoprire il numero ottimale di cluster, presentare approfondimenti e visualizzazione interpretabile. Per visualizzare i cluster gerarchici, vengono utilizzati i dendrogrammi.

Ecco come puoi usare il clustering gerarchico nel tuo programma Python:

Esempio 2:

Questo esempio ti guiderà su come eseguire il clustering gerarchico in un programma Python. Vedere il seguente codice di esempio:

da Scipy.grappolo.Dendrogramma di importazione della gerarchia, collegamento
da matplotlib import pyplot come plt
X = [[
[UN]
per un in [1, 5, 9, 4, 11, 2]]
Z = linkage (x, 'ward')
FIG = PLT.Figura (Figsize = (5, 5))
dn = dendrogramma (z)

Innanzitutto, il Scipy.grappolo.La classe di gerarchia è chiamata nel programma per realizzare i cluster di gerarchia e la libreria Matplotlib viene importata per visualizzare il dendrogramma del cluster di gerarchia. I dati sono forniti nella variabile "x". Per disegnare il dendrogramma, i dati vengono passati alla funzione Dendrogramma (). Il dendrogramma risultante è il seguente:

Conclusione

Questo articolo è progettato dedicamente per apprendere il concetto di clustering nel linguaggio di programmazione Python. Innanzitutto, abbiamo imparato il concetto di base di clustering. Quindi, abbiamo esplorato cosa è un cluster in Python. La libreria Scipy fornisce due moduli di clustering: VQ e gerarchia. Abbiamo esplorato entrambi i moduli e con l'aiuto di un esempio di ciascun modulo, abbiamo imparato a usare e creare i cluster nel programma Python.