Possiblistic Fuzzy C-Means Algorithm in Python
-
Algorithm explanation : https://www.researchgate.net/publication/3336300_A_Possibilistic_Fuzzy_C-Means_Clustering_Algorithm
-
Implementation of the algorithm MATLAB : https://www.ijser.org/researchpaper/implementation-of-possibilistic-fuzzy-cmeans-clustering-algorithm-in-matlab.pdf
Parameters for the main function (pfcm):
- data: Dataset to be clustered, with size M-by-N, where M is the number of data points and N is the number of coordinates for each data point.
- c : Number of clusters
- expo : exponent for the U matrix (default = 2)
- max_iter : Maximum number of iterations (default = 1000)
- min_impor : Minimum amount of imporvement (default = 0.005)
- a : User-defined constant a (default = 1)
- b : User-defined constant b that should be greater than a (default = 4)
- nc : User-defined constant nc (default = 2)
The clustering process stops when the maximum number of iterations is reached, or when objective function improvement or the maximum centers imporvement between two consecutive iterations is less than the minimum amount specified.
Return values :
- cntr : The clusters centers
- U : The C-Partionned Matrix (used in FCM)
- T : The Typicality Matrix (used in PCM)
- obj_fcn : The objective function for U and T
Parameters of the PFCM Prediction function (pfcm_predict)
- data: Dataset to be clustered, with size M-by-N, where M is the number of data points and N is the number of coordinates for each data point.
- cntr : centers of the dataset previoulsy calculated
- expo : exponent for the U matrix (default = 2)
- a : User-defined constant a (default = 1)
- b : User-defined constant b that should be greater than a (default = 4)
- nc : User-defined constant nc (default = 2)
Return values :- new_cntr : The new clusters centers
- U : The C-Partionned Matrix (used in FCM)
- T : The Typicality Matrix (used in PCM)
- obj_fcn : The objective function for U and T