Grunnleggende AI

Hva er K-Means Clustering?

mm
Legg til Unite.AI blant dine foretrukne kilder pÃĨ Google

K-means clustering er en ujÃĨpet lÃĶring algoritme, og av alle ujÃĨpene lÃĶring algoritmene, kan K-means clustering vÃĶre den mest brukte, takket vÃĶre dens kraft og enkelhet. Hvordan fungerer K-means clustering egentlig?

Det korte svaret er at K-means clustering fungerer ved ÃĨ opprette en referansepunkt (en sentroid) for et Ãļnsket antall klasser, og deretter tilordne datapunkter til klassekluster basert pÃĨ hvilken referansepunkt som er nÃĶrmest. Mens dette er en rask definisjon for K-means clustering, la oss ta litt tid til ÃĨ dykke dyptere inn i K-means clustering og fÃĨ en bedre forstÃĨelse av hvordan det opererer.

Definering av Clustering

FÃļr vi undersÃļker de eksakte algoritmene som brukes til ÃĨ utfÃļre K-means clustering, la oss ta litt tid til ÃĨ definere clustering generelt.

Kluster er bare grupper av elementer, og clustering er bare ÃĨ plassere elementer i disse gruppene. I data vitenskapens forstand, clustering algoritmer har til hensikt ÃĨ gjÃļre to ting:

  • Sikre at alle datapunkter i et kluster er sÃĨ like hverandre som mulig.
  • Sikre at alle datapunkter i forskjellige kluster er sÃĨ ulike hverandre som mulig.

Clustering algoritmer grupperer elementer sammen basert pÃĨ en mÃĨling av likhet. Dette gjÃļres ofte ved ÃĨ finne “sentroiden” av de forskjellige mulige gruppene i datasettet, selv om ikke eksklusivt. Det finnes en rekke forskjellige clustering algoritmer, men mÃĨlet med alle clustering algoritmene er det samme, ÃĨ bestemme gruppene som er innebygget i et datasett.

K-Means Clustering

K-Means Clustering er en av de eldste og mest brukte typene av clustering algoritmer, og den opererer basert pÃĨ vektor kvantisering. Det finnes et punkt i rommet som er valgt som opphav, og deretter trekkes vektorer fra opphavet til alle datapunktene i datasettet.

Generelt kan K-means clustering deles inn i fem forskjellige trinn:

  • Plasser alle instanser i undergrupper, hvor antallet undergrupper er likt med K.
  • Finne gjennomsnittspunktet/sentroiden av de nyopprettede klusterdelene.
  • Basert pÃĨ disse sentroidene, tilordne hver punkt til et bestemt kluster.
  • Beregne avstandene fra hver punkt til sentroidene, og tilordne punkter til klusterne hvor avstanden fra sentroid er minst.
  • Etter at punktene er tilordnet til klusterne, finne den nye sentroiden av klusterne.

De ovenstÃĨende trinnene gjentas til treningprosessen er ferdig.

I den innledende fasen, plasseres sentroider et sted blant datapunktene.
Foto: Weston.pace via wikimedia commons, GNU Free Documentation License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)

Alternativt, etter at sentroidene er plassert, kan vi tenke pÃĨ K-means clustering som ÃĨ bytte frem og tilbake mellom to forskjellige faser: ÃĨ merke datapunkter og ÃĨ oppdatere sentroider.

I det andre steget, brukes en avstandsmÃĨling som Euclidisk avstand til ÃĨ beregne hvilken sentroid en gitt punkt er nÃĶrmest, og deretter tilordnes punktene til den sentroidens klasse. Foto: Weston.pace via Wikimedia Commons, GNU Free Doc License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_2.svg)

I fasen hvor datapunkter merkes, tilordnes hver datapunkt en merking som plasserer det i klusteret som tilhÃļrer den nÃĶrmeste sentroiden. Den nÃĶrmeste sentroiden bestemmes vanligvis ved ÃĨ bruke kvadrert Euclidisk avstand, selv om andre avstandsmÃĨl som Manhattan-avstand, Cosine og Jaccard-avstand kan brukes avhengig av typen data som mates inn i clustering-algoritmen.

I det tredje steget, flyttes sentroider til gjennomsnittet av alle datapunktene. Klassene tilordnes deretter pÃĨ nytt. Foto: Weston.pace via Wikiemedia Commons, CC SA 3.0 (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_3.svg)

I fasen hvor sentroider oppdateres, beregnes sentroidene ved ÃĨ finne gjennomsnittsavstanden mellom alle datapunktene som for Ãļyeblikket er innholdt i et kluster.

