pub fn top_margin(probabilities: &[f64]) -> Result<f64>Expand description
確率分布から上位2候補の確率差(Top-Margin) $M(p) \in [0.0, 1.0]$ を算出する。
§数理仕様
$$M(p) = \begin{cases} 1.0 & (K = 1) \ p_{(1)} - p_{(2)} & (K \ge 2) \end{cases}$$
- $O(K)$ 単一パス走査により、ヒープメモリ割り当て(アロケーション)ゼロで計算する。
- $K=1$ の特異点では $1.0$(他候補なし・完全なマージン)を即座に返却する。
- 同率1位(タイ)の場合は $M(p) = 0.0$ となる。
- 戻り値は
[0.0, 1.0]の閉区間にクランプされる。
§引数
probabilities: 各候補の確率分布スライス(f64)。
§戻り値
- 成功時は
[0.0, 1.0]にクランプされた Top-Margin、不正時はCoreError::MathError。