優れたログ損失とは何ですか?


16

私はログ損失とその仕組みをよりよく理解しようとしていますが、見つけることができないように思われることの1つは、ログ損失数を何らかのコンテキストに入れることです。モデルのログ損失が0.5の場合、それは良いですか?良い点と悪い点とは何ですか?これらのしきい値はどのように変化しますか?


このスレッドはここに関連しています:stats.stackexchange.com/q/414349/121522
mkt-モニカの復元

回答:


19

対数損失は、単純にここで、pは、単純に実際のクラスに起因する確率です。Lp=ログpp

そのため、は適切であり、確率1は正しいクラスに帰属し、L p = + 不適切です。確率0は実際のクラスに起因するためです。Lp=01Lp=+0

だから、あなたの質問、答え、平均して手段を、あなたは右のクラスの確率に起因P 0.61サンプル間。Lp=0.5p0.61

さて、これで十分かどうかを判断するのは実際にはアプリケーションに依存しているので、議論次第です。


9

他のメトリックと同様に、良いメトリックは、観測に関する情報なしで推測する必要がある場合、「ダム」、偶然の推測よりも優れたものです。これは、統計ではインターセプトのみのモデルと呼ばれます。

この「愚かな」推測は、2つの要因に依存します。

  1. クラスの数
  2. クラスのバランス:観測されたデータセットにおけるそれらの有病率

LogLossメトリックの場合、通常の「よく知られた」メトリックの1つは、0.693が情報価値のない値であると言うことです。この数値はp = 0.5、任意のクラスのバイナリ問題を予測することにより取得されます。これは、バランスの取れたバイナリ問題に対してのみ有効です。1つのクラスの有病率が10%の場合、p =0.1そのクラスを常に予測するためです。予測0.5は鈍いので、これはダムによる偶然の予測のベースラインになります。

I. クラスの数がNダムログロスに与える影響:

バランスのとれた場合(すべてのクラスが同じ有病率を持っている)、p = prevalence = 1 / Nすべての観測について予測すると、方程式は単純になります。

Logloss = -log(1 / N)

logLnこと慣例を使う人のために、neperian対数。

バイナリの場合N = 2Logloss = - log(1/2) = 0.693

愚かなログロスは次のとおりです。

クラスの数に応じたダムログロス-バランスのとれたケース

II。ダムログロスに対するクラスの普及の影響:

a。バイナリ分類の場合

この場合、常に予測しp(i) = prevalence(i)、次の表を取得します。

バイナリ分類ログ損失、バランス-テーブル

したがって、クラスのバランスが非常に悪い場合(普及率<2%)、実際には0.1の対数損失は非常に悪い場合があります!そのような場合、98%の精度は悪いでしょう。したがって、Loglossは使用するのに最適なメトリックではないかもしれません

バイナリ分類ログ損失、不均衡-チャート

b。3クラスケース

「ダム」-有病率に応じたログロス-3クラスの場合:

3クラスの分類ログ損失、不均衡

ここでは、バランスの取れたバイナリおよび3クラスのケース(0.69および1.1)の値を見ることができます。

結論

0.69の対数損失は、マルチクラス問題では良好であり、バイナリバイアスの場合では非常に悪い場合があります。

場合によっては、予測の意味を確認するために、問題のベースラインを自分で計算する方がよいでしょう。

偏った場合、loglossには精度やその他の損失関数と同じ問題があることを理解しています。これは、パフォーマンスの全体的な測定値のみを提供します。したがって、マイノリティクラス(リコールと精度)に焦点を当てたメトリックで理解を補完するか、またはログロスをまったく使用しないことをお勧めします。


(+1)CVへようこそ!投稿で数学の組版を使用できます。詳細情報:math.meta.stackexchange.com/questions/5020/...
Sycoraxが復活モニカ言う

私の答えよりも良い、+ 1
Firebug

5

したがって、これは実際にはFirebugsの応答よりも複雑であり、予測しようとしているプロセスの固有の変動にすべて依存しています。

バリエーションとは、「既知のイベントと未知のイベントがまったく同じ条件で繰り返される場合、同じ結果が再び発生する可能性はどれくらいか」という意味です。

確率Pの場合、完全な予測子には損失があります。損失= P ln P +(1-P)ln(1-P)

さらに悪いことに、50/50の結果でいくつかのイベントが予測されるものを予測しようとしている場合、平均を統合して取得すると、平均損失はL = 0.5になります。

予測しようとしているものが少し繰り返しやすい場合、完全なモデルの損失は低くなります。したがって、たとえば、完全なモデルが十分な情報を使用して、考えられるすべてのイベントで「このイベントは90%の確率で発生する」という最悪のイベントの結果を予測できた場合、平均損失はL = 0.18になります。 。

確率の分布が均一でない場合にも違いがあります。

あなたの質問に対する答えは、「あなたが予測しようとしているものの性質に依存する」という答えです


L0.693p

L0.18。比較のために、0から100%の範囲で変化するシステムは、最高の状態になりますL0.5
シメオン

1
私はあなたのより悪いケースに反対しません。「良い結果」はシステムに依存していると言っているだけです。0.4は、いくつかのシステム(後者の例のような)で良い結果を示したり、悪いシステム(前者の例)を示したりします。
シメオン

0

標準的な統計の答えは、インターセプトのみのモデルと比較することです。(これは他の回答で言及された不均衡なクラスを処理します)cf mcFaddenの擬似r ^ 2。 https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/

今、問題は最大値が何であるかです。基本的に問題は、イベントの確率がイベントのモデルの外で未定義であることです。私が提案する方法は、確率推定を得るために、テストデータを取得して特定のレベルに集約することです。次に、この推定の対数損失を計算します。

たとえば、(web_site、ad_id、consumer_id)に基づいてクリック率を予測し、次にクリック、インプレッションをweb_siteレベルに集計し、各Webサイトのテストセットのctrを計算します。次に、これらのテストクリックスルー率を予測として使用して、テストdata_setのlog_lossを計算します。これは、ウェブサイトIDのみを使用するモデルのテストセットの最適なログ損失です。問題は、各レコードが一意に識別されるまで機能を追加するだけで、この損失をできるだけ小さくできることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.