Scipy Clustering

Scipy Clustering
For mennesker som er nye på programmeringsspråk, er konseptet med gruppering også nytt for dem. Python er et av de mest brukte språkene globalt. Dette programmeringsspråket på høyt nivå er enklere og enklere enn noe annet programmeringsspråk på høyt nivå som er hovedårsaken til at nybegynnerutviklerne har en tendens til å lære Python først enn noe annet språk. I denne artikkelen utforsker vi Scipy Library of Python -programmeringsspråket og prøver å forstå konseptet med gruppering på programmeringsspråket.

Hva er scipy på Python -programmeringsspråket?

Scipy er et åpen kildekode og gratis vitenskapelig beregningsbibliotek levert av Python-programmeringsspråket. Den er bygget på Numpy; Derfor utvider det også funksjonaliteten til det numpy biblioteket. Scipy er en forkortelse av vitenskapelig pyton og gir nyttige metoder for å håndtere enhver vitenskapelig anvendelse. Ved hjelp av Scipy -biblioteket kan du enkelt administrere enhver form for matematisk, vitenskapelig, optimalisering, beregnings-, signalbehandlings- eller statistiske problemer i et Python -program. Dessuten gir det forskjellige nyttige datavisualisering og manipulasjonsteknikker. Clustering er en av de grunnleggende metodene i Scipy -biblioteket. Denne artikkelen er spesielt dedikert til gruppering på Python -programmeringsspråket.

Hva er gruppering på Python -programmeringsspråket?

Clustering - som navnet antyder - lager klynger av data. Det grunnleggende konseptet med gruppering er å lage klynger av data som har de samme egenskapene. Med enkle ord er klynging begrepet å lage små grupper av data som er like karakteristiske for en stor gruppe av data. Mange bransjer som helsevesen, finans, detaljhandel osv. Bruk begrepet gruppering for flere analytiske oppgaver.

Konseptet med gruppering i Python -programmeringsspråket er det samme som det generelle konseptet med gruppering. Python-programmeringsspråk gir flere nyttige og brukervennlige verktøy for å utføre klyngeanalysen. Du kan velge mellom verktøyets liste som passer best for problemet ditt. Sammen med det må du også innse hvilken algoritme som fungerer bedre, og du må kunne evaluere hver algoritme som kan brukes til problemet ditt.

For å evaluere grupperingsalgoritmeytelsen, må du finne den gjennomsnittlige klyngeavstanden fra sentrum. Gjennomsnittlig avstand fra midten av dataklyngen til hver observasjon bestemmer kompaktheten til en klynge, og dette er ofte kjent som centroid. Dette er fornuftig fordi alle python -grupperingsalgoritmer genererer en tettpakket klynger av data. Jo nærmere datapunktene i klyngen, jo bedre er resultatene av klyngealgoritmen. Å evaluere ytelsen til en klyngealgoritme er å ta summen av den plottede klyngeavstanden mot det totale antallet klynger.

Generelt er det tre teknikker for å utføre gruppering i Python, K-Means, Spectral og Gaussian Mixture Model Clustering. K-Mean Clustering Technique fungerer best for lavdimensjonale oppgaver med få antall innganger, mens den spektrale klyngeteknikken er ganske egnet for høydimensjonale problemer med flere tusen innganger. Tvert imot ligger den gaussiske blandingsmodellen mellom K-midler og spektrale klyngeteknikker. Det er en fleksibel og robust modell som fungerer best med moderat kompliserte oppgaver.

Hva er scipy clustering?

Scipy -biblioteket i Python gir to grunnleggende moduler: VQ -modulen og hierarkimodulen for å lage klynger med et Python -program. VQ -modulen står for vektorkvantisering som er mest nyttig for komprimering, kommunikasjon, måldeteksjon, informasjonsteori osv. Imidlertid støtter det bare K-middel- og vektorkvantiseringsalgoritmer. På den annen side fungerer den hierarkiske modulen best for å visualisere klyngene med dendrogram, beregne statistikk over klynger, generere hierarkiske klynger fra avstandsmatriser og kutte koblinger for å generere flate klynger. Noe som betyr at det er mest nyttig for agglomerativ og hierarkisk gruppering.

