Обзор некоторых методологий, используемых для оценки качества регрессионной модели

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

Самый распространенный способ оценить, хороша модель или нет, – это вычислить метрику производительности на основе неверных данных.

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

Показатели производительности для регрессии

Мы рассмотрим среднеквадратичную ошибку (MSE), среднюю абсолютную ошибку (MAE), медианную абсолютную ошибку (MdAE), частоту ошибок почти правильных прогнозов (ACPER), среднюю абсолютную процентную ошибку (MAPE) и среднеквадратичную ошибку (RMSE). Насколько я понимаю, это самые полезные показатели для регрессионной модели.

Мы начнем с MSE, который довольно легко понять.

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

Наиболее распространенной метрикой является функция стоимости регрессии: среднеквадратическая ошибка (MSE). Это определяется как

где f — это модель, которая принимает вектор признаков x в качестве входных данных и выводит прогноз, а i, в диапазоне от 1 до N, обозначает индекс примера из набора данных. Сумма прогнозов за вычетом реальных значений по N указывает среднее значение. Возводя в квадрат, мы удаляем знак минус и придаем больший вес большим различиям.

Модель регрессии пытается подобрать данные, рисуя линию, которая минимизирует расстояние от реальных точек данных и точки на той же линии. Чем ближе значения к линии, тем лучше модель вела себя для этой конкретной точки. Следовательно, чем ниже MSE, тем лучше.

Показатель MSE обычно сравнивают со средней базовой моделью — моделью регрессии, основанной на среднем значении. Эта модель всегда предсказывает среднее значение меток обучающих данных. Если MSE нашей регрессионной модели больше, чем наша базовая MSE, значит, в нашей регрессионной модели что-то не так.

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

Вот как это реализовать на Python

Средняя абсолютная ошибка (MAE)

MAE похож на MSE, так как принимает абсолютные значения остатков f(x) - y без коэффициента возведения в квадрат. Он не учитывает направление ошибки, а это означает, что мы не будем знать, какие отрицательные или положительные ошибки больше влияют на общее среднее значение. При этом MAE более устойчив к выбросам, поскольку не возводит в квадрат значения ошибок отдаленных прогнозов.

Вот как это реализовать на Python

Средняя абсолютная ошибка (MdAE)

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

здесь {|f(x_i) — y_i|}обозначает набор абсолютных значений ошибки для всех примеров, на которых выполняется оценка модели.

Если выбросы присутствуют и не обработаны, используйте MdAE вместо MSE или MAE, так как это дает лучшее представление об ошибке для точек, которые не так удалены от линии регрессии.

Вот как это реализовать на Python

Частота ошибок почти правильных прогнозов (ACPER)

ACPER – это процент прогнозов, который соответствует pпроценту от истинного значения. Речь идет об установке произвольного диапазона, в который попадают ваши значения. Все эти значения участвуют в расчете ACPER.

Вот простой алгоритм вычисления ACPER:

  1. определите пороговую процентную ошибку, которую вы считаете приемлемой (скажем, 2%)
  2. Для каждого истинного значения целевого y желаемый прогноз должен быть между y_i-0,02*y_i и y_i+0,02*y_i.
  3. используя все выборки, рассчитайте процент прогнозируемых значений, соответствующих приведенному выше правилу. Это даст нам ACPER для нашей модели.

Вот как это реализовать на Python

Результат: [False, False, True, False]. Мы можем просто подсчитать количество значений True и разделить на длину списка.

Средняя абсолютная ошибка в процентах (MAPE)

Средняя абсолютная ошибка в процентах (MAPE) измеряет ошибку в процентах и ​​может быть рассчитана путем небольшого изменения MAE и умножения на 100 для получения процентной оценки. Это одна из наиболее полезных и используемых метрик для оценки регрессионной модели.

Предположим, что MAPE для нашей модели составляет 5% — это будет означать, что средняя разница между прогнозируемым значением и наблюдаемым значением составляет в среднем 5%. Удобно и понятно, правда?

Как и MAE, он страдает от выбросов, поэтому обязательно обрабатывайте их надлежащим образом.

Вот как это реализовать на Python

Среднеквадратическая ошибка (RMSE)

Среднеквадратическая ошибка (RMSE) — это мера абсолютной ошибки, при которой ошибки возводятся в квадрат, чтобы положительные и отрицательные значения не компенсировали друг друга (точно так же, как MSE). Он представляет собой стандартное отклонение остатков. Подчеркнем, что невязка – это расстояние между прогнозируемой точкой и наблюдаемой точкой. Будучи стандартным отклонением, оно показывает, насколько разбросаны остатки вокруг нашей линии регрессии.

Я собираюсь позаимствовать и процитировать здесь коллега-писатель

Это говорит нам эвристически, что RMSE можно рассматривать как своего рода (нормализованное) расстояние между вектором прогнозируемых значений и вектором наблюдаемых значений.

Реализация очень проста, поскольку речь идет всего лишь о применении np.sqrt к нашему вычислению MSE, описанному выше.

Заключение

Не стесняйтесь использовать код, представленный в этой статье, для реализации ваших показателей производительности. Имейте в виду, что существует специальный API от Scikit-Learn, который делает нашу жизнь проще. Используй это!