Hvordan velge riktig verdi for “K”

Med tanke pÃĨ at K-means clustering er en ujÃĨpet algoritme og antallet klasser ikke er kjent pÃĨ forhÃĨnd, hvordan bestemmer du den riktige antallet klasser/verdi for K?

En teknikk for ÃĨ velge riktig K-verdi kalles “albue-teknikken“. Albue-teknikken bestÃĨr i ÃĨ kjÃļre en K-means clustering-algoritme for et omrÃĨde av forskjellige K-verdier og bruke en nÃļyaktighetsmÃĨling, vanligvis Sum of Squared Error, til ÃĨ bestemme hvilke verdier av K som gir de beste resultater. Sum of Squared Error bestemmes ved ÃĨ beregne gjennomsnittsavstanden mellom sentroiden av et kluster og datapunktene i det klusteret.

Begrepet “albue-teknikk” kommer fra det faktum at nÃĨr du plotter SSE i forhold til de forskjellige verdiene av K, vil den resulterende linjegrafen ofte ha en “albue”-form, hvor SSE minker raskt for de fÃļrste verdiene av K, men deretter planer ut. I slike tilfeller er verdien av K som ligger ved albuen den beste verdien for K, siden det er raskt avtagende gevinst etter denne verdien.

Mini-Batch K-Means Clustering

Ettersom datasett vokser stÃļrre, Ãļker beregningsiden ogsÃĨ. Grunnleggende K-means clustering kan ta lang tid ÃĨ fullfÃļre nÃĨr det kjÃļres pÃĨ store datasett, og som et resultat, er det blitt gjort justeringer til K-means clustering for ÃĨ kunne redusere algoritmens romlige og tidsmessige kostnader.

Mini-Batch K-means clustering er en variant av K-means clustering hvor stÃļrrelsen pÃĨ datasettet som vurderes er begrenset. Vanlig K-means clustering opererer pÃĨ hele datasettet/batch pÃĨ en gang, mens Mini-batch K-means clustering deler datasettet inn i undergrupper. Mini-batch er tilfeldig utvalgt fra hele datasettet og for hver ny iterasjon velges en ny tilfeldig utvalg og brukes til ÃĨ oppdatere posisjonen av sentroidene.

I Mini-Batch K-Means clustering, oppdateres klusterne med en kombinasjon av mini-batch-verdiene og en lÃĶringsrate. LÃĶringsraten minker over iterasjonene, og den er invers av antallet datapunkter som plasseres i et bestemt kluster. Effekten av ÃĨ redusere lÃĶringsraten er at innvirkningen av nye data reduseres og konvergens oppnÃĨs nÃĨr, etter flere iterasjoner, det ikke er noen endringer i klusterne.

Resultatene av studier om effektiviteten av Mini-batch K-means clustering tyder pÃĨ at det kan suksessfullt redusere beregningsiden med en liten kompromiss i klassekvalitet.

Anvendelser av K-Means Clustering

K-means clustering kan trygt brukes i enhver situasjon hvor datapunkter kan segmenteres i distinkte grupper/klasser. Her er noen eksempler pÃĨ vanlige bruksomrÃĨder for K-means clustering.

K-means clustering kan brukes til dokumentklassifisering, gruppering av dokumenter basert pÃĨ egenskaper som emner, nÃļkkelord, ordbruk, metadata og andre dokumentegenskaper. Det kan ogsÃĨ brukes til ÃĨ klassifisere brukere som roboter eller ikke-roboter basert pÃĨ aktivitetsmÃļnster som innlegg og kommentarer. K-means clustering kan ogsÃĨ brukes til ÃĨ plassere personer i grupper basert pÃĨ nivÃĨer av bekymring nÃĨr man overvÃĨker deres helse, basert pÃĨ egenskaper som komorbiditet, alder, pasienthistorie osv.

K-means clustering kan ogsÃĨ brukes til mer ÃĨpne oppgaver som ÃĨ lage anbefalingssystemer. Brukere av et system som Netflix (NFLX ) kan grupperes sammen basert pÃĨ visningsmÃļnster og anbefales lignende innhold. K-means clustering kunne brukes til anomali-detteksjon, ÃĨ hÃļydeppe potensielle eksempler pÃĨ svindel eller defekte varer.

Blogger og programmerer med spesialomrÃĨder i Machine Learning og Deep Learning emner. Daniel hÃĨper ÃĨ hjelpe andre med ÃĨ bruke kraften av AI for sosialt godt.