Fuzzy K-Means is exactly the same algorithm as K-means, which is a popular simple clustering technique. The only difference is, instead of assigning a point exclusively to only one cluster, it can have some sort of fuzziness or overlap between two or more clusters. Following are the key points, describing Fuzzy K-Means:
- Unlike K-Means, which seeks hard cluster, wherein each of the points belongs to one cluster, Fuzzy K-Means seeks the softer clusters for overlapping.
- A single point in a soft cluster can belong to more than one cluster with a certain affinity value towards each of the points.
- The affinity is in proportion with the distance of that point from the cluster centroid.
- Similar to K-Means, Fuzzy K-Means works on the objects that have the distance measure defined and can be represented in the n-dimensional vector space.
Fuzzy K-Means MapReduce Flow
There’s not a lot of difference between the MapReduce flow of K-Means and Fuzzy K-Means. The implementation of both in Mahout is similar.
Following are the essential parameters for the implementation of Fuzzy K-Means:
- You need a Vector data set for input.
- There has to be the RandomSeedGenerator to seed the initial k clusters.
- For distance measure SquaredEuclideanDistanceMeasure is required.
- A large value of convergence threshold, such as –cd 1.0, if the squared value of the distance measure has been used
- A value for maxIterations; the default value is -x 10.
- The coefficient of normalization or the fuzziness factor, with a value greater than -m 1.0
Got a question for us? Mention them in the comments section and we will get back to you.