Сегодня будет сделанный с любовью обзор функций ошибок и функционалов качества в задачах регрессии.
Выкладываю часть главы «Метрики качества» из своей вечно недописанной книги. Она полностью сделана по материалам моего курса в МГУ. Краткое содержание:
- Качество работы алгоритма
- Функции ошибки в задачах регрессии
- Средний модуль отклонения (MAE – Mean Absolute Error или MAD – Mean Absolute Deviation)
- Средний квадрат отклонения (MSE – Mean Squared Error), корень из этой ошибки: RMSE – Root Mean Squared Error, коэффициент детерминации (R2)
- функция ошибки Хьюбера (Huber loss) и logcosh
- Обобщения MAE и RMSE
- Средний процент отклонения (MAPE – Mean Absolute Percent Error)
- Симметричный средний процент отклонения (SMAPE – Symmetric Mean Absolute Percentage Error)
- MRAE – Mean Relative Absolute Error, REL_MAE, Percent Better
- MASE (Mean Absolute Scaled Error)
- eB – процент случаев, когда ответ алгоритма верен с некоторой заранее заданной точностью
- Несимметричные функции ошибки
- Реализация функций ошибок в scikit-learn
Материал ещё сырой, поэтому все замечания, предложения, найденные неточности и ошибки пишите в комментарии.
Предыдущие посты из этой серии:
И побуду «заядлым блогером»: если пост наберёт больше 2000 просмотров, то опубликую продолжение главы;)
Алексадр Геннадьевич, может, Вам найти энтузиастов среди толковых студентов-аспирантов? В полноценные соавторы — вычитать все, привнести свежее видение, сделать книгу современной, добавив практические упражнения в стиле «побить бэйзлайн на кэггле». Я бы сам вызвался, но я если возьмусь за книгу — то на английском на базе mlcourse.ai.
Можем кинуть клич в OpenDataScience. Думаю, желающие вызовутся, там отберете себе подходящего.
> Простая эвристика «завтра будет также, как вчера
так же
> В данном случае не важно обучающая это выборка
запятая после «важно»
> Как отмечается в главе «Контроль» качество
запятая после «Контроль»
стр. 4, переход от правдоподобия к большому произведению — тут важно отметить, что это работает только в предположении о независимости набюлюдений. Чаще предполагают еще и одинаковое их распределение (i.i.d), хотя для этих рассуждений нужна только независимость.
На мой субъктивный вгляд, лучше сначала показать вывод MSE из ММП — предположение о нормальнсти ошибок куда более интуитивно, чем «Лаплас»
> Заметим, что если бы в каждой точке была бы своя шибка:
ошибка
> Хорошо или плохо, если RMSE=27?
тут наверно MSE имеется в виду
Непонятна подпись «=О(2)» в разложении l(y,a) по Маклорену под линейным членом
Мне пора остановиться — в четверг защита диссера 🙂
Спасибо, Юра! Удачи на защите!
Спасибо! 🙂
Здравствуйте! Очень нравится читать ваш блог, подача простым и доступным языком позволяет хорошо усвоить некоторые неочевидные моменты.
Такой вопрос — стр.18, «При k1 < k2 мы больше штрафуем завышение и оптимальная константа смешается влево…". Не должно ли тут быть наоборот?
Спасибо. Да, Вы правы. Точнее, в формуле в сравнениях надо «a» и «y» поменять местами.
На иллюстрации с плотностью распределения Лапласа вместо $\alpha=2$ должно быть $\alpha=0.5$. Видимо, иллюстрация взята от более привычной записи функции плотности, где коэффициент стоит в знаменателе.
Да, спасибо!
В несимметричных функциях ошибок перепутаны знаки в условиях: вместо $y_ia_i$ и наоборот. Иначе некорректны подпись оси $a-y$ на графике 8.19 и весь абзац про штрафы за занижение и завышение.
Проблемы с автоформатированием комментариев. Вот без знаков доллара:
В несимметричных функциях ошибок перепутаны знаки в условиях: вместо y_ia_i и наоборот. Иначе некорректны подпись оси a-y на графике 8.19 и весь абзац про штрафы за занижение и завышение.
Оказывается, не в долларах дело, а в подчёркиваниях. И редактировать комментарии нельзя, и удалять. Ладно, ещё одна попытка:
В несимметричных функциях ошибок перепутаны знаки в условиях: вместо yiai и наоборот. Иначе некорректны подпись оси a-y на графике 8.19 и весь абзац про штрафы за занижение и завышение.
Последняя попытка. Дело было в знаках больше-меньше. Попробую переформулировать:
В несимметричных функциях ошибок перепутаны знаки в условиях: вместо y_i ≥ a_i должно быть y_i ≤ a_i, и наоборот. Иначе некорректны подпись оси a-y на графике 8.19 и весь абзац про штрафы за занижение и завышение.
Cпасибо большое, об этой ошибке выше уже упомянул Некит.
А с комментариями, действительно, проблемы. Символы ТеХа тут особо не поиспользуешь.
[…] Для «непрерывных» признаков лучше использовать RMSE. Но следует помнить, что изначально все признаки даны […]
[…] при использовании функции ошибки MAE в задаче регрессии медиана базовых алгоритмов […]
[…] Функции ошибок в задачах регрессии […]
[…] Функции ошибок в задачах регрессии […]
Здравствуйте! Хотел спросить что есть q в определении SMAPE? Выглядит так как будто там должно быть m (стр 12).
Здравствуйте! Да, так и есть. Это опечатка…
[…] Функции ошибок в задачах регрессии […]
[…] означает, что мы настраиваемся на функцию ошибки MSE, мы уже писали при каких предположениях это корректно […]
В формуле RMSE (MSE) вы делите сумму квадратов остатков на m — на количество наблюдений. Есть и другая формула RMSE, в которой сумму квадратов делят на (m-n), где n — количество коэффициентов регрессионной модели. Скажите, пожалуйста, как корректнее назвать RMSE для второго случая [ с (m-n) ] и для каких задач эту формулу лучше использовать?
Честно говоря, не знаю, как её назвать. Смысл понятен: это наказание за сложность модели. Чаще всё-таки используют вот такие штуки: http://www.stat.cmu.edu/~larry/=stat401/lecture-21.pdf
По этим формулам считают RMSE в Матлабе. Вторую формулу здесь называют the unbiased estimate of error variance https://en.wikipedia.org/wiki/Mean_squared_error#Regression — несмещенная RMSE?
[…] ошибку MSE (её привычно применять в регрессии, но сейчас мы её […]
Александр Геннадьевич, вам не кажется, что использование коэффициента детерминации R^2 в машинном обучении не имеет большого смысла. Так как не совсем понятен качественный смысл этой меры. В линейном регрессионном анализе вывод этой формулы и ее интерпретация тесно связаны с предположениями относительно модели наблюдения. Например, чтобы его записать в таком виде необходимо, чтобы регрессионная матрица содержала столбец из единиц. Регрессия с точки зрения машинного обучения и «эконометрического подхода» достаточно сильно различаются. Многие заимствования кажутся оправданными, например, функция ошибки Хьюбера или квантильная регрессия. При этом смысл той же квантильной регрессии мне кажется не совпадает, так как в статистике она придумана, чтобы бороться с несимметричными шумами и важны именно предположения о распределении ошибок в наблюдениях, а не что-то еще. В машинном обучении она используется, как мне кажется, несколько по-иному.
Ну, он же линейно зависит от MSE, при этом лежит на отрезке [0, 1] при разумном моделировании. В этом и смысл: линейная деформация MSE в нужный отрезок.
В первоначальном варианте коэффициент детерминации показывал превосходство линейной регрессии порядка n над тривиальной, т.е. над константой, которая в случае нормальных ошибок превращается в выборочное среднее. Поэтому мы сравниваем ошибку сложной регрессии с тривиальной (для гауссовского случая).R^2=0 значит, что по среднеквадратическому критерию более сложная регрессии так же плоха, как и тривиальная. Но если ошибки имеют распределение Лапласа, то для тривиальной регрессии оценка будет уже не выборочное среднее, а выборочная медиана и тогда вопрос что же показывает коэффициент детерминации в этом случае, ведь он продолжает сравнивать с отклонением от выборочного среднего. Я хочу сказать, что гауссовское распределение ошибок важно при его вычислении, если распределение другое, то что он меряет становится не совсем ясно.
По такой логике ни одна функция ошибки не подходит;)
.»..RMSE для второго случая [ с (m-n) ]» Думаю этот вариант формулы появился не как штраф за сложность модели, а тоже был взят из «классического» регрессионного анализа. Такая формула получается, если мы в линейной регрессии с детерминированными объясняющими (независимыми) регрессорами будем строить оценку дисперсии ошибок (шума). Если мы хотим построить несмещенную оценку дисперсии, то формула будет именно с таким множителем. А если свойство несмещенности оценки нам не нужно, то можно разделить и на (m). Эти всё тянется с обычной выборочной дисперсии для однородной выборки, которая является смещенной оценкой дисперсии наблюдаемой случайной величины. Для того, чтобы подправить эту оценку и появилась новая несмещенная оценка дисперсии с коэффициентом [1/(m-1)]. А в регрессии с независимыми и одинаково распределенными ошибками несмещенная оценка дисперсии шума будет с коэффициентом [1/(m-n)].
«…Отметим, что модуль производной MAE» все-таки модуль (MAE) функция не дифференцируемая… Скольких бы мучений можно было бы избежать, если бы мы сразу могли написать, что производная |x| это sign(x), но нет… Очень часто так и делают, поскольку результаты совпадают. Например, вывод выборочной медианы, как оценки максимального правдоподобия стал бы намного проще, но приходится изворачиваться.
«… По такой логике ни одна функция ошибки не подходит;) » Логика есть в построении регрессии как точки минимума функции MSE, а потом мы вычисляем коэффициент детерминации просто как хитрую нормировку MSE ошибки на отрезок [0;1]. Но вот другая последовательность: строим регрессию, как минимум MAE, а потом тоже вычисляем коэффициент детерминации будет очень сомнительной. Тут тогда должен быть аналог коэффициента детерминации, но построенный в рамках метода наименьших модулей, т.е. некая нормировка суммы модулей отклонений, но такого аналога вроде нет. Разумно вывести его не получается.