Skip to content

Instantly share code, notes, and snippets.

@myui
Last active December 21, 2025 18:30
Show Gist options
  • Select an option

  • Save myui/f4f3fc5b52f8fe76ffce96e57d05a5a5 to your computer and use it in GitHub Desktop.

Select an option

Save myui/f4f3fc5b52f8fe76ffce96e57d05a5a5 to your computer and use it in GitHub Desktop.

コストセンシティブ学習と TD AutoML(AutoGluon)における最適化指標の考え方

本ドキュメントでは、コストセンシティブ学習(Cost-Sensitive Learning) の基本前提を明確にしたうえで、
TD AutoML(AutoGluon)で利用可能な optimization function / evaluation metric のうち、
実務的にコストセンシティブ学習に使える指標を整理・解説します。

参考:


1. コストセンシティブ学習の最初の前提条件

― 正解のコストは誤りのコストより常に小さい

コストセンシティブ学習では、予測結果に応じた コスト関数

$$ C(\hat{y}, y) $$

(予測 $\hat{y}$、真のラベル $y$)を考えます。

2値分類($y \in {0,1}$)の場合、一般に次のコスト行列を想定します。

真のラベル $y$ \ 予測 $\hat{y}$ 0 1
0 $C(0,0)$ $C(1,0)$
1 $C(0,1)$ $C(1,1)$

コストセンシティブ学習で最初に仮定される不等式

$$ C(0,0) < C(1,0), \quad C(1,1) < C(0,1) $$

これは

「当てることは安く、外すことは高い」

という、実務上ほぼ必ず成立する前提条件です。


2. TD AutoML(AutoGluon)とコストセンシティブ学習の関係

TD AutoML(AutoGluon)では、

  • 誤分類コスト行列 $C(\hat{y}, y)$ を直接指定して
  • 期待コストをそのまま最小化する

という 純粋な cost-sensitive optimization は標準ではサポートされていません。

代わりに、次の 分離設計 を採用します。

確率の質を最適化する学習

意思決定段階での閾値(threshold)最適化


3. log_loss がコストセンシティブ学習の基盤になる理由

log_loss(クロスエントロピー損失)は、正解クラス $y$ に割り当てた確率 $p_y$ に対して

$$ \mathrm{log_loss} = -\log p_y $$

と書けます。

  • 正解を高確率で当てる → 損失が小さい
  • 自信満々で外す → 損失が急激に大きくなる

この性質により、log_loss は

$$ C(0,0) < C(1,0), \quad C(1,1) < C(0,1) $$

数学的に満たす surrogate loss になります。


4. PAC score:log_loss を「コスト感覚」に近づけた指標

log_loss は理論的に正しい一方で、人間には直感的に理解しづらい指標です。

PAC score は、log_loss を指数変換することで、

$$ e^{-\mathrm{log_loss}} = p_y $$

すなわち

$$ \mathrm{PAC} = \mathrm{mean}(p_y) $$

と解釈できます。

PAC score は、

  • threshold に依存せず
  • 確率の「自信度」を直接評価でき
  • 期待コストの感覚に近い

という特徴を持つため、説明用・補助評価指標として有用です。


5. 評価指標の考え方(average_precision を含む)

不均衡データにおける評価の難しさ

実務では、

  • 正例が少ない
  • False Positive / False Negative のコストが非対称

という 不均衡データを扱うケースが非常に多くなります。

この状況では、accuracy や ROC-AUC だけでは
実務的な誤りコストの感覚を捉えにくいことがあります。


Average Precision(PR-AUC)の位置づけ

Average Precision(PR-AUC) は、Precision–Recall 曲線の面積であり、

  • Precision(FP に敏感)
  • Recall(FN に敏感)

という 誤りの種類そのものを評価に含む指標です。

そのため、

  • False Positive が業務コストに直結する
  • 正例が少ない不均衡データ

といった条件下では、
cost-sensitive な評価指標として使いやすい特性を持ちます。

👉 その観点で、不均衡データを扱う場合には
average_precision を初手の評価指標として試すことを推奨
します。


ROC-AUC との関係(補足)

ROC-AUC はランキング性能を見る指標として有用ですが、

  • FP の絶対数が重要なケース
  • 陽性を出すこと自体にコストがあるケース

では、評価感覚が実務と乖離することがあります。

このため、

不均衡データにおける cost-sensitive evaluation では、
ROC-AUC より average_precision の方が評価しやすいケースが多い

という位置づけになります。


評価指標の整理(実務視点)

指標 主な用途 備考
accuracy 全体正解率 不均衡データでは不向き
balanced_accuracy クラス補正 ベースライン
ROC-AUC ランキング評価 コスト感覚は弱い
average_precision (PR-AUC) FP / FN のトレードオフ 不均衡データで有効
PAC score 確率の自信度 補助評価に有用

6. 実務的な使い分けまとめ

  • 学習(最適化)
    log_loss(+ class_weight

  • 評価(モデル比較)

    • 不均衡データ:average_precision + PAC
    • それ以外:PAC / log_loss
  • 本番意思決定
    期待コスト最小となる threshold 最適化


7. まとめ

  • コストセンシティブ学習の出発点は
    $$C(0,0) &lt; C(1,0), \quad C(1,1) &lt; C(0,1)$$
  • TD AutoML では
    log_loss + 適切な評価指標 + 閾値最適化
    によって実務上十分な対応が可能
  • average_precision は
    不均衡データにおける初手の評価指標として有力
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment