GC.IDX {UniversalCVI} | R Documentation |
The generalized C index
Description
Computes the GC1 GC2 GC3 and GC4 (J. C. Bezdek et al., 2016) indexes for a result of either FCM or EM clustering from user specified cmin
to cmax
.
Usage
GC.IDX(x, cmax, cmin = 2, indexlist = "all", method = 'FCM', fzm = 2,
iter = 100, nstart = 20)
Arguments
x |
a numeric data frame or matrix where each column is a variable to be used for cluster analysis and each row is a data point. |
cmax |
a maximum number of clusters to be considered. |
cmin |
a minimum number of clusters to be considered. The default is |
indexlist |
a character string indicating which The generalized C index be computed (" |
method |
a character string indicating which clustering method to be used ( |
fzm |
a number greater than 1 giving the degree of fuzzification for |
iter |
a maximum number of iterations for |
nstart |
a maximum number of initial random sets for FCM for |
Details
The GC index is a soft version of the C-index, formulated based on relational transformations of the membership degree matrix \mu
. It comprises four distinct variants, each with its own definition.
The smallest value of GC(c)
indicates a valid optimal partition.
Value
Each of the followings shows the values of each index for c
from cmin
to cmax
in a data frame.
GC1 |
the generalized C index ( |
GC2 |
the generalized C index ( |
GC3 |
the generalized C index ( |
GC4 |
the generalized C index ( |
Author(s)
Nathakhun Wiroonsri and Onthada Preedasawakul
References
J. C. Bezdek, M. Moshtaghi, T. Runkler, and C. Leckie, “The generalized c index for internal fuzzy cluster validity,” IEEE Transactions on Fuzzy Systems, vol. 24, no. 6, pp. 1500–1512, 2016. https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7429723&isnumber=7797168
See Also
R1_data, TANG.IDX, FzzyCVIs, WP.IDX, Hvalid
Examples
library(UniversalCVI)
# Iris data
x = iris[,1:4]
# ---- FCM algorithm ----
# Compute all the indices by GC.IDX
FCM.all.GC = GC.IDX(scale(x), cmax = 10, cmin = 2, indexlist = "all",
method = 'FCM', fzm = 2, iter = 100, nstart = 5)
print(FCM.all.GC)
# Compute GC2 index
FCM.GC2 = GC.IDX(scale(x), cmax = 10, cmin = 2, indexlist = "GC2",
method = 'FCM', fzm = 2, iter = 100, nstart = 5)
print(FCM.GC2)
# ---- EM algorithm ----
# Compute all the indices by GC.IDX
EM.all.GC = GC.IDX(scale(x), cmax = 10, cmin = 2, indexlist = "all",
method = 'EM', iter = 100, nstart = 5)
print(EM.all.GC)
# Compute GC2 index
EM.GC2 = GC.IDX(scale(x), cmax = 10, cmin = 2, indexlist = "GC2",
method = 'EM', iter = 100, nstart = 5)
print(EM.GC2)