Pythonの機械学習ライブラリであるscikit-learn
には、Log Lossを計算するための関数log_loss
が提供されています。Log Lossは、ロジスティック回帰やニューラルネットワークなどのモデルの訓練データに対する負の対数尤度を表す損失関数です。
Log Lossは以下のように定義されます:
$$
L_{\text{log}}(y, p) = -(y \log(p) + (1 – y) \log(1 – p))
$$
ここで、$y$は真のラベル(0または1)、$p$は予測確率を表します。この損失関数は、モデルが予測した確率が真のラベルからどれだけ乖離しているかを数値化します。
PythonでLog Lossを計算するためのコードは以下のようになります:
import numpy as np
import math
def logloss(true_label, predicted, eps=1e-15):
p = np.clip(predicted, eps, 1 - eps)
if true_label == 1:
return -math.log(p)
else:
return -math.log(1 - p)
この関数logloss
は、真のラベルと予測確率を引数に取り、Log Lossを計算して返します。予測確率は0または1になるとLog Lossは定義できないため、np.clip
関数を用いて予測確率が0と1の間に収まるように調整しています。
以上がPythonとLog Lossについての基本的な情報です。これらの知識を活用して、より良い機械学習モデルを訓練することができます。.