Tweet Share Share

Sidst Opdateret den 20 August, 2020

Gruppering eller klynge-analyse er en unsupervised learning problem.

det bruges ofte som en dataanalyseteknik til at opdage interessante mønstre i data, såsom grupper af kunder baseret på deres opførsel.

Der er mange klyngealgoritmer at vælge imellem og ingen enkelt bedste klyngealgoritme til alle tilfælde. I stedet er det en god ide at udforske en række klyngealgoritmer og forskellige konfigurationer for hver algoritme.,

i denne vejledning vil du opdage, hvordan du passer og bruger topklyngealgoritmer i python.

når du har gennemført denne tutorial, vil du vide:

  • Clustering er et uovervåget problem med at finde naturlige grupper i funktionsområdet for inputdata.
  • Der er mange forskellige klyngealgoritmer og ingen enkelt bedste metode til alle datasæt.
  • Sådan implementeres, passer og bruges topklyngealgoritmer i Python med scikit-Lær maskinlæringsbiblioteket.,Kick-start dit projekt med min nye bog Machine Learning Mastery med Python, herunder trin-for-trin tutorials og Python kildekode filer til alle eksempler.

    lad os komme i gang.

    Clustering Algoritmer Med Python
    Foto af Lars Plougmann, nogle rettigheder reserveret.,/div>

    Tutorial Oversigt

    Denne tutorial er opdelt i tre dele; de er:

    1. Clustering
    2. Clustering Algoritmer
    3. Eksempler på Klynger Algoritmer
      1. Bibliotek Installation
      2. Clustering Datasæt
      3. Affinitet Formering
      4. Agglomerative Clustering
      5. BIRK
      6. DBSCAN
      7. K-Betyder
      8. Mini-Batch K-Betyder
      9. Betyder Shift
      10. OPTIK
      11. Spektrale Clustering
      12. Gaussian Blanding Model

    Clustering

    Cluster analyse, eller clustering, er en ukontrolleret machine learning opgave.,

    det indebærer automatisk at opdage naturlig gruppering i data. I modsætning til overvåget læring (som forudsigelig modellering) fortolker klyngealgoritmer kun inputdataene og finder naturlige grupper eller klynger i funktionsrum.

    Klyngeteknikker gælder, når der ikke er nogen klasse, der skal forudsiges, men snarere når forekomsterne skal opdeles i naturlige grupper.

    — side 141, Data Mining: praktiske maskinindlæringsværktøjer og teknikker, 2016.,en klynge er ofte et tæthedsområde i funktionsrummet, hvor eksempler fra domænet (observationer eller rækker af data) er tættere på klyngen end andre klynger. Klyngen kan have et center (centroid), der er en prøve eller et punkt funktion plads og kan have en grænse eller omfang.

    Disse klynger formentlig afspejler nogle mekanisme på arbejde i det domæne, hvorfra tilfælde er udarbejdet en mekanisme, der forårsager nogle tilfælde til at bære en stærkere lighed med hinanden, end de gør til de resterende tilfælde.,

    — sider 141-142, Data Mining: praktiske maskinindlæringsværktøjer og teknikker, 2016.

    Clustering kan være nyttigt som en dataanalyseaktivitet for at lære mere om problemdomænet, såkaldt mønsteropdagelse eller videnopdagelse.

    For eksempel:

    • det fylogenetiske træ kan betragtes som resultatet af en manuel klyngeanalyse.
    • adskillelse af normale data fra outliers eller anomalier kan betragtes som et klyngeproblem.,at adskille klynger baseret på deres naturlige opførsel er et klyngeproblem, kaldet markedssegmentering.

    Clustering kan også være nyttig som en type funktionsteknik, hvor eksisterende og nye eksempler kan kortlægges og mærkes som tilhørende en af de identificerede klynger i dataene.

    evaluering af identificerede klynger er subjektiv og kan kræve en domæneekspert, selvom der findes mange klyngespecifikke kvantitative foranstaltninger., Typisk sammenlignes klyngealgoritmer fagligt på syntetiske datasæt med foruddefinerede klynger, som en algoritme forventes at opdage.

    Clustering er en uovervåget læringsteknik, så det er svært at evaluere kvaliteten af output fra en given metode.

    — Side 534, Machine Learning: En Probabilistisk Perspektiv, 2012.

    Clustering algoritmer

    Der er mange typer af clustering algoritmer.,

    mange algoritmer bruger lighed eller afstandsmålinger mellem eksempler i funktionsområdet i et forsøg på at opdage tætte observationsområder. Som sådan er det ofte god praksis at skalere data, før du bruger klyngealgoritmer.

    centralt for alle målene med klyngeanalyse er forestillingen om graden af lighed (eller ulighed) mellem de enkelte objekter, der grupperes. En klyngemetode forsøger at gruppere objekterne baseret på definitionen af lighed, der leveres til den.,

    — side 502, elementerne i statistisk læring: Data Mining, inferens og forudsigelse, 2016.

    nogle klyngealgoritmer kræver, at du specificerer eller gætter på antallet af klynger, der skal opdages i dataene, mens andre kræver specifikationen af en vis minimumsafstand mellem observationer, hvor eksempler kan betragtes som “tæt” eller “forbundet.,”

    som sådan er klyngeanalyse en iterativ proces, hvor subjektiv evaluering af de identificerede klynger føres tilbage til ændringer i algoritmekonfiguration, indtil et ønsket eller passende resultat opnås.scikit-learn bibliotek giver en suite af forskellige clustering algoritmer at vælge imellem.,

    En liste over 10 af de mere populære algoritmer er som følger:

    • Affinitet Formering
    • Agglomerative Clustering
    • BIRK
    • DBSCAN
    • K-Betyder
    • Mini-Batch K-Betyder
    • Betyder Shift
    • OPTIK
    • Spektrale Clustering
    • Blanding af Gaussians

    Hver algoritme har en anden tilgang til den udfordring, at opdage naturlige grupper i data.

    Der er ingen bedste klyngealgoritme, og ingen nem måde at finde den bedste algoritme til dine data uden at bruge kontrollerede eksperimenter.,

    i denne vejledning vil vi gennemgå, hvordan du bruger hver af disse 10 populære klyngealgoritmer fra scikit-learn-biblioteket.

    eksemplerne vil danne grundlag for dig at kopiere-indsætte eksemplerne og teste metoderne på dine egne data.

    Vi vil ikke dykke ned i teorien bag, hvordan algoritmerne fungerer eller sammenligner dem direkte. For et godt udgangspunkt på dette emne, se:

    • Clustering, scikit-learn API.

    lad os dykke ind.,

    eksempler på Klyngealgoritmer

    i dette afsnit vil vi gennemgå, hvordan du bruger 10 populære klyngealgoritmer i scikit-learn.

    Dette inkluderer et eksempel på montering af modellen og et eksempel på visualisering af resultatet.

    eksemplerne er designet til at kopiere-indsætte i dit eget projekt og anvende metoderne til dine egne data.

    Biblioteksinstallation

    lad os først installere biblioteket.

    spring ikke over dette trin, da du bliver nødt til at sikre dig, at du har den nyeste version installeret.,>

