Рубрики
Без рубрики

Функции потери в Python – легкая реализация

Функции потери в Python являются неотъемлемой частью любой модели машинного обучения. Эти функции говорят нам, насколько прогнозируемый вывод модели отличается

Автор оригинала: Pankaj Kumar.

Функции потери в Python являются неотъемлемой частью любой модели машинного обучения. Эти функции говорят нам, насколько прогнозируемый вывод модели отличается от фактического выхода.

Есть несколько способов вычисления этой разницы. В этом руководстве мы будем смотреть на некоторые из более популярных функций потери.

Мы собираемся обсудить следующие четыре функции потери в этом руководстве.

  1. Средняя квадратная ошибка
  2. Средняя квадратическая ошибка
  3. Средняя абсолютная ошибка
  4. Перекрестная потеря

Из этих 4 функций потери первые три применимы к регрессии, а последний применим в случае классификационных моделей.

Реализация функций потери в Python

Давайте посмотрим, как реализовать эти функции потери в Python.

1. средняя квадратная ошибка (MSE)

Средняя квадратная ошибка (MSE) рассчитывается как среднее значение квадрата разницы между прогнозами и фактическими наблюдениями. Математически мы можем представлять это следующим образом:

Реализация Python для MSE заключается в следующем:

import numpy as np
def mean_squared_error(act, pred):

   diff = pred - act
   differences_squared = diff ** 2
   mean_diff = differences_squared.mean()
   
   return mean_diff

act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])

print(mean_squared_error(act,pred))

Выход:

0.04666666666666667

Вы также можете использовать select_squared_error от Sklearn, чтобы рассчитать MSE. Вот как работает функция :

from sklearn.metrics import mean_squared_error
act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_squared_error(act, pred)

Выход:

0.04666666666666667

2. Ошибка корневого среднего квадрата (RMSE)

Ошибка Square Square Cand Square (RMSE) рассчитывается как квадратный корень средней квадратной ошибки. Математически мы можем представлять это следующим образом:

Реализация Python для RMSE заключается в следующем:

import numpy as np
def root_mean_squared_error(act, pred):

   diff = pred - act
   differences_squared = diff ** 2
   mean_diff = differences_squared.mean()
   rmse_val = np.sqrt(mean_diff)
   return rmse_val

act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])

print(root_mean_squared_error(act,pred))

Выход:

0.21602468994692867

Ты можешь использовать seal_squared_error. От Sklearn, чтобы рассчитать RMSE. Давайте посмотрим, как реализовать RMSE, используя ту же функцию:

from sklearn.metrics import mean_squared_error
act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_squared_error(act, pred, squared = False)

Выход:

0.21602468994692867

Если параметр ‘ в квадрате «Установлено на Правда Тогда функция возвращает MSE значение. Если установлено на Ложь, Функция возвращает RMSE значение.

3. Средняя абсолютная ошибка (МАЭ)

Средняя абсолютная ошибка (МАЭ) рассчитывается как среднее значение абсолютной разницы между прогнозами и фактическими наблюдениями. Математически мы можем представлять это следующим образом:

Реализация Python для MAE выглядит следующим образом:

import numpy as np
def mean_absolute_error(act, pred):
    diff = pred - act
    abs_diff = np.absolute(diff)
    mean_diff = abs_diff.mean()
    return mean_diff

act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_absolute_error(act,pred)

Выход:

0.20000000000000004

Вы также можете использовать Среднее_absolute_Error. от Sklearn, чтобы рассчитать МАЭ.

from sklearn.metrics import mean_absolute_error
act = np.array([1.1,2,1.7])
pred = np.array([1,1.7,1.5])
mean_absolute_error(act, pred)

Выход:

0.20000000000000004

4. Функция потери поперечной энтропии в Python

Потеря кросс-энтропии также известна как Негативная вероятность журнала Отказ Это чаще всего используется для задач классификации. Проблема классификации – это то, где вы классифицируете пример, принадлежащий одному из двух классов.

Давайте посмотрим, как рассчитать ошибку в случае проблемы двоичной классификации.

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

Код Python для поиска ошибки приведен ниже.

from sklearn.metrics import log_loss
log_loss(["Dog", "Cat", "Cat", "Dog"],[[.1, .9], [.9, .1], [.8, .2], [.35, .65]])

Выход:

0.21616187468057912

Мы используем log_loss. Метод от Sklearn.

Первый аргумент в вызове функций является Список правильные классные этикетки для каждого ввода. Второй аргумент является Список вероятностей, как предсказано по модели.

Возможности находятся в следующем формате:

[P(dog), P(cat)]

Заключение

В этом руководстве было о функциях потерь в Python. Мы охватывали различные функции потери как для регрессионных, так и для проблем классификации. Надеюсь, вы веселились, чтобы узнать нас!