logloss対gini / auc


14

2つのモデル(h2o AutoMLを使用するバイナリ分類器)をトレーニングしたので、使用するモデルを1つ選択します。次の結果が得られました。

 model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

aucそしてlogloss列が交差検定メトリクス(クロスバリデーションのみトレーニングデータを使用する)です。..._trainそして..._validメトリックは、それぞれのモデルを通じてトレーニングと検証のメトリックを実行することによって発見されました。logloss_validまたはを使用しgini_validて、最適なモデルを選択します。

モデル1は優れたジニ(つまりAUC)を持っていますが、モデル2は優れた対数損失を持っています。私の質問は、どちらを選択するべきかという質問です。決定基準としてgini(AUC)またはloglossを使用することの利点/欠点は何ですか。


1
このビデオでは、分類だけでなく確率に関心がある場合にログロスが推奨される理由を説明しています。バイナリ分類の場合、ログロスはブライヤースコアに等しいことに注意してください。
Dan

回答:


10

AUCは変化する決定しきい値を持つバイナリ分類に関して計算されますが、ログロスは実際には分類の「確実性」を考慮に入れます。

したがって、私の理解では、ログロスは概念的にAUCを超えており、データの不均衡がある場合や、不均等に分散したエラーコスト(致命的な病気の検出など)の場合に特に関連があります。

この非常に基本的な答えに加えて、バイナリ分類問題でのaucとloglossの最適化を確認することをお勧めします

対数損失計算の簡単な例とその基礎となる概念は、この最近の質問で説明されています。scikit -learnの対数損失関数は異なる値を返します

さらに、stackoverflowで非常に良い点が作成されました

AUC ROCと、精度/精度などの「ポイントごとの」メトリックとの決定的な違いを理解する必要があります。ROCは、しきい値の関数です。各クラスに属する確率を出力するモデル(分類子)が与えられると、通常、要素を最も高いサポートを持つクラスに分類します。ただし、このルールを変更し、実際に特定のクラスとして分類するために、一方のサポートを他方の2倍大きくすることを要求することで、より良いスコアを取得できる場合があります。これは多くの場合、不均衡なデータセットに当てはまります。このようにして、実際にデータの適合度を高めるために、学習した事前クラスを変更しています。ROCは「このしきい値をすべての可能な値に変更するとどうなるか」を調べ、AUC ROCはそのような曲線の積分を計算します。


最初のリンクには、「AUCは、モデルがクラスを区別する能力を最大化する一方で、対数損失は実際の確率と推定確率の間の相違にペナルティを課しますが含まれています。モデルの「確率」出力を直接操作する場合は、対数損失を最適化する必要があります(そして、おそらく確率調整も行います)。それは私がAUCと一緒に行くべきである他のcalssまたは他ですか
Dan

2
正しいか間違った決定を気にするだけなら-> AUCを使う-あなたがどれだけ「正しい」か「間違っている」か気にするなら-> loglossを使う
Nikolas Rieble

パフォーマンス測定のそれ以上の選択は一般化することはできず、ドメイン/アプリケーションに依存します。
Nikolas Rieble
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.