Platt scalingとisotonicの違い:確率を校正する形とデータの分け方
Platt scalingとisotonicは、分類モデルの出力を確率として校正する方法です。モデルの学習、校正の学習、最終評価を分けて考える必要があります。ここでは文書分類の出力を題材に、変換の形の違いを理解します。実サービスの性能改善を示す記事ではありません。
滑らかな曲線と、単調な階段を比べる
Platt scalingは、モデルのスコアをシグモイドの形で確率に変換し、そのパラメータを学びます。isotonicは、スコアが上がったときに確率が下がらないという制約で、より自由な形を学びます。実装による予測時の補間などは、利用するライブラリの仕様を確認してください。[出典1]
| 観点 | Platt scaling | isotonic |
|---|---|---|
| 変換の形 | シグモイド曲線 | 単調性の制約を持つ柔軟な形 |
| 小さい校正データ | 形の仮定が適切かを確認する | 過適合しないか特に注意する |
| 順位 | 通常、スコア順を保つ変換として扱う | 同じ確率になる点が生まれ、順位指標が変わる場合がある |
| 比較 | 同じ独立した評価データで校正前後を比べる | |
変換の形だけを確かめる教材
パラメータを学ばず、単に p=1/(1+exp(−s)) という曲線を考えます。スコアsが−1、0、1なら、pは約0.269、0.5、0.731です。これは滑らかな形を見るための計算で、学習したPlatt scalingの成果ではありません。
別の教材として、入力0.1と0.2をどちらも0.2に、0.7を0.6に、0.9を0.8に写す単調な対応表を考えます。前半の2点は同じ値になります。これも形を理解するために人が決めた例で、isotonicを実データへfitした結果ではありません。
3つの役割のデータを混ぜない
| 役割 | 何をするか | 何をしないか |
|---|---|---|
| モデル学習用 | 文書とラベルから元の分類モデルを学ぶ | 最終評価の正解を使わない |
| 校正用 | 元モデルの出力と正解から変換を学ぶ | 元モデルを学んだ同じ出力だけで評価を済ませない |
| 最終評価用 | 校正前後の指標を同じ行で比較する | 結果を見て変換を選び直さない |
校正用のデータで指標がよくなるだけでは、未知のデータでの改善は確認できません。時系列データなら各データの時期とラベルの確定時刻も考慮します。分割してあっても、将来の集計値が列に入っていれば問題は残ります。
方法を選ぶ前に記録する項目
- 元モデルが返すスコアの定義とクラス順。
- 校正用の件数とクラスの割合。
- 評価用データが学習・校正から独立しているか。
- 確率の評価指標、校正曲線、区間の件数。
- 順位指標を使うなら、同点が増える影響。
- 入力の範囲外へ出た際の実装の扱い。
個別適用や説明の拡張時に確認する事項:教材では、小さいデータで柔軟な変換を選ぶとどう不安定になるか、分割を変えて観察できます。ただし、都合のよい分割だけを残さず、事前に決めた比較条件を記録します。「isotonicの方が自由だから常によい」「シグモイドだから必ず校正できる」という結論は避けます。
出典
scikit-learn: Probability calibration(sigmoidとisotonic、校正用データ、順位への影響)。