1
sudo pip install scikit-learn

For additional installation instructions specific to your platform, see:

  • Installing scikit-learn

Next, let’s confirm that the library is installed and you are using a modern version.,kør følgende script for at udskrive bibliotekets versionsnummer.,

1
2
3

# check scikit-lære version
import sklearn
print(sklearn.,__version__)

Hvis du kører eksemplet, skal du se følgende versionsnummer eller højere.

1
0.22.,1

Clustering Datasæt

Vi vil bruge make_classification () – funktionen til at oprette en binær test klassificering datasæt.

datasættet vil have 1.000 eksempler, med to input funktioner og en klynge pr klasse. Klyngerne er visuelt indlysende i to dimensioner, så vi kan plotte dataene med et scatter plot og farve punkterne i plottet af den tildelte klynge. Dette vil hjælpe med at se, i det mindste på testproblemet, hvor “godt” klyngerne blev identificeret.,

klyngerne i dette testproblem er baseret på en multivariat Gaussisk, og ikke alle klyngealgoritmer vil være effektive til at identificere disse typer klynger. Som sådan bør resultaterne i denne tutorial ikke bruges som grundlag for at sammenligne metoderne generelt.

et eksempel på at oprette og opsummere det syntetiske klyngedatasæt er angivet nedenfor.

kørsel af eksemplet opretter det syntetiske klyngedatasæt og opretter derefter et scatter plot af inputdataene med punkter farvet efter klasseetiket (idealiserede klynger).,

Vi kan tydeligt se to forskellige grupper af data i to dimensioner, og håbet ville være, at en automatisk klyngealgoritme kan registrere disse grupperinger.

Scatter Plot af Syntetiske Clustering Datasæt Med Point Farvet af Kendt Cluster

Næste, kan vi begynde at kigge på eksempler på klynger algoritmer, der anvendes til dette datasæt.

Jeg har lavet nogle minimale forsøg på at indstille hver metode til datasættet.

kan du få et bedre resultat for en af algoritmerne?
Lad mig vide i kommentarerne nedenfor.,

Affinitetsformering

Affinitetsformering indebærer at finde et sæt eksempler, der bedst opsummerer dataene.

Vi udtænkte en metode kaldet “affinitetsformering”, der tager som inputmål for lighed mellem par datapunkter. Real-valued meddelelser, der udveksles mellem datapunkter, indtil en høj kvalitet sæt af forbilleder og tilsvarende klynger efterhånden viser sig

— Clustering ved at videregive Beskeder Mellem datapunkter, 2007.,

teknikken er beskrevet i papiret:

  • Clustering ved at sende meddelelser mellem datapunkter, 2007.

det implementeres via AffinityPropagation-klassen, og den vigtigste konfiguration til at indstille er “dæmpning”, der er indstillet mellem 0.5 og 1, og måske “præference.”

det komplette eksempel er angivet nedenfor.

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde kunne jeg ikke opnå et godt resultat.,

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af Affinitet Formering

Agglomerative Clustering

Agglomerative clustering indebærer sammenlægning eksempler på, indtil det ønskede antal klynger er opnået.

det er en del af en bredere klasse af hierarkiske klyngemetoder, og du kan lære mere her:

  • hierarkisk klyngedannelse, .ikipedia.,

det implementeres via AgglomerativeClustering-klassen, og den vigtigste konfiguration til at indstille er “n_clusters” – Sættet, et estimat af antallet af klynger i dataene, f.eks. 2.

det komplette eksempel er angivet nedenfor.

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde findes en rimelig gruppering.,

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af Agglomerative Clustering

BIRK

BIRK Clustering (BIRK er en forkortelse for Afbalanceret Iterativ Reducere og Klyngedannelse ved hjælp af
Hierarkier) indebærer at opbygge en træstruktur, hvorfra cluster centroids er pakket ud.

BIRCH gradvist og dynamisk klynger indkommende multidimensionelle metriske datapunkter for at forsøge at producere den bedste kvalitet klyngedannelse med de tilgængelige ressourcer (dvs. ,, tilgængelig hukommelse og tidsbegrænsninger).

— BIRCH: en effektiv dataklyngemetode til store databaser, 1996.

teknikken er beskrevet i papiret:

  • BIRCH: An efficient data clustering method for large databases, 1996.

det implementeres via Birkeklassen, og hovedkonfigurationen til at indstille er “tærskel” og “n_clusters” hyperparametre, hvoraf sidstnævnte giver et skøn over antallet af klynger.

det komplette eksempel er angivet nedenfor.,

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde findes en fremragende gruppering.,

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af BIRK Clustering

DBSCAN

DBSCAN Clustering (hvor DBSCAN er en forkortelse for Tæthed-Baserede Geografisk Gruppering af Applikationer med Støj) indebærer at finde high-density områder i domænet og udvide de områder, de har plads omkring dem, som klynger.

… Vi præsenterer den nye klyngealgoritme DBSCAN stole på en densitetsbaseret opfattelse af klynger, der er designet til at opdage klynger af vilkårlig form., DBSCAN kræver kun en input parameter, og understøtter brugeren i at bestemme en passende værdi for det

— En Tæthed-Baseret Algoritme til at Opdage Klynger i Store Rumlige Databaser med Støj, 1996.

teknikken er beskrevet i papiret:

  • en Densitetsbaseret algoritme til at opdage klynger i store rumlige databaser med støj, 1996.

det implementeres via dbscan-klassen, og den vigtigste konfiguration til at indstille er “eps” og “min_samples” hyperparametre.

det komplette eksempel er angivet nedenfor.,

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde findes en rimelig gruppering, selvom der kræves mere tuning.,

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af DBSCAN Clustering

K-Betyder

K-Means Clustering kan være den mest kendte clustering algoritme og indebærer tildeling af eksempler på, at klynger i et forsøg på at minimere varians inden for hver klynge.

hovedformålet med dette papir er at beskrive en proces til opdeling af en n-dimensionel population i k-sæt på grundlag af en prøve., Processen, som kaldes ‘K-betyder’, ser ud til at give partitioner, der er rimeligt effektive i betydningen varians inden for klassen.

— nogle metoder til klassificering og analyse af multivariate observationer, 1967.

teknikken er beskrevet her:

  • k-betyder klyngedannelse, .ikipedia.

det implementeres via kmeans-klassen, og den vigtigste konfiguration til at indstille er “n_clusters” hyperparameter indstillet til det estimerede antal klynger i dataene.

det komplette eksempel er angivet nedenfor.,

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde findes en rimelig gruppering, selvom den ulige lige varians i hver dimension gør metoden mindre egnet til dette datasæt.,

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af K-Means Clustering

Mini-Batch K-Betyder

Mini-Batch K-Midler er en modificeret version af k-midler, der gør opdateringer til klyngen centroids ved hjælp af mini-partier af prøver, snarere end hele datasættet, som kan gøre det hurtigere for store datasæt, og måske mere robust statistisk støj.

… Vi foreslår brugen af mini-batch optimering til k-betyder clustering., Dette reducerer beregningsomkostningerne ved størrelsesordener sammenlignet med den klassiske batchalgoritme, mens det giver betydeligt bedre løsninger end online stokastisk gradientafstamning.

— Webeb-skala K-betyder klyngedannelse, 2010.

teknikken er beskrevet i papiret:

  • Webeb-skala K-betyder klyngedannelse, 2010.

det implementeres via minibatchkmeans-klassen, og den vigtigste konfiguration til at indstille er “n_clusters” hyperparameter indstillet til det estimerede antal klynger i dataene.

det komplette eksempel er angivet nedenfor.,

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde findes et resultat svarende til standard K-middelalgoritmen.

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af Mini-Batch K-Means Clustering

Betyder Shift

Betyder skift clustering går ud på at finde og tilpasse centroids baseret på tætheden af eksempler i feature rummet.,

vi beviser for diskrete data konvergensen af en rekursiv middelskifteprocedure til det nærmeste stationære punkt i den underliggende tæthedsfunktion og dermed dens anvendelighed til at detektere tilstandene for densiteten.

— gennemsnitlig skift: en robust tilgang til funktionsrumsanalyse, 2002.

teknikken er beskrevet i papiret:

  • Middelforskydning: en robust tilgang til funktionsrumsanalyse, 2002.

det implementeres via MeanShift-klassen, og den vigtigste konfiguration til at indstille er “båndbredde” hyperparameter.,

det komplette eksempel er angivet nedenfor.

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde findes et rimeligt sæt klynger i dataene.,

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp Betyde Skift Clustering

OPTIK

OPTIK clustering (hvor OPTIK er en forkortelse for Bestilling af Point At Identificere de Klynger Struktur) er en modificeret version af DBSCAN, der er beskrevet ovenfor.

Vi introducerer en ny algoritme med henblik på klyngeanalyse, som ikke producerer en klynge af et datasæt eksplicit; men i stedet opretter en udvidet bestilling af databasen, der repræsenterer dens densitetsbaserede klyngestruktur., Denne klynge-bestilling indeholder oplysninger, som svarer til densitetsbaserede klynger svarende til en bred vifte af parameterindstillinger.

— optik: bestilling af punkter til identifikation af klyngestrukturen, 1999.

teknikken er beskrevet i papiret:

  • optik: bestilling af punkter til identifikation af klyngestrukturen, 1999.

det implementeres via optik-klassen, og den vigtigste konfiguration til at indstille er “eps” og “min_samples” hyperparametre.

det komplette eksempel er angivet nedenfor.,

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde kunne jeg ikke opnå et rimeligt resultat på dette datasæt.

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af OPTIK Clustering

Spektrale Clustering

Spektrale Clustering er en generel klasse af clustering-metoder, der er taget fra lineær algebra.,

