Vraag:
Een clustermethode kiezen
Brett
2010-10-18 20:58:41 UTC
view on stackexchange narkive permalink

Wanneer u clusteranalyse op een dataset gebruikt om vergelijkbare gevallen te groeperen, moet u kiezen uit een groot aantal clustermethoden en afstandsmetingen. Soms kan de ene keuze de andere beïnvloeden, maar er zijn veel mogelijke combinaties van methoden.

Heeft iemand aanbevelingen over hoe te kiezen uit de verschillende clusteralgoritmen / methoden en afstandsmaten ? Hoe is dit gerelateerd aan de aard van de variabelen (bijv. Categorisch of numeriek) en het clusteringprobleem? Is er een optimale techniek?

Kunt u proberen een meer specifieke beschrijving te geven van wat u wilt clusteren? of is het gewoon een state of the art in clustering die je nodig hebt?
Ik heb geen onmiddellijke toepassing in gedachten. Ik ben gewoon geïnteresseerd in een algemene benadering voor het kiezen van een clustermethode en mate van gelijkenis.
Controleer ook [deze] (http://stats.stackexchange.com/q/195456/3277) soortgelijke vraag.
En [enkele kanttekeningen] (http://stats.stackexchange.com/a/63549/3277) met betrekking tot specifiek hiërarchische clustermethoden.
Zes antwoorden:
#1
+47
chl
2010-10-18 22:24:06 UTC
view on stackexchange narkive permalink

Er is geen definitief antwoord op uw vraag, omdat zelfs binnen dezelfde methode de keuze van de afstand om individuen (on) gelijkenis weer te geven, een ander resultaat kan opleveren, bijv. bij gebruik van euclidisch versus kwadraat euclidisch in hiërarchische clustering. Als een ander voorbeeld: voor binaire gegevens kunt u de Jaccard-index kiezen als een maatstaf voor gelijkenis en doorgaan met klassieke hiërarchische clustering; maar er zijn alternatieve benaderingen, zoals het Mona-algoritme ( monothetische analyse) dat slechts één variabele tegelijk beschouwt, terwijl andere hiërarchische benaderingen (bijv. klassieke HC, Agnes, Diana) alle variabelen bij elke stap gebruiken. De k-means-benadering is op verschillende manieren uitgebreid, inclusief partitionering rond medoids (PAM) of representatieve objecten in plaats van centroïden (Kaufman en Rousseuw, 1990), of vage clustering (Chung en Lee, 1992). Het belangrijkste verschil tussen de k-gemiddelden en PAM is bijvoorbeeld dat PAM een som van ongelijkheden minimaliseert in plaats van een som van gekwadrateerde euclidische afstanden; fuzzy clustering maakt het mogelijk om "gedeeltelijk lidmaatschap" te overwegen (we associëren aan elke waarneming een gewicht dat het lidmaatschap van een klas weergeeft). En voor methoden die vertrouwen op een probabilistisch raamwerk, of zogenaamde modelgebaseerde clustering (of latente profielanalyse voor de psychometristen), is er een geweldig pakket: Mclust. U moet dus definitief nadenken over hoe u de gelijkenis van individuen kunt definiëren, evenals de methode om individuen met elkaar te verbinden (recursieve of iteratieve clustering, strikt of vaag klassenlidmaatschap, benadering zonder of semi-supervisie, enz.).

Gewoonlijk is het, om de stabiliteit van de cluster te beoordelen, interessant om verschillende algoritmen te vergelijken die in wezen enige gelijkenis "delen" (bijv. k-gemiddelden en hiërarchische clustering, omdat euclidische afstand voor beide werkt). Om de overeenstemming tussen twee clusteroplossingen te kunnen beoordelen, werden in antwoord op deze vraag, Where to cut a dendrogram?, enkele tips aangedragen (zie ook de kruisverwijzingen voor andere link op deze website). Als u R gebruikt, zult u zien dat er al verschillende pakketten beschikbaar zijn in Taakweergave op Clusteranalyse, en verschillende pakketten bevatten vignetten die specifieke methoden uitleggen of casestudy's bieden.

Clusteranalyse: basisconcepten en algoritmen geeft een goed overzicht van verschillende technieken die in clusteranalyse worden gebruikt.Wat betreft een goed recent boek met R-illustraties, zou ik hoofdstuk 12 van Izenman aanbevelen , Moderne multivariate statistische technieken (Springer, 2008). Een paar andere standaardreferenties worden hieronder gegeven:

  • Cormack, R., 1971. Een overzicht van de classificatie. Journal of the Royal Statistical Society, A 134, 321-367.
  • Everitt, B., 1974. Clusteranalyse . Londen: Heinemann Educ. Boeken.
  • Gordon, A., 1987. Een overzicht van hiërarchische classificatie. Journal of the Royal Statistical Society, A 150, 119–137.
  • Gordon, A., 1999. Classification , 2e editie. Chapman en Hall.
  • Kaufman, L., Rousseuw, P., 1990. Groepen zoeken in gegevens: een inleiding tot clusteranalyse . New York, Wiley.
#2
+32
denis
2011-06-09 18:33:17 UTC
view on stackexchange narkive permalink

Een citaat van Hastie, Tibshirani en Friedman, Elements of Statistical Learning, p. 506:

"Een geschikte maat voor ongelijkheid is veel belangrijker bij het verkrijgen van succes met clustering dan de keuze van een clusteringalgoritme. Dit aspect van het probleem ... hangt af van domeinspecifieke kennis en is minder vatbaar voor algemeen onderzoek. "

(Dat gezegd hebbende, zou het niet leuk zijn als (wibni) er een site zou zijn waar studenten een paar algoritmen en metrische gegevens kunnen uitproberen op een paar kleine standaard datasets?)

Bedankt chi; kun je een tag voorstellen voor "voorbeelden kunnen op internet worden uitgevoerd"?
U bedoelt voor het opnieuw taggen van de vraag (ik denk niet dat het een goed idee is omdat het OP niet op zoek was naar online benchmarkingtools, IMO) of voor een nieuwe vraag die u wilt stellen? Hoe dan ook, ik heb op dit moment geen idee van een goede tag. Vragen over Meta?
Dit citaat kan misleidend zijn - het is duidelijk niet van toepassing op de (weliswaar gekunstelde) [voorbeelden op wikipedia] (https://en.wikipedia.org/wiki/Clustering_algorithm). Vanwege de sterke niet-lineaire cluster in de tweede dataset, werken de algoritmen voor koppeling en dichtheidsclustering veel beter dan welke centroïde-gebaseerde methode dan ook. Er is geen gelijkenismaatstaf die ervoor zorgt dat een centroïde clusterschema beter werkt. Dit citaat is alleen van toepassing als je aanneemt dat de clusters ongeveer lineair zijn (soms een veilige veronderstelling). Ik raad u aan om, indien mogelijk, eerst uw gegevens visueel te inspecteren.
@naught101, zeker - * het visueel inspecteren van de gegevens * om * te zien * gelijkenis / ongelijkheid is het belangrijkst, maar gemakkelijker gezegd dan gedaan
dit citaat is van welke editie?kun je het citaat ervan geven
@MonsterMMORPG, tweede editie: http://books.google.com/books?isbn=0387216065
#3
+12
mariana soffer
2010-11-07 13:12:46 UTC
view on stackexchange narkive permalink

U kunt van tevoren niet weten welk clusteralgoritme beter zou zijn, maar er zijn enkele aanwijzingen, als u bijvoorbeeld afbeeldingen wilt clusteren, zijn er bepaalde algoritmen die u eerst moet proberen, zoals Fuzzy Art, of als u gezichten wilt groeperen je zou moeten beginnen met (GGCI) globale geometrische clustering voor afbeelding.

Dit garandeert in ieder geval niet het beste resultaat, dus wat ik zou doen is een programma gebruiken waarmee je methodisch verschillende clusteralgoritmen kunt uitvoeren, zoals weka, RapidMiner of zelfs R (wat niet visueel is), daar zal ik het programma instellen om alle verschillende clusteralgoritmen te starten die ik kan, met alle mogelijke verschillende afstanden, en als ze parameters nodig hebben, experimenteer dan elk met een verscheidenheid aan verschillende parameterwaarden (behalve als ik het aantal clusters niet weet, voer ze dan allemaal uit met een aantal verschillende nummers). Nadat u het experiment heeft afgerond, laat u het lopen, maar vergeet niet om de resultaten van elke clusterrun ergens op te slaan.

Vergelijk vervolgens de resultaten om de beste resulterende clustering te verkrijgen. Dit is lastig omdat er verschillende statistieken zijn die u kunt vergelijken en niet alle worden geleverd door elk algoritme. Fuzzy-clusteralgoritmen hebben bijvoorbeeld andere metrieken dan niet-fuzzy, maar ze kunnen nog steeds worden vergeleken door de vage resulterende groepen als niet-fuzzy te beschouwen, ik blijf bij de vergelijking met de klassieke metrieken zoals:

• SSE: som van de kwadratische fout van de items van elk cluster.

• Interclusterafstand: som van de vierkante afstand tussen elk clusterzwaartepunt.

• Intra clusterafstand voor elk cluster: som van de vierkante afstand van de items van elk cluster tot zijn centroïde.

• Maximale straal: grootste afstand van een instantie tot zijn clusterzwaartepunt.

• Gemiddelde straal: som van de grootste afstand van een instantie tot zijn clusterzwaartepunt gedeeld door het aantal clusters.

#4
+6
Gonzalo Espinosa Duelo
2016-12-26 21:56:00 UTC
view on stackexchange narkive permalink

Het kiezen van de juiste afstand is geen elementaire taak. Wanneer we een clusteranalyse willen maken op een dataset, kunnen verschillende resultaten verschijnen met verschillende afstanden, dus het is erg belangrijk om voorzichtig te zijn in welke afstand je moet kiezen, omdat we een vals goed artefact kunnen maken dat de variabiliteit goed vastlegt, maar eigenlijk zonder zin in ons probleem.

De Euclidische afstand is geschikt als ik continue numerieke variabelen heb en ik absolute afstanden wil weergeven. Deze afstand houdt rekening met elke variabele en verwijdert geen overtolligheden, dus als ik drie variabelen had die hetzelfde verklaren (gecorreleerd zijn), zou ik dit effect wegen met drie. Bovendien is deze afstand niet schaal-invariant, dus over het algemeen moet ik eerst schalen om de afstand te gebruiken.
Voorbeeld ecologie: We hebben verschillende waarnemingen van veel plaatsen, waarvan de experts monsters hebben genomen van enkele microbiologische, fysieke en chemische factoren. We willen patronen vinden in ecosystemen. Deze factoren hebben een hoge correlatie, maar we weten dat iedereen relevant is, dus we willen deze overtolligheden niet verwijderen. We gebruiken de Euclidische afstand met geschaalde gegevens om het effect van eenheden te vermijden.

De Mahalanobis-afstand is geschikt als ik continue numerieke variabelen heb en ik absolute afstanden, maar we willen overtolligheden verwijderen. Als we variabelen hebben herhaald, zal hun herhalende effect verdwijnen.

De familie Hellinger , Soortprofiel en Akkoordafstand zijn geschikt wanneer we de nadruk willen leggen op verschillen tussen variabelen, wanneer we dat willen differentiëren profielen. Deze afstanden wegen door de totale hoeveelheden van elke waarneming, op een zodanige manier dat de afstanden klein zijn wanneer ze variabel per variabele zijn, de individuen meer op elkaar lijken, hoewel in absolute grootheden zeer verschillend was. Kijk uit! Deze afstanden weerspiegelen heel goed het verschil tussen profielen, maar verloren het magnitude-effect. Ze kunnen erg handig zijn als we verschillende steekproeven hebben. Voorbeeld ecologie: We willen de fauna van veel landen bestuderen en we hebben een datamatrix van een inventaris van de buikpotige (bemonsteringslocaties in rijen en soortnamen in kolommen) . De matrix wordt gekenmerkt door veel nullen en verschillende grootheden, omdat sommige plaatsen sommige soorten hebben en andere andere soorten. We zouden de Hellinger-afstand kunnen gebruiken.

Bray-Curtis lijkt veel op elkaar, maar het is geschikter als we profielen willen differentiëren en ook rekening willen houden met relatieve grootheden.

Registreer en / of voeg uw accounts samen [1] (http://stats.stackexchange.com/users/143439/gonzalo-espinosa-duelo) [2] (http://stats.stackexchange.com/users/143433/gonzalo-espinosa-duelo) (u kunt informatie vinden over hoe u dit in het ** Mijn account ** gedeelte van onze [hulp]).Dan kunt u uw antwoorden, reacties erop enz. En ook andere voordelen bijhouden.Aangezien u hier nieuw bent, wilt u misschien onze [rondleiding] volgen, die informatie voor nieuwe gebruikers bevat.
Je hebt al eerder een identiek antwoord http://stats.stackexchange.com/a/253268/3277 gepubliceerd in een vergelijkbare thread.Het dupliceren van antwoorden wordt niet als eerlijk beschouwd.Ik raad u aan de huidige te verwijderen.Maar je mag en bent welkom om een link naar je andere antwoord (en) te posten - als opmerking onder de vraag van een OP of zijn; ow een antwoord in een huidige thread.
#5
+3
deb2015
2017-08-26 23:46:30 UTC
view on stackexchange narkive permalink

Hier is een samenvatting van verschillende clusteralgoritmen die kunnen helpen bij het beantwoorden van de vraag

"welke clusteringstechniek moet ik gebruiken?"

Er is geen objectief "correct" clusteralgoritme Ref

Clusteringalgoritmen kunnen worden gecategoriseerd op basis van hun "clustermodel". Een algoritme dat voor een bepaald type model is ontworpen, zal over het algemeen niet slagen voor een ander soort model. K-means kunnen bijvoorbeeld geen niet-convexe clusters vinden, het kan alleen cirkelvormige clusters vinden.

Daarom wordt het begrijpen van deze "clustermodellen" de sleutel om te begrijpen hoe u uit de verschillende clusteralgoritmen / -methoden kunt kiezen. Typische clustermodellen zijn onder meer: ​​

[1] Connectiviteitsmodellen: bouwt modellen op basis van connectiviteit op afstand. Bijvoorbeeld hiërarchische clustering. Wordt gebruikt wanneer we verschillende scheidingswanden nodig hebben op basis van de hoogte van de boomkap. R-functie: hclust in statistiekenpakket.

[2] Centroid-modellen: bouwt modellen door elk cluster weer te geven met een enkele gemiddelde vector. Gebruikt wanneer we nodig krokant partitionering (in tegenstelling tot fuzzy clustering later beschreven). R-functie: kmeans in statistiekenpakket.

[3] Distributiemodellen: bouwt modellen op basis van statistische distributies zoals multivariate normale distributies die worden gebruikt door het verwachtingsmaximalisatie-algoritme. Gebruikt wanneer clustervormen willekeurig kunnen zijn, in tegenstelling tot k-gemiddelden die circulaire clusters aannemen. R-functie: emcluster in het emcluster-pakket.

[4] Density modellen: Bouwt modellen op basis van clusters als gelieerde dichte gebieden in de dataruimte. Bijv. DBSCAN en OPTICS. Gebruikt wanneer clustervormen willekeurig kunnen zijn, in tegenstelling tot k-betekent dat circulaire clusters aanneemt. R functie dbscan in pakket dbscan.

[5] Subruimtemodellen: bouwt modellen op basis van zowel clusterleden als relevante attributen. Bijv. Biclustering (ook bekend als co-clustering of two-mode-clustering). Wordt gebruikt wanneer gelijktijdige rij- en kolomclustering nodig is. R functie biclust in biclust verpakking.

[6] Groepsmodellen: bouwt modellen op basis van de groeperingsinformatie. Bijvoorbeeld gezamenlijke filtering (aanbevelingsalgoritme). R functie aanbeveler in aanbevelingslab-pakket.

[7] Op grafieken gebaseerde modellen: bouwt modellen op basis van kliek. Algoritmen voor het detecteren van gemeenschapsstructuren proberen dichte subgraphs te vinden in gerichte of ongerichte grafieken. Bijv. R-functie cluster_walktrap in igraph-pakket.

[8] Kohonen Self-Organizing Feature Map: bouwt modellen op basis van neuraal netwerk. R functie som in het kohonen-pakket.

[9] Spectrale clustering: bouwt modellen op basis van een niet-convexe clusterstructuur, of wanneer een maat van het centrum geen geschikte beschrijving is van de volledige cluster. R functie specc in het kernlab-pakket.

[10] subruimte clustering: voor hoog-dimensionale data kunnen afstandsfuncties problematisch zijn. clustermodellen bevatten de relevante attributen voor het cluster. Bijv. Hddc-functie in het R-pakket HDclassif.

[11] Sequentieclustering: groepeer sequenties die gerelateerd zijn. rBlast-pakket.

[12] Affiniteitsverspreiding: bouwt modellen op basis van het doorgeven van berichten tussen gegevenspunten. Het aantal clusters hoeft niet te worden bepaald voordat het algoritme wordt uitgevoerd. Het is beter voor bepaalde computervisie- en computationele biologietaken, bijv. clustering van afbeeldingen van menselijke gezichten en het identificeren van gereguleerde transcripties, dan k-mean, Ref Rpackage APCluster.

[13] Streamclustering: bouwt modellen op basis van gegevens die continu binnenkomen, zoals telefoongegevens, financiële transacties enz. Bijv. R-pakket BIRCH [ https://cran.r-project.org/src/contrib/ Archief / berk /]

[14] Documentclustering (of tekstclustering): bouwt modellen op basis van SVD. Het is gebruikt bij het extraheren van onderwerpen. Bijv. Carrot [ http://search.carrot2.org] is een open source-engine voor het clusteren van zoekresultaten die documenten in thematische categorieën kan clusteren.

[15] Latent klassemodel: het relateert een set waargenomen multivariate variabelen aan een set latente variabelen.LCA kan worden gebruikt bij gezamenlijke filtering.R-functie Aanbeveler in aanbevelingslab-pakket heeft een gezamenlijke filterfunctionaliteit.

[16] Biclustering: wordt gebruikt om gelijktijdig rijen en kolommen met gegevens in twee modi te clusteren.Bijv. R functie biclust in pakket biclust.

[17] Zachte clustering (fuzzy clustering): elk object behoort tot op zekere hoogte bij elke cluster.Bijv. R Fclust-functie in het fclust-pakket.

#6
+2
felipeduque
2015-12-09 02:12:37 UTC
view on stackexchange narkive permalink

Wat mij betreft, als je een veilige keuze wilt, hebben de spectrale clustering -methoden de afgelopen jaren de hoogste nauwkeurigheidspercentages bereikt - althans bij het clusteren van afbeeldingen.

Wat betreft de afstandsmetriek, deze hangt sterk af van hoe uw gegevens zijn georganiseerd. De veilige keuze is de simpele euclidische afstand, maar als je weet dat je data spruitstukken bevat, moet je de punten in kaart brengen via kernelmethoden.

PS: ze zijn allemaal gerelateerd aan numerieke waarden, niet categorisch. Ik weet niet zeker hoe men categorische gegevens zou clusteren.



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 2.0-licentie waaronder het wordt gedistribueerd.
Loading...