RandIndex#

RandIndex(use_loc=True)[source]#

分段 Rand Index 指标。

用于比较两个分段的 Segmentation Rand Index (SRI) 是聚类 Rand Index (RI) 的集成版本。它衡量同一时间序列的两个分段之间的相似性,其中每个分段都是一系列非重叠的片段。

它的取值范围在 0 到 1 之间,其中 1 表示分段完全相同。

定性地说,Segmentation Rand Index (SRI) 可以从聚类 Rand Index (RI) 中获得,方法是

  • 将片段解释为沿着索引或时间轴的簇。

  • 沿着该轴计算成对的“一致性”(相同与不同)。

数学定义如下。

为了清楚起见,我们先定义聚类 Rand Index (RI)

n 个元素的两个聚类之间的 Rand Index (RI) 定义为

\[RI = (a + b) / (a + b + c + d),\]

其中

  • a = 在两个分段中都位于同一簇的对数

  • b = 在两个分段中都位于不同簇的对数

  • c = 在第一个分段中位于同一簇但在第二个分段中位于不同簇的对数

  • d = 在第一个分段中位于不同簇但在第二个分段中位于同一簇的对数

Segmentation Rand Index (SRI) 定义如下

对于从时间索引 \(S \in \mathbb{R}\) 开始并在时间索引 \(T \in \mathbb{R}\) 结束的时间序列,设

\(a: [S, T] \rightarrow \mathbb{N}\) 为第一个分段,\(b: [S, T] \rightarrow \mathbb{N}\) 为第二个分段。

\(\mathbb{I}(s_1, s_2, t_1, t_2)\) 为指示函数,当且仅当以下至少一项成立时为 1,否则为 0

  • \(s_1 = s_2\)\(t_1 = t_2\)

  • \(s_1 \neq s_2\)\(t_1 \neq t_2\)

则 SRI 定义为

\[SRI = \frac{1}{T-S} \int_S^T \int_S^T \mathbb{I}(a(s), a(t), b(s), b(t)) ds dt\]

默认情况下,如果提供了 X,则此指标通过查找 X.index 中的对应标签来计算基于 loc 的距离。否则,或如果 use_loc=False,则使用基于 iloc 的索引。

如果在 y_true/y_pred 中存在现有的“label”列,则直接使用这些标签进行匹配;否则,片段被视为连续编号,从 0 开始。