Матрица, используемая для оптимизации регрессионной модели, созданной на основе данных опроса разработчиков за 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, доступный здесь.