Fuzzy C Means Algorithm and its Python implementation turn to: http://note4code.com/2015/04/14/fuzzy-c-means-%E7%AE%97%E6%B3%95%E5%8F%8A%E5%85% b6-python-%e5%ae%9e%e7%8e%b0/
1. Extension of algorithm to algorithm
In the algorithm, if you want to divide the data collection into classes so that any data object must belong to and belong to only one class, and each class contains at least one data object, it can be represented by a matrix, and any one of the elements in the matrix can be represented as:
which represents the first class. and need to meet the following conditions:
If the value range of the elements in the above matrix is not only 0 or 1, then it can be generalized to the division on the fuzzy set, then it becomes the fuzzy judgment matrix. At this point you need to meet:
(1)
2. Target function and Cluster center
The algorithm generally uses Euclidean distance when measuring the non-similarity (or distance) of the data object, requiring the sum of the squares of the cluster centers and data objects of each class to be the smallest, and the objective function can be expressed as:
It represents an arbitrary clustering center, and the cluster center generally takes the average of all the objects in the class on each property, so it can be represented as:
Represents any one class.
After the algorithm is generalized to the fuzzy set, the distance between the sample and the center of the class is weighted by the square of the membership degree, then the weighted exponent of the membership degree is introduced to obtain the new objective function:
(2)
To make (2) the minimum value requires that the cluster center and membership degree meet the following conditions:
(3)
(4)
3. Algorithm calculation process
See Original and code implementation
Fuzzy C Means Algorithm and its Python implementation--write it clearly, see the original