Skip to content

Rand index (randindex)#

Description#

The Rand index (\(RI\)) measures the similarity between two segmentations and is equal to the proportion of aggreement between two partitions. Formally, for \(\mathcal{T}_1\) and \(\mathcal{T}_2\) two partitions of \(\{1, 2,\dots,T\}\),

\[ RI := \frac{N_0 + N_1}{T(T+1)/2} \]

where

  • \(N_0\) is the number of pairs of samples that belong to the same segment according to \(\mathcal{T}_1\) and \(\mathcal{T}_2\),
  • \(N_1\) is the number of pairs of samples that belong to different segments according to \(\mathcal{T}_1\) and \(\mathcal{T}_2\).

\(RI\) is between 0 (total disagreement) and 1 (total agreement). It is available in the randindex function which uses the efficient implementation of [Prates2021].

Usage#

Start with the usual imports and create two segmentations to compare.

from ruptures.metrics import randindex

bkps1, bkps2 = [100, 200, 500], [105, 115, 350, 400, 500]
print(randindex(bkps1, bkps2))

References#

[Prates2021] Prates, L. (2021). A more efficient algorithm to compute the Rand Index for change-point problems. ArXiv:2112.03738.