DB.IDX {UniversalCVI} | R Documentation |
Davies–Bouldin (DB) and DB* (DBs) indexes
Description
Computes the DB (D. L. Davies and D. W. Bouldin, 1979) and DBs (M. Kim and R. S. Ramakrishna, 2005) indexes for a result either kmeans or hierarchical clustering from user specified kmin
to kmax
.
Usage
DB.IDX(x, kmax, kmin = 2, method = "kmeans",
indexlist = "all", p = 2, q = 2, nstart = 100)
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. |
kmax |
a maximum number of clusters to be considered. |
kmin |
a minimum number of clusters to be considered. The default is |
method |
a character string indicating which clustering method to be used ( |
indexlist |
a character string indicating which cluster validity indexes to be computed ( |
p |
the power of the Minkowski distance between centroids of clusters. The default is |
q |
the power of dispersion measure of a cluster. The default is |
nstart |
a maximum number of initial random sets for kmeans for |
Details
The lowest value of DB(k),DBs(k)
indicates a valid optimal partition.
Value
DB |
the DB index for |
DBs |
the DBs index for |
Author(s)
Nathakhun Wiroonsri and Onthada Preedasawakul
References
D. L. Davies, D. W. Bouldin, "A cluster separation measure," IEEE Trans Pattern Anal Machine Intell, 1, 224-227 (1979).
M. Kim, R. S. Ramakrishna, "New indices for cluster validity assessment," Pattern Recognition Letters, 26, 2353-2363 (2005).
See Also
Hvalid, Wvalid, DI.IDX, FzzyCVIs, R1_data
Examples
library(UniversalCVI)
# The data is from Wiroonsri (2024).
x = R1_data[,1:2]
# ---- Kmeans ----
# Compute all the indices by DB.IDX
K.ALL = DB.IDX(scale(x), kmax = 15, kmin = 2, method = "kmeans",
indexlist = "all", p = 2, q = 2, nstart = 100)
print(K.ALL)
# Compute DB index
K.DB = DB.IDX(scale(x), kmax = 15, kmin = 2, method = "kmeans",
indexlist = "DB", p = 2, q = 2, nstart = 100)
print(K.DB)
# ---- Hierarchical ----
# Average linkage
# Compute all the indices by DB.IDX
H.ALL = DB.IDX(scale(x), kmax = 15, kmin = 2, method = "hclust_average",
indexlist = "all", p = 2, q = 2)
print(H.ALL)
# Compute DB index
H.DB = DB.IDX(scale(x), kmax = 15, kmin = 2, method = "hclust_average",
indexlist = "DB", p = 2, q = 2)
print(H.DB)