Автор оригинала: Pankaj Kumar.
Функции потери в Python являются неотъемлемой частью любой модели машинного обучения. Эти функции говорят нам, насколько прогнозируемый вывод модели отличается от фактического выхода.
Есть несколько способов вычисления этой разницы. В этом руководстве мы будем смотреть на некоторые из более популярных функций потери.
Мы собираемся обсудить следующие четыре функции потери в этом руководстве.
- Средняя квадратная ошибка
- Средняя квадратическая ошибка
- Средняя абсолютная ошибка
- Перекрестная потеря
Из этих 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. Мы охватывали различные функции потери как для регрессионных, так и для проблем классификации. Надеюсь, вы веселились, чтобы узнать нас!