CURE algoritme

CURE ( Clustering Using Representatives ) er en effektiv klyngeanalysealgoritme til store databaser .  Sammenlignet med k-means-metoden er algoritmen mere modstandsdygtig over for outliers og er i stand til at detektere klynger, der ikke har en sfærisk form og med en stor størrelsesspredning.

Ulemper ved traditionelle algoritmer

En populær k- betydningsalgoritme minimerer summen af ​​kvadratiske fejl :

Hvis der er stor forskel på størrelsen eller geometrien af ​​de forskellige klynger, kan den kvadratiske fejlmetode opdele store klynger for at minimere kvadratet af fejlen, hvilket ikke altid er korrekt. Også i tilfælde af hierarkiske klyngealgoritmer er dette problem til stede, da ingen af ​​afstandsmålene mellem klynger ( ) har en tendens til at fungere med forskellige former for klynger. Også køretiden er stor, hvis n er stor.

Problemet med BIRCH- algoritmen er, at når du genererer klynger efter trin 3, bruger algoritmen tyngdepunktet for klyngerne og tildeler hver information til klyngen med det nærmeste tyngdepunkt. At kun bruge tyngdepunkter til at omfordele punkter har et problem, hvis klyngerne ikke danner ensartede størrelser og former.

Klyngealgoritme CURE

For at undgå problemer med uensartede størrelser eller former for klynger, bruger CURE en hierarkisk klyngealgoritme , der foretager en afvejning mellem tyngdepunktet og alle ekstremer. I CURE-algoritmen vælges en konstant c klyngepunkter med en god fordeling, og disse punkter trækkes sammen med klyngens tyngdepunkt med en eller anden værdi. Punkterne efter kontraktion bruges som repræsentanter for klyngen. Klynger med det nærmeste par af repræsentanter kombineres ved hvert trin i CUREs hierarkiske klyngealgoritme. Dette gør det muligt for CURE-algoritmen at genkende klynger korrekt og gør den mindre følsom over for outliers.

Køretiden er O( n 2 log n ), hvilket gør den temmelig dyr, og rumkompleksiteten af ​​algoritmen er O( n ).

Algoritmen kan ikke anvendes direkte på en stor database på grund af den høje beregningsmæssige kompleksitet. Følgende forbedringer løser dette problem.

Pseudokode

CURE (antal point, k )

Input: Sæt af punkter S

Output : k klynger

Tilgængelighed

Se også

Noter

Litteratur