Performs the fuzzy k-means clustering algorithm with entropy regularization and noise cluster.
The entropy regularization allows us to avoid using the artificial fuzziness parameter m. This is replaced by the degree of fuzzy entropy ent, related to the concept of temperature in statistical physics.
An interesting property of the fuzzy k-means with entropy regularization is that the prototypes are obtained as weighted means with weights equal to the membership degrees (rather than to the membership degrees at
the power of m as is for the fuzzy k-means).
The noise cluster is an additional cluster (with respect to the k standard clusters) such that objects recognized to be outliers are assigned to it with high membership degrees.
FKM.ent.noise (X, k, ent, delta, RS, stand, startU, index, alpha, conv, maxit, seed)Object of class fclust, which is a list with the following components:
Membership degree matrix
Prototype matrix
Array containing the covariance matrices of all the clusters (NULL for FKM.ent.noise)
Matrix containing the indexes of the clusters where the objects are assigned (column 1) and the associated membership degrees (column 2)
Vector containing the indexes of the medoid objects (NULL for FKM.ent.noise)
Vector containing the loss function values for the RS starts
Vector containing the values of the cluster validity index
Vector containing the numbers of iterations for the RS starts
Number of clusters
Parameter of fuzziness (NULL for FKM.ent.noise)
Degree of fuzzy entropy
Parameter of the polynomial fuzzifier (NULL for FKM.ent.noise)
Volume parameter (NULL for FKM.ent.noise)
Noise distance
Weighting parameter for the fuzzy covariance matrices (NULL for FKM.ent.noise)
Maximum condition number for the fuzzy covariance matrices (NULL for FKM.ent.noise)
Standardization (Yes if stand=1, No if stand=0)
Data used in the clustering algorithm (standardized data if stand=1)
Raw data
Dissimilarity matrix (NULL for FKM.ent.noise)
Matched call
Matrix or data.frame
An integer value or vector specifying the number of clusters for which the index is to be calculated (default: 2:6)
Degree of fuzzy entropy (default: 1)
Noise distance (default: average Euclidean distance between objects and prototypes from FKM.ent using the same values of k and m)
Number of (random) starts (default: 1)
Standardization: if stand=1, the clustering algorithm is run using standardized data (default: no standardization)
Rational start for the membership degree matrix U (default: no rational start)
Cluster validity index to select the number of clusters: "PC" (partition coefficient), "PE" (partition entropy), "MPC" (modified partition coefficient), "SIL" (silhouette), "SIL.F" (fuzzy silhouette), "XB" (Xie and Beni) (default: "SIL.F")
Weighting coefficient for the fuzzy silhouette index SIL.F (default: 1)
Convergence criterion (default: 1e-9)
Maximum number of iterations (default: 1e+6)
Seed value for random number generation (default: NULL)
Paolo Giordani, Maria Brigida Ferraro, Alessio Serafini
If startU is given, the argument k is ignored (the number of clusters is ncol(startU)).
If startU is given, the first element of value, cput and iter refer to the rational start.
The default value for ent is in general not reasonable if FKM.ent is run using raw data.
The update of the membership degrees requires the computation of exponential functions. In some cases, this may produce NaN values and the algorithm stops. Such a problem is usually solved by running FKM.ent using standardized data (stand=1).
Dave' R.N., 1991. Characterization and detection of noise in clustering. Pattern Recognition Letters, 12, 657-664.
Li R., Mukaidono M., 1995. A maximum entropy approach to fuzzy clustering. Proceedings of the Fourth IEEE Conference on Fuzzy Systems (FUZZ-IEEE/IFES '95), pp. 2227-2232.
Li R., Mukaidono M., 1999. Gaussian clustering method based on maximum-fuzzy-entropy interpretation. Fuzzy Sets and Systems, 102, 253-258.
FKM.ent, Fclust, Fclust.index, print.fclust, summary.fclust, plot.fclust, butterfly
## butterfly data
data(butterfly)
## fuzzy k-means with entropy regularization and noise cluster, fixing the number of clusters
clust=FKM.ent.noise(butterfly,k = 2, RS=5,delta=3)
## fuzzy k-means with entropy regularization and noise cluster, selecting the number of clusters
clust=FKM.ent.noise(butterfly,RS=5,delta=3)
Run the code above in your browser using DataLab