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

Оптимизирована ли моя модель?

С тех пор, как моя регрессионная модель была запущена и работала, я думал о ее производительности. Если бы это была модель классификации, матрица путаницы означала бы эффективность этой модели. Однако в случае регрессионной модели все не так просто. Цель этой статьи — пролить свет на матрицу, используемую для оптимизации регрессионной модели, и на то, как она работает.

r2_score или R-квадрат

Обычно известный как R-квадрат, коэффициент детерминации определяет достоверность, с помощью которой мы можем очертить зависимый признак (y) на основе независимых признаков (X).

Значение R-квадрата, обычно вычисляемое с использованием пакета sklearn.metrics в python, имеет спектр от 0 до 1, где 0 вообще не имеет отношения, а в редком случае четкое объяснение дисперсии y, заданное 1, приводит к оптимизированная модель.

Например, значение 0,68 означает, что с достоверностью 68% мы можем предсказать значение целевой переменной (y) с помощью заданных независимых признаков (X).

Как он рассчитывается?

Однострочный код Python sklearn.metrics.r2_score(y_true, y_pred) дает нам значение r-squared, но основная функция выполняет три основных вычисления в серверной части.

  • RSS или SSE
  • ССР
  • SST

RSS или SSE

Остаточная сумма квадратов (RSS) или ошибка суммы квадратов (SSE) — это мера необъяснимого изменения целевой переменной (y) по нашей линии регрессии (y_hat). Это квадрат суммы разницы между истинным значением и прогнозируемым значением.

ССР

Сумма квадратов из-за регрессии (SSR) — это мера того, насколько хорошо наша линия регрессии соответствует данным. Это квадрат суммы разницы между средним значением и прогнозируемым значением.

SST

Общая сумма квадратов (SST) является мерой общей изменчивости данных относительно среднего значения. Это квадрат суммы разницы между средним значением и истинным значением.

Вы видите отношение?

Согласно приведенным выше описаниям, эти три термина связаны следующим образом:

SST = SSR + SSE

Наконец, R-квадрат.

Как упоминалось выше, чем выше значение R-квадрата, тем лучше наша модель. Значение r-квадрата увеличивается с увеличением числа независимых признаков.

Это означает, что введение новых независимых функций для улучшения r-квадрата делает модель лучше, верно?

НЕТ, потому что даже такой столбец, как «Бэтмен, левша или правша», для прогнозирования зарплаты разработчика может улучшить r-квадрат, но не обязательно производительность модели.

Скорректированный R-квадрат

В отличие от R-квадрата, скорректированный r-квадрат будет наказывать за добавление столбцов, которые не имеют никакого значения для прогнозирования целевой переменной.

где n — количество строк, а m — количество столбцов.

Значение скорректированного R-квадрата:

  • Увеличивается, если r-квадрат показывает значительное увеличение
  • Уменьшается, если r-квадрат не показывает значительного увеличения

Вывод

  • Мы должны рассмотреть больше столбцов, чтобы сделать нашу прогнозную модель лучше.
  • Добавление ненужных столбцов снизит производительность модели.

Итак, реальный вопрос остается:

Является ли модель, которую я сделал, оптимизированной?

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