et lovende alternativ, der for nylig er opstået inden for en række felter, er at anvende spektrale metoder til klyngedannelse. Her bruger man de øverste egenvektorer af en Matri.afledt af afstanden mellem punkter.

— på spektral Clustering: analyse og en algoritme, 2002.

teknikken er beskrevet i papiret:

  • On Spectral Clustering: Analysis and an algorithm, 2002.,

det implementeres via SpectralClustering-klassen, og den vigtigste spektrale klyngedannelse er en generel klasse af klyngemetoder, der er trukket fra lineær algebra. for at indstille er “n_clusters” hyperparameter brugt til at angive det estimerede antal klynger i dataene.

det komplette eksempel er angivet nedenfor.

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde blev der fundet rimelige klynger.,

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af Spectra Klynger Klynger

Gaussian Blanding Model

En Gauss-blanding model opsummerer en multivariat sandsynlighedsfordeling med en blanding af Gaussiske sandsynlighedsfordelinger, som navnet antyder.for mere om modellen, se:

  • Blandingsmodel, Mixtureikipedia.,

det implementeres via gaussianmi .ture-klassen, og den vigtigste konfiguration til at indstille er “n_clusters” hyperparameter, der bruges til at specificere det estimerede antal klynger i dataene.

det komplette eksempel er angivet nedenfor.

kørsel af eksemplet passer til modellen på træningsdatasættet og forudsiger en klynge for hvert eksempel i datasættet. Et scatter plot oprettes derefter med punkter farvet af deres tildelte klynge.

i dette tilfælde kan vi se, at klyngerne blev identificeret perfekt., Dette er ikke overraskende, da datasættet blev genereret som en blanding af Gaussere.

Scatter Plot af Datasættet Med Klynger, der er Identificeret ved Hjælp af Gauss-Blanding Clustering

Yderligere Læsning

Dette afsnit giver flere ressourcer om emnet, hvis du ønsker at gå dybere.

Papers

  • Clustering ved at sende meddelelser mellem datapunkter, 2007.
  • BIRCH: en effektiv data clustering metode til store databaser, 1996.,
  • en Densitetsbaseret algoritme til at opdage klynger i store rumlige databaser med støj, 1996.
  • nogle metoder til klassificering og analyse af multivariate observationer, 1967.
  • Webeb-skala K-betyder klyngedannelse, 2010.
  • gennemsnitlig skift: en robust tilgang til funktionsrumsanalyse, 2002.
  • på spektral Clustering: analyse og en algoritme, 2002.

bøger

  • Data Mining: praktiske maskinindlæringsværktøjer og teknikker, 2016.
  • elementerne i statistisk læring: Data Mining, inferens, og forudsigelse, 2016.,
  • Machine Learning: et probabilistisk perspektiv, 2012.

API ‘ er

  • Clustering, scikit-Lær API.
  • sklearn.datasæt.make_classification API.
  • sklearn.cluster API.

artikler

  • klyngeanalyse, Clusterikipedia.
  • hierarkisk klyngedannelse, .ikipedia.
  • k-betyder klyngedannelse, .ikipedia.
  • blanding model, .ikipedia.

resum.

i denne vejledning opdagede du, hvordan du passer og bruger topklyngealgoritmer i python.,

specifikt lærte du:

  • Clustering er et uovervåget problem med at finde naturlige grupper i funktionsområdet for inputdata.
  • Der er mange forskellige klyngealgoritmer, og ingen enkelt bedste metode til alle datasæt.
  • Sådan implementeres, passer og bruges topklyngealgoritmer i Python med scikit-Lær maskinlæringsbiblioteket.

har du spørgsmål?
stil dine spørgsmål i kommentarerne nedenfor, og jeg vil gøre mit bedste for at svare.

Oplev hurtig maskinindlæring i Python!,

udvikle dine egne modeller på få minutter

…med bare et par linjer af scikit-lære-kode

Lær hvordan i min nye e-Bog:
Machine Learning Beherskelse Med Python

Dækker self-undersøgelse tutorials og end-to-end projekter som:
Indlæsning af data, visualisering, modellering, tuning og meget mere…

endelig bringe Machine Learning til
dine egne projekter

Spring akademikerne over. Bare Resultater.

se hvad der er inde

t Seeeet Share Share

Articles

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *