Fuzzy K-Means Clustering i Mahout



Den här bloggen ger en introduktion till Fuzzy K-Means-kluster i Apache Mahout.

Fuzzy K-Means är exakt samma algoritm som K-betyder, vilket är en populär enkel klustringsteknik. Den enda skillnaden är att i stället för att tilldela en punkt endast till ett kluster kan det ha någon form av oklarhet eller överlappning mellan två eller flera kluster. Följande är de viktigaste punkterna som beskriver Fuzzy K-Means:





  • Till skillnad från K-Means, som söker hårt kluster, där var och en av punkterna tillhör ett kluster, söker Fuzzy K-Means de mjukare klustren för överlappning.
  • En enda punkt i ett mjukt kluster kan tillhöra mer än ett kluster med ett visst affinitetsvärde mot var och en av punkterna.
  • Affiniteten är i proportion till avståndet för den punkten från klustret centroid.
  • På samma sätt som K-Means fungerar Fuzzy K-Means på objekten som har avståndsmåttet definierat och kan representeras i n- dimensionellt vektorutrymme.

Fuzzy K-Means MapReduce Flow

Det är inte mycket skillnad mellan MapReduce-flödet av K-medel och Fuzzy K-medel. Implementeringen av båda i Mahout är liknande.

Följande är viktiga parametrar för implementering av Fuzzy K-Means:



  • Du behöver en Vector-datauppsättning för inmatning.
  • Det måste finnas RandomSeedGenerator för att så de första k-klusterna.
  • För avståndsmätning krävs SquaredEuclideanDistanceMeasure.
  • Ett stort värde av konvergenströskel, till exempel –cd 1.0, om det kvadratiska värdet för avståndsmåttet har använts
  • Ett värde för maxIterations är standardvärdet -x 10.
  • Normaliseringskoefficienten eller fuzziness-faktorn, med ett värde större än -m 1,0

Har du en fråga till oss? Nämn dem i kommentarfältet så återkommer vi till dig.

relaterade inlägg



ställa in Java classpath i Linux

Övervakat lärande i Apache Mahout