Выбор способа оценки модели машинного обучения является одним из наиболее важных решений в процессе машинного обучения. Решение должно сбалансировать реальное применение алгоритма, математическое свойство функции оценки и интерпретируемость меры.

Часто мы слышим вопрос, насколько точна ваша модель. Точность — это простая мера, которая говорит нам, какой процент строк мы получили правильно. Однако иногда точность не говорит всей истории.

Рассмотрим случай выявления СПАМ в электронном письме. Есть 99% процентов законных (любимых) электронных писем и только 1% спама. Здесь, если я настрою модель, чтобы сказать, что все электронные письма являются законными, моя модель будет точной на 99%, но она бесполезна.

Аналогичный случай относится к обнаружению рака. Таким образом, если появление Y и N резко непропорционально, лучший способ оценить точность — использовать метрику логарифмических потерь.

Потеря журнала обычно называется функцией потерь и является мерой ошибки. Мы хотим, чтобы наша ошибка была как можно меньше. Здесь вместо максимизации точности мы минимизируем ошибку.

‘#computing log loss function:
import numpy as np
def compute_log_loss(predicted, actual, eps=1e-14)
  predicted = np.clip(predicted, eps, 1-eps)
 
  #clip sets maximum and minimum value in our array so that we take  care of 0(log(0)) which is infinity.
 loss =-1*np.mean(actual*np.log(predicted)+(1-actual))*np.log(1-predicted)
return loss’
Note:
'''predicted: the predicted probabilities as float between 0–1
    actual: The actual binary label, either 0 or 
    eps: (optionL) log(0) is infinity so we need to offset our predicted values slightly by eps from 0 to 1           
 
   log loss (n=1) = y log(p) +(1-y)log(1-p)
 
   Consider the case when the true label is zero by we with  confidently predicted(0.9) the label to be 1. 
   In this case, because y=0, the first term in above equation   becomes 0. This means log loss is calculated 
   by only second term i.e (1-y)log(1-p)
 
   log(1–0.9)=>log 0.1=>2.3
 
 Case 2: conseide the case when the correct label =1 but we are only 50% sure. then log loss =0.69
 
 Thus for the better prediction we want to minimize log loss value. 
 
 From the above observation we can conclude that it is better to be less confident than be confident
 and wrong. ‘’’