# Fowlkes Mallows Score

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

- Skill: `qhjqhj00/fowlkes-mallows-score` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/fowlkes-mallows-score`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/fowlkes-mallows-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/fowlkes-mallows-score

---


# fowlkes-mallows-score

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

## When to invoke this skill

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

## Reference signature

```python
from sklearn.metrics import fowlkes_mallows_score

# fowlkes_mallows_score(labels_true, labels_pred, *, sparse='deprecated')
```

## Library docstring

```
Measure the similarity of two clusterings of a set of points.

.. versionadded:: 0.18

The Fowlkes-Mallows index (FMI) is defined as the geometric mean of
the precision and recall::

    FMI = TP / sqrt((TP + FP) * (TP + FN))

Where ``TP`` is the number of **True Positive** (i.e. the number of pairs of
points that belong to the same cluster in both ``labels_true`` and
``labels_pred``), ``FP`` is the number of **False Positive** (i.e. the
number of pairs of points that belong to the same cluster in
``labels_pred`` but not in ``labels_true``) and ``FN`` is the number of
**False Negative** (i.e. the number of pairs of points that belong to the
same cluster in ``labels_true`` but not in ``labels_pred``).

The score ranges from 0 to 1. A high value indicates a good similarity
between two clusters.

Read more in the :ref:`User Guide <fowlkes_mallows_scores>`.

Parameters
----------
labels_true : array-like of shape (n_samples,), dtype=int
    A clustering of the data into disjoint subsets.

labels_pred : array-like of shape (n_samples,), dtype=int
    A clustering of the data into disjoint subsets.

sparse : bool, default=False
    Compute contingency matrix internally with sparse matrix.

    .. deprecated:: 1.7
        The ``sparse`` parameter is deprecated and will be removed in 1.9. It has
        no effect.

Returns
-------
score : float
   The resulting Fowlkes-Mallows score.

References
----------
.. [1] `E. B. Fowkles and C. L. Mallows, 1983. "A method for comparing two
   hierarchical clusterings". Journal of the American Statistical
   Association
   <https://www.tandfonline.com/doi/abs/10.1080/01621459.1983.10478008>`_

.. [2] `Wikipedia entry for the Fowlkes-Mallows Index
       <https://en.wikipedia.org/wiki/Fowlkes-Mallows_index>`_

Examples
--------

Perfect labelings are both homogeneous and complete, hence have
score 1.0::

  >>> from sklearn.metrics.cluster import fowlkes_mallows_score
  >>> fowlkes_mallows_score([0, 0, 1, 1], [0, 0, 1, 1])
  1.0
  >>> fowlkes_mallows_score([0, 0, 1, 1], [1, 1, 0, 0])
  1.0

If classes members are completely split across different clusters,
the assignment is totally random, hence the FMI is null::

  >>> fowlkes_mall
```

## Quick recipe

```python
import sklearn.metrics as _m
score = _m.fowlkes_mallows_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)`.

