Оценка модели очень важна, поскольку нам необходимо понять, насколько хорошо работает наша модель. По сравнению с классификацией, эффективность регрессионной модели определить несколько сложнее, поскольку, в отличие от классификации, практически невозможно предсказать точное значение целевой переменной. Поэтому нам нужен способ вычислить, насколько близко наше предсказанное значение к реальному.
Существуют различные метрики оценки модели, которые широко используются для регрессионных моделей, которые мы рассмотрим в следующих разделах.
Средняя абсолютная ошибка
Средняя абсолютная ошибка — это очень интуитивная и простая методика, поэтому она также популярна. По сути, это среднее значение расстояния между предсказанным и истинным значениями. По сути, расстояния между предсказанными и реальными значениями также являются условиями ошибки. Общая ошибка для всех данных — это среднее значение всех ошибок предсказания. Мы берем абсолютное значение расстояний/ошибок, чтобы отрицательные и положительные значения/ошибки не аннулировали друг друга.
Преимущества
- MAE не чувствителен к выбросам. Используйте MAE, когда вы не хотите, чтобы выбросы играли большую роль в вычислении ошибок.
Недостатки
- MAE не дифференцируется глобально. Это не очень удобно, когда мы используем его в качестве функции потерь, из-за метода градиентной оптимизации.
Средняя квадратичная ошибка (MSE)
MSE — одна из широко используемых метрик для решения задач регрессии. MSE — это мера среднего квадратичного расстояния между фактическими и предсказанными значениями. Квадратичные члены помогают также учесть отрицательные члены и избежать аннулирования общей ошибки между положительными и отрицательными разницами.
Преимущества
- График MSE является дифференцируемым, что означает, что его можно легко использовать в качестве функции потерь.
- MSE может быть разложен на дисперсию и квадрат смещения. Это помогает нам понять влияние дисперсии или смещения данных на общую ошибку.
Недостатки
-
Вычисленное значение MSE имеет другую единицу измерения, чем целевая переменная, поскольку оно является квадратом. (Например, метр → метр²)
-
Если в данных есть выбросы, то они приведут к большей ошибке. Поэтому MSE не устойчив к выбросам (это также может быть преимуществом, если вы хотите штрафовать выбросы).
Корневая средняя квадратичная ошибка (RMSE)
Как следует из названия, в RMSE мы берем корень из среднего квадрата расстояния, то есть корень из MSE. RMSE также является популярной метрикой оценки, особенно в методах глубокого обучения.
Преимущества
- Вычисленная ошибка имеет ту же единицу измерения, что и целевые переменные, что делает интерпретацию относительно более простой.
Недостатки
- Как и MSE, RMSE также подвержен влиянию выбросов.
R-квадрат
R-квадрат — это другая метрика по сравнению с теми, которые мы обсуждали до сих пор. Она не измеряет непосредственно ошибку модели.
R-квадрат оценивает разброс точек данных вокруг установленной линии регрессии. Это процент вариации целевой переменной, которую учитывает модель, по сравнению с фактической дисперсией целевой переменной. Он также известен как «коэффициент детерминации» или хорошее соответствие.
Как мы видим выше, R-квадрат рассчитывается путем деления суммы квадратов ошибок предсказаний на общую сумму квадратов, где предсказанное значение заменяется средним значением реальных значений.
R-квадрат всегда находится между 0 и 1. 0 означает, что модель не объясняет никакой вариации целевой переменной вокруг ее среднего значения. Регрессионная модель в основном предсказывает среднее значение целевой переменной. Значение 1 указывает на то, что модель объясняет всю дисперсию целевой переменной вокруг ее среднего значения.
Большее значение R-квадрат обычно указывает на то, что регрессионная модель лучше соответствует данным. Однако высокий показатель R-квадрат не обязательно означает, что модель хорошая.
import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
from sklearn.linear_model import LinearRegression
import seaborn as sns; sns.set_theme(color_codes=True)
X, y = make_regression(n_samples = 80, n_features=1,
n_informative=1, bias = 50, noise = 15, random_state=42)
plt.figure()
ax = sns.regplot(x=X,y=y)
model = LinearRegression()
model.fit(X, y)
print('R-squared score: {:.3f}'.format(model.score(X, y)))
X, y = make_regression(n_samples = 80, n_features=1,
n_informative=1, bias = 50, noise = 200, random_state=42)
plt.figure()
ax = sns.regplot(x=X,y=y)
model = LinearRegression()
model.fit(X, y)
print('R-squared score: {:.3f}'.format(model.score(X, y)))
Преимущества
- R-квадрат — это удобная и интуитивно понятная метрика того, насколько хорошо модель соответствует данным. Поэтому это хорошая метрика для оценки базовой модели. Однако из-за недостатков, которые мы сейчас обсудим, его следует использовать осторожно.
Недостатки
- R-квадрат не может определить, являются ли прогнозы смещенными, поэтому в дополнение к нему стоит посмотреть на графики остатков.
- R-квадрат не обязательно указывает на то, что регрессионная модель хороша. Также возможно иметь низкий показатель R-квадрат для хорошей регрессионной модели и высокий R-квадрат для плохой модели (особенно из-за чрезмерной подгонки).
- Когда в модель добавляются новые входные переменные (предикторы), R-квадрат увеличивается (потому что мы добавляем больше дисперсии к данным) независимо от фактического увеличения производительности модели. Он никогда не уменьшается при добавлении новых входных переменных. Поэтому может показаться, что модель с большим количеством входных переменных имеет лучшую производительность только потому, что у нее больше входных переменных. Это проблема, которую мы собираемся решить с помощью скорректированного R-квадрат.R-квадрат не может определить, являются ли предсказания необъективными, поэтому просмотр графиков остатков в дополнение является хорошей идеей.R-квадрат не обязательно указывает на то, что регрессионная модель хороша. Также возможно иметь низкий показатель R-квадрат для хорошей регрессионной модели и высокий R-квадрат для плохой модели (особенно из-за чрезмерной подгонки).Когда в модель добавляются новые входные переменные (предикторы), R-квадрат увеличивается (потому что мы добавляем больше дисперсии к данным) независимо от фактического увеличения производительности модели. Он никогда не уменьшается при добавлении новых входных переменных. Поэтому может показаться, что модель с большим количеством входных переменных имеет лучшую производительность только потому, что у нее больше входных переменных. Это проблема, которую мы собираемся решить с помощью скорректированного R-квадрата.
Все еще возможно подобрать хорошую модель к набору данных с большой дисперсией, которая, скорее всего, будет иметь низкий R-квадрат. Однако это не обязательно означает, что модель плохая, если она все еще способна отражать общую тенденцию в наборе данных и отражать влияние изменения предиктора на целевые переменные. R-квадрат становится большой проблемой, когда мы хотим предсказать целевую переменную с высокой точностью, то есть с небольшим интервалом предсказания.
Высокий показатель R-квадрат также не обязательно означает хорошую модель, поскольку он не способен выявить смещение. Поэтому хорошей идеей является также проверка графиков остатков. Как мы уже говорили ранее, модель с высоким показателем R-квадрат может также быть чрезмерно подходящей, поскольку она отражает большую часть дисперсии в данных. Поэтому всегда полезно проверить показатель R-квадрат прогнозов модели и сравнить его с показателем R-квадрат, полученным из обучающих данных.
Если вам понравилось это, не стесняйтесь следовать за мной для получения новых бесплатных уроков и курсов по машинному обучению!