Оптимизация относительной ошибки в задачах регрессии - PullRequest
0 голосов
/ 18 июня 2020

Говоря о проблемах регрессии, RMSE (Root среднеквадратическая ошибка) часто используется в качестве показателя оценки c. И он также используется как функция потерь в линейной регрессии (более того? Он эквивалентен методу максимального правдоподобия, учитывая, что распределение выходных данных следует нормальному распределению).

В реальных задачах я нахожу MAPE (средняя абсолютная ошибка в процентах) может быть более значимой. Например, при прогнозировании цен на жилье нас больше интересует относительная ошибка. Поскольку разница в 100 тысяч долларов - это не то же самое, если дом стоит около 100 тысяч долларов или 1 миллион долларов.

При создании линейной регрессии для задачи прогнозирования цен на жилье я нашел следующий график

  • ось x: реальное значение цен
  • ось y: относительная ошибка = (предсказание-реальное_значение) / реальное_значение

enter image description here

  • Алгоритм предсказывает относительно более высокие цены, когда реальная цена низкая
  • Алгоритм предсказывает относительно более низкие цены, когда реальная цена высока.

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

1 Ответ

0 голосов
/ 18 июня 2020

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

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

Функция ошибок, которая дает MAPE, просто разделит каждый член ошибки на истинная величина значения, что дает ошибку относительно размера значения. Затем градиенты этой ошибки могут быть вычислены по каждому параметру, и градиентный спуск может быть выполнен, как и раньше.

Прокомментируйте, если какая-то часть этого неясна или требует дополнительных пояснений!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...