FOREL familjealgoritmer

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 januari 2020; verifiering kräver 1 redigering .

FOREL (Formal Element)  är en klustringsalgoritm baserad på idén om att kombinera objekt till ett kluster i de områden där de har störst koncentration.

Syfte med klustring

Dela provet i ett sådant (tidigare okänt) antal taxa så att summan av avstånden från klusterobjekt till klustercentrum är minimal för alla kluster. Det vill säga vår uppgift är att identifiera grupper av objekt så nära varandra som möjligt, som i kraft av likhetshypotesen kommer att bilda våra kluster.

Kvalitetsfunktionen minimeras av algoritmen

,

där den första summeringen är över alla exempelkluster, är den andra summeringen över alla objekt som tillhör det aktuella klustret och  är mitten av det aktuella klustret och  är avståndet mellan objekten.

Förutsättningar för arbete

Indata

Det kan specificeras genom funktionsbeskrivningar av objekt — ett linjärt mellanrum eller en matris med parvisa avstånd mellan objekt.
Notera: i verkliga uppgifter är det ofta omöjligt eller meningslöst att lagra all data, så den nödvändiga informationen samlas in i klustringsprocessen

Den kan ställas in både från a priori överväganden (kännedom om klusterdiametern) och justeras genom skjutreglage.

Imprint

Klustrar in i ett tidigare okänt antal taxa.

Hur det fungerar

Vid varje steg väljer vi slumpmässigt ett föremål från provet, blåser upp en sfär med radien R runt den, väljer tyngdpunkten inuti denna sfär och gör den till mitten av den nya sfären. Det vill säga, vid varje steg flyttar vi sfären i riktning mot lokal koncentration av provobjekt, det vill säga vi försöker fånga så många provobjekt som möjligt med en sfär med fast radie. Efter att sfärens mitt har stabiliserats, markerar vi alla objekt inuti sfären med detta centrum som klustrade och kasserar dem från provet. Vi upprepar denna process tills hela provet är klustrade.

Algoritm

  1. Vi väljer slumpmässigt det aktuella objektet från urvalet;
  2. Vi markerar provobjekten på ett avstånd mindre än R från det nuvarande;
  3. Vi beräknar deras tyngdpunkt, markerar detta centrum som ett nytt aktuellt objekt;
  4. Upprepa steg 2-3 tills det nya aktuella objektet matchar det gamla;
  5. Vi markerar objekten inom sfären med radien R runt det aktuella objektet som klustrade, kastar ut dem ur markeringen;
  6. Upprepa steg 1-5 tills hela provet är samlat.

Pseudokod för algoritmen i ett C -liknande språk:

# define R 30 // local clustering search width - input parameter för clusterization_not_finished () algoritm ; // är alla objekt klustrade get_random_object (); // returnerar ett godtyckligt icke- klustrat objekt get_neighbour_objects ( typ * objekt ); // returnerar en array av objekt placerade <= R från det aktuella centrum_av_objekt ( typ * massa_av_objekt ) ; // returnerar tyngdpunkten för de angivna objekten delete_objects ( typ * mass_of_objects ) ; // tar bort de angivna objekten från urvalet ( vi har redan klustrat dem ) while ( clusterisation_not_finished ()) { current_object = get_random_object (); neighbor_objects = get_neighbour_objects ( aktuellt_objekt ); center_object = center_of_objects ( granne_objekt ); while ( center_object ! = current_object ) // tills tyngdpunkten stabiliseras { current_object = center_object ; _ _ neighbor_objects = get_neighbour_objects ( aktuellt_objekt ); center_object = center_of_objects ( granne_objekt ); } delete_objects ( granne_objekt ); }

Tyngdpunktsheuristik

  • I det linjära rummet, masscentrum;
  • I ett metriskt utrymme, ett objekt, till vilket summan av avstånden är minimal, bland alla inne i sfären;
  • Ett objekt som, inom en sfär med radie R, innehåller det maximala antalet andra objekt från hela urvalet (långsamt);
  • Objektet som innehåller det maximala antalet objekt inom en sfär med liten radie (från en sfär med radie R).

Observationer

  • Konvergensen av algoritmen i ett ändligt antal steg bevisas;
  • I det linjära rymden kan tyngdpunkten vara en godtycklig punkt i rymden, i det metriska rummet, endast provets objekt;
  • Ju mindre R, desto fler taxa (kluster);
  • I det linjära rymden sker sökningen efter centrum i O(n) tid, i metriskt rum O(n²);
  • Algoritmen uppnår de bästa resultaten på prover med god uppfyllelse av kompakthetsvillkoren;
  • Vid upprepade iterationer är det möjligt att minska parametern R, för den snabbaste konvergensen;
  • Klustring är starkt beroende av den initiala approximationen (val av objekt i det första steget);
  • Det rekommenderas att köra algoritmen igen för att eliminera situationen med "dålig" klustring, på grund av ett misslyckat val av initiala objekt.

Fördelar

  1. Noggrannheten för att minimera den funktionella kvaliteten (med ett framgångsrikt val av parametern R);
  2. Visualisering av klustervisualisering;
  3. Konvergens av algoritmen;
  4. Möjligheten till operationer på centra av kluster - de är kända under algoritmens gång;
  5. Förmåga att beräkna funktionaliteter av medelhög kvalitet, till exempel längden av en kedja av lokala koncentrationer;
  6. Möjlighet att testa hypoteser om likhet och kompakthet i processen för algoritmdrift.

Nackdelar

  1. Relativt låg prestanda (införandet av funktionen att räkna om sökningen efter centrum när man lägger till 1 objekt inuti sfären är löst);
  2. Dålig tillämpbarhet av algoritmen med dålig separerbarhet av provet i kluster;
  3. Algoritmens instabilitet (beroende på valet av det ursprungliga objektet);
  4. Godtycklig genom nummeruppdelning i kluster;
  5. Behovet av a priori kunskap om bredden (diametern) på kluster.

Tillägg

Efter att algoritmen har arbetat med den färdiga klustringen kan du utföra några åtgärder:

  1. Val av de mest representativa (representativa) objekten från varje kluster. Du kan välja centra för kluster, du kan välja flera objekt från varje kluster, med hänsyn till a priori kunskap om provets representativitet. Således har vi enligt den färdiga klustringen möjlighet att bygga det mest representativa urvalet;
  2. Omräkning av klustring (multilevelness) med KNI-metoden.

Omfattning

  1. Lösa klustringsproblem;
  2. Lösa problem med att rangordna ett prov.

Se även

Litteratur

  • Vorontsov K. V. Föreläsningar om klustring och multidimensionella skalningsalgoritmer , Moscow State University, 2007
  • Zagoruiko N. G., Yolkina V. N., Lbov G. S. Algoritmer för att upptäcka empiriska mönster. - Novosibirsk: Nauka, 1985. - 999 sid.
  • Zagoruiko NG Tillämpade metoder för data- och kunskapsanalys. - Novosibirsk: IM SO RAN, 1999. - 270 sid. - ISBN 5-86134-060-9 .