# Davies Bouldin Score

> Compute the davies_bouldin_score metric — provided by scikit-learn. Use when the user has predictions and ground-truth and needs to compute davies_bouldin_score, or asks how to score with davies_bouldin_score.

- Skill: `qhjqhj00/davies-bouldin-score` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/davies-bouldin-score`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/davies-bouldin-score/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/davies-bouldin-score

---


# davies-bouldin-score

> Metric `davies_bouldin_score` from `scikit-learn` (sklearn.metrics.davies_bouldin_score)

## When to invoke this skill

The user has predictions + ground truth and asks to evaluate with davies_bouldin_score, or
mentions `sklearn.metrics.davies_bouldin_score` directly, or wants the standard scikit-learn implementation.

## Reference signature

```python
from sklearn.metrics import davies_bouldin_score

# davies_bouldin_score(X, labels)
```

## Library docstring

```
Compute the Davies-Bouldin score.

The score is defined as the average similarity measure of each cluster with
its most similar cluster, where similarity is the ratio of within-cluster
distances to between-cluster distances. Thus, clusters which are farther
apart and less dispersed will result in a better score.

The minimum score is zero, with lower values indicating better clustering.

Read more in the :ref:`User Guide <davies-bouldin_index>`.

.. versionadded:: 0.20

Parameters
----------
X : array-like of shape (n_samples, n_features)
    A list of ``n_features``-dimensional data points. Each row corresponds
    to a single data point.

labels : array-like of shape (n_samples,)
    Predicted labels for each sample.

Returns
-------
score: float
    The resulting Davies-Bouldin score.

References
----------
.. [1] Davies, David L.; Bouldin, Donald W. (1979).
   `"A Cluster Separation Measure"
   <https://ieeexplore.ieee.org/document/4766909>`__.
   IEEE Transactions on Pattern Analysis and Machine Intelligence.
   PAMI-1 (2): 224-227

Examples
--------
>>> from sklearn.metrics import davies_bouldin_score
>>> X = [[0, 1], [1, 1], [3, 4]]
>>> labels = [0, 0, 1]
>>> davies_bouldin_score(X, labels)
0.12...
```

## Quick recipe

```python
import sklearn.metrics as _m
score = _m.davies_bouldin_score(y_true, y_pred)
```

## Don'ts

- Don't reimplement when the library version handles edge cases (NaN, ties, empty inputs) better than a hand-rolled formula.
- Always check the library version's argument order — sklearn is `(y_true, y_pred)` while torchmetrics is `(preds, target)`.