Vektorkvantisering og K-Mean Clustering

Vektorkvantiseringen eller K-Mean Clustering Algoritms of Scipy Library brukes til å finne klyngene og sentrum av klynger i et datasett. Disse algoritmene tar settet med observasjonsvektorer og antall klynger som skal generere som input. Algoritmen beregner centroidene i klyngen og returnerer for hver av K -klyngene. Scipy-biblioteket gir fullstendig implementering av K-Means-algoritmen via klyngepakken. Slik kan du bruke VQ- eller K-Mean-algoritmen i programmet ditt:

Eksempel 1:

La oss demonstrere et eksempel på klynge.VQ for å forstå hvordan det kan brukes i et Python -program. Ta en titt på følgende prøvekode:

Fra scipy.klynge.VQ Import Kmeans, VQ
Fra Numpy Import VStack, Array
Fra Numpy.Tilfeldig import RAND
data = vStack ((rand (10,3) + array ([.1,.2,.3]), Rand (10,3)))
centr, _ = kmeans (data, 3)
trykk (centr)
CLX, _ = VQ (data, centr)
Print (CLX)

Først Scipy.klynge.VQ brukes til å importere Kmeans og VQ -moduler. Deretter kalles Numpy Library for å importere VStack og Array i programmet. Endelig importeres randen til programmet ved hjelp av Numpy.Tilfeldig modul. En "data" -variabel initialiseres og sendes til KMEANS () -funksjonen for å finne centroid av dataene. De opprinnelige dataene og beregnet centroid for dataene sendes til VQ -funksjonen. Se resultatet av Kmeans og VQ -modulene i følgende utgang:

Hierarkisk klynging

Hierarkisk klynging brukes til å lage klynger av lignende objekter ved bruk av de uten tilsyn læringsalgoritmer. Den hierarkiske klyngealgoritmen tildeler en klynge til hvert datapunkt i begynnelsen og kombinerer deretter de nærmeste klyngene ved hver iterasjon, noe som bare resulterer i en stor klynge. Det er veldig nyttig å oppdage det optimale antallet klynger, presentere innsikt og tolkbar visualisering. For å visualisere de hierarkiske klyngene, brukes dendrogrammet.

Slik kan du bruke den hierarkiske gruppering i Python -programmet ditt:

Eksempel 2:

Dette eksemplet vil guide deg om hvordan du utfører den hierarkiske gruppering i et Python -program. Se følgende prøvekode:

Fra scipy.klynge.hierarki import dendrogram, kobling
fra matplotlib import pyplot som plt
X = [
[en]
for A i [1, 5, 9, 4, 11, 2]]
Z = Linkage (x, 'Ward')
Fig = plt.Figur (FigSize = (5, 5))
dn = dendrogram (z)

Først Scipy.klynge.Hierarki -klassen kalles i programmet for å lage hierarkiklyngene og Matplotlib -biblioteket importeres for å vise dendrogrammet til hierarki -klyngen. Dataene er gitt i "X" -variabelen. For å tegne dendrogrammet, sendes dataene til dendrogrammet () -funksjonen. Det resulterende dendrogrammet er som følger:

Konklusjon

Denne artikkelen er dedikert designet for å lære begrepet gruppering på Python -programmeringsspråket. Først lærte vi det grunnleggende konseptet med klynging. Deretter utforsket vi hva en klynge er i Python. Scipy -biblioteket gir to klyngemoduler - VQ og hierarki. Vi utforsket begge modulene og ved hjelp av et eksempel på hver modul lærte vi hvordan vi bruker og lager klyngene i Python -programmet.