loglossとは?分類型タスクの評価指標

スポンサーリンク
loglossとは?ディープラーニング
この記事を読んで分かること
  • loglossとは何か

 

loglossとは

loglossとは、

$$logloss=- \frac{1}{N} \sum ^{n}_{i=1}y_i\log{p_i}+(1-y_i)\log{(1-p_i)}$$
で表される分類型タスクの評価指標

です。

 

機械学習において、loglossは交差エントロピー(クロスエントロピー)と同じものとなります。

 

変数の意味は以下の通りです。

変数の意味
  • y : 正例のラベル(1が正例で、0が負例)
  • p : 予測結果(正例の確信度)

 

\(y_i\log{p_i}\)の部分が正例のときの誤差を表し、

\((1-y_i)\log{(1-p_i)}\)の部分が負例のときの誤差を表しています。

 

loglossは低いほど誤差が少なく、良い指標です。

 

定義式だけではよくわからないと思うので、具体例を見ていきましょう。

 

loglossの具体例

3枚のお札をAIが判定した結果を例として考えてみます。

loglossの具体例

この AIの予測結果をまとめると以下のようになります。
 
IDy
(正例が1、負例が0)
p
(正例の確信度)
110.9
210.4
300.2

 

まずは、IDごとに誤差を求めていきましょう。

$$(ID:1の誤差)=- 1\log{0.9}+(1-1)\log{(1-0.9)} = -\log{0.9}$$

$$(ID:2の誤差)=- 1\log{0.4}+(1-1)\log{(1-0.4)} = -\log{0.4}$$

$$(ID:3の誤差)=- 0\log{0.2}+(1-0)\log{(1-0.2)} = -\log{0.8}$$

 

これらの誤差の平均値がloglossとなります。

$$logloss=- \frac{1}{3} (\log{0.9}+\log{0.4}+\log{0.8})=0.41$$

 

loglossでは、正例の確率を高く予測したものが間違っているとペナルティが大きく与えられるようになっています。

逆の間違い(負例の確率を高く予測したものが間違っている場合)も同様に大きなペナルティが与えられます。

 

pythonでloglossを求める

loglossscikit-learnライブラリで計算することができます。

from sklearn.metrics import log_loss

y = [1, 1, 0]
p = [0.9,0.4,0.2]

logloss = log_loss(y, p)
print(logloss)
#0.414931599615397

 

まとめ

loglossとは、

$$logloss=- \frac{1}{N} \sum ^{n}_{i=1}y_i\log{p_i}+(1-y_i)\log{(1-p_i)}$$

で表される分類型タスクの評価指標です。

 

機械学習において、loglossは交差エントロピー(クロスエントロピー)と同じものとなります。

 

pythonではscikit-learnライブラリを使うことでloglossを容易に計算することができます。

 

参考文献

コメント

タイトルとURLをコピーしました