Davies_Bouldin: Davies-Bouldin Index - Internal Measure

clv.Davies.BouldinR Documentation

Davies-Bouldin Index - Internal Measure

Description

Function computes Dunn index - internal measure for given data and its partitioning.

Usage

clv.Davies.Bouldin( index.list, intracls, intercls)

Arguments

index.list

object returned by function cls.scatt.data or cls.scatt.diss.mx.

intracls

string vector containing one or more names of intra cluster distances. Available are:

1. if index.list is produced by cls.scatt.data: complete | average | centroid,
2. if index.list is produced by cls.scatt.diss.mx: complete | average.
intercls

string vector containing one or more names of inter cluster diameters. Available are:

1. if index.list is produced by cls.scatt.data: single | complete | average | centroid | aveToCent | hausdorff.
2. if index.list is produced by cls.scatt.diss.mx: single | complete | average | hausdorff.

Details

Davies-Bouldin index is given by equation:

DB = (1/|C|) sum{forall i in 1:|C|} max[ i != j ] { (diam(Ci) + diam(Cj))/dist(Ci,Cj) }

i,j - numbers of clusters which come from the same partitioning,
dist(Ck,Cl) - inter cluster distance between clusters Ck and Cl,
diam(Cm) - intra cluster diameter computed for cluster Cm,
|C| - number of clusters.

Value

As output user gets the matrix of Davies-Bouldin indices. Matrix dimension depends on how many diam and dist measures are chosen by the user, normally dim(D)=c(length(intercls),length(intracls)). Each pair: (inter-cluster dist, intra-cluster diam) have its own position in result matrix.

Author(s)

Lukasz Nieweglowski

References

M. Halkidi, Y. Batistakis, M. Vazirgiannis Clustering Validity Checking Methods : Part II, http://citeseer.ist.psu.edu/537304.html

See Also

Functions which produce index.list input argument: cls.scatt.data, cls.scatt.diss.mx. Related functions: clv.Dunn.

Examples

# load and prepare data
library(clv)
data(iris)
iris.data <- iris[,1:4]

# cluster data
agnes.mod <- agnes(iris.data) # create cluster tree 
v.pred <- as.integer(cutree(agnes.mod,5)) # "cut" the tree 

intraclust = c("complete","average","centroid")
interclust = c("single", "complete", "average","centroid", "aveToCent", "hausdorff")

# compute Davies-Bouldin indicies (also Dunn indicies)
# 1. optimal solution:

# compute intercluster distances and intracluster diameters
cls.scatt <- cls.scatt.data(iris.data, v.pred, dist="manhattan")

# once computed valuse use in both functions
dunn1 <- clv.Dunn(cls.scatt, intraclust, interclust)
davies1 <- clv.Davies.Bouldin(cls.scatt, intraclust, interclust)

# 2. functional solution:

# define new Dunn and Davies.Bouldin functions
Dunn <- function(data,clust) 
  clv.Dunn( cls.scatt.data(data,clust),
     intracls = c("complete","average","centroid"), 
     intercls = c("single", "complete", "average","centroid", "aveToCent", "hausdorff")
  )
Davies.Bouldin <- function(data,clust) 
  clv.Davies.Bouldin( cls.scatt.data(data,clust),
    intracls = c("complete","average","centroid"),
    intercls = c("single", "complete", "average","centroid", "aveToCent", "hausdorff")
  )

# compute indicies
dunn2 <- Dunn(iris.data, v.pred)
davies2 <- Davies.Bouldin(iris.data, v.pred)

clv documentation built on Sept. 28, 2023, 9:06 a.m.

Related to Davies_Bouldin in clv...