# Davies–Bouldin index

The Davies–Bouldin index (DBI) (introduced by David L. Davies and Donald W. Bouldin in 1979) is a metric for evaluating clustering algorithms.[1] This is an internal evaluation scheme, where the validation of how well the clustering has been done is made using quantities and features inherent to the dataset. This has a drawback that a good value reported by this method does not imply the best information retrieval.

## Preliminaries

Given "n" dimensional points, let Ci be a cluster of data points. Let Xj be an "n"-dimensional feature vector assigned to cluster Ci.

${\displaystyle S_{i}=\left({\frac {1}{T_{i}}}\sum _{j=1}^{T_{i}}{\left|X_{j}-A_{i}\right|^{p}}\right)^{1/p}}$

Here ${\displaystyle A_{i}}$ is the centroid of Ci and Ti is the size of the cluster i. Si is a measure of scatter within the cluster. Usually the value of p is 2, which makes this a Euclidean distance function between the centroid of the cluster, and the individual feature vectors. Many other distance metrics can be used, in the case of manifolds and higher dimensional data, where the euclidean distance may not be the best measure for determining the clusters. It is important to note that this distance metric has to match with the metric used in the clustering scheme itself for meaningful results.

${\displaystyle M_{i,j}=\left|\left|A_{i}-A_{j}\right|\right|_{p}={\Bigl (}\displaystyle \sum _{k=1}^{n}\left|a_{k,i}-a_{k,j}\right|^{p}{\Bigr )}^{\frac {1}{p}}}$
${\displaystyle M_{i,j}}$ is a measure of separation between cluster ${\displaystyle C_{i}}$ and cluster ${\displaystyle C_{j}}$.
${\displaystyle a_{k,i}}$ is the kth element of ${\displaystyle A_{i}}$, and there are n such elements in A for it is an n dimensional centroid.

Here k indexes the features of the data, and this is essentially the Euclidean distance between the centers of clusters i and j when p equals 2.

## Definition

Let Ri,j be a measure of how good the clustering scheme is. This measure, by definition has to account for Mi,j the separation between the ith and the jth cluster, which ideally has to be as large as possible, and Si, the within cluster scatter for cluster i, which has to be as low as possible. Hence the Davies–Bouldin index is defined as the ratio of Si and Mi,j such that these properties are conserved:

1. ${\displaystyle R_{i,j}\geqslant 0}$.
2. ${\displaystyle R_{i,j}=R_{j,i}}$.
3. When ${\displaystyle S_{j}\geqslant S_{k}}$ and ${\displaystyle M_{i,j}=M_{i,k}}$ then ${\displaystyle R_{i,j}>R_{i,k}}$.
4. When ${\displaystyle S_{j}=S_{k}}$ and ${\displaystyle M_{i,j}\leqslant M_{i,k}}$ then ${\displaystyle R_{i,j}>R_{i,k}}$.

With this formulation, the lower the value, the better the separation of the clusters and the 'tightness' inside the clusters.

A solution that satisfies these properties is:

${\displaystyle R_{i,j}={\frac {S_{i}+S_{j}}{M_{i,j}}}}$

This is used to define Di:

${\displaystyle D_{i}\equiv \max _{j\neq i}R_{i,j}}$

If N is the number of clusters:

${\displaystyle {\mathit {DB}}\equiv {\frac {1}{N}}\displaystyle \sum _{i=1}^{N}D_{i}}$

DB is called the Davies–Bouldin index. This is dependent both on the data as well as the algorithm. Di chooses the worst-case scenario, and this value is equal to Ri,j for the most similar cluster to cluster i. There could be many variations to this formulation, like choosing the average of the cluster similarity, weighted average and so on.

## Explanation

These conditions constrain the index so defined to be symmetric and non-negative. Due to the way it is defined, as a function of the ratio of the within cluster scatter, to the between cluster separation, a lower value will mean that the clustering is better. It happens to be the average similarity between each cluster and its most similar one, averaged over all the clusters, where the similarity is defined as Si above. This affirms the idea that no cluster has to be similar to another, and hence the best clustering scheme essentially minimizes the Davies–Bouldin index. This index thus defined is an average over all the i clusters, and hence a good measure of deciding how many clusters actually exists in the data is to plot it against the number of clusters it is calculated over. The number i for which this value is the lowest is a good measure of the number of clusters the data could be ideally classified into. This has applications in deciding the value of k in the kmeans algorithm, where the value of k is not known apriori. The SOM toolbox contains a MATLAB implementation.[2] A MATLAB implementation is also available via the MATLAB Statistics and Machine Learning Toolbox, using the "evalclusters" command.[3]