Когда у нас есть данные с их целевыми значениями (так называемое контролируемое обучение), линейная регрессия является простым методом. Это простой метод определения того, насколько хорошо одна предикторная переменная X будет предсказывать другой количественный ответ Y.

Предполагается, что X и Y имеют линейную зависимость.

Математически это можно записать так:

где y — прогнозируемая количественная переменная, а x — предикторы.

Пример перед тем, как заблудиться в математике

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

Переменные (предикторы), которые мы уже знаем (x), — это количество часов, которые мы тратим на изучение (x1), играя в видеоигры (x2) и пользуясь социальными сетями >(x3)за прошедшую неделю, а значение, которое мы хотим предсказать, — это оценка, которую мы можем получить на экзамене (y).

В приведенном выше примере первый член β0 будет представлять ожидаемые баллы, набранные человеком, который не выполнил ни одной из трех задач.

Коэффициент β1 представляет собой среднее изменение баллов, когда количество еженедельных учебных занятий увеличивается на единицу, при условии, что количество других занятий (видеоигры и социальные сети) остается прежним.

Коэффициент β2 представляет собой среднее изменение результатов, когда еженедельные сеансы видеоигр увеличиваются на единицу, при условии, что количество других сеансов остается прежним. Точно так же коэффициент β3 будет представлять собой среднее изменение оценок, когда еженедельные сеансы в социальных сетях увеличиваются на один, при условии, что количество других сеансов остается прежним.

«Все эти β придают вес каждому действию при прогнозировании окончательного результата».

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

Найти такие отношения — все равно, что подобрать лучшую линию.

Функция стоимости

Цель: уменьшить ошибку между прогнозируемыми и исходными значениями.

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

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

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

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

Теперь мы знаем, что нам нужно оценить коэффициенты, и для этого нам понадобится функция стоимости, такая как MSE, но главный вопрос заключается в том, как?
Обновление или корректировка значений коэффициентов выполняется с использованием градиентного спуска.

Теперь вопрос в том, как скорректировать значения коэффициентов, если у нас есть функция потерь? и решение - градиентный спуск.

Градиентный спуск

Цель: найти оптимальные коэффициенты

При изучении линейной регрессии градиентный спуск — следующая важная идея, которую нужно понять. Чтобы снизить функцию стоимости (здесь: MSE), можно использовать градиентный спуск для обновления коэффициентов. Цель состоит в том, чтобы начать с набора случайных значений коэффициентов, а затем итеративно корректировать эти значения до тех пор, пока стоимость не будет минимизирована. Используя градиентный спуск, мы можем выяснить, какие числа поменять местами.

Градиентный спуск без математики:

Возьмем, к примеру, U-образную яму, где вы находитесь наверху. Ваша цель - спуститься на дно ямы. Загвоздка в том, что вы можете спускаться только на определенное количество уровней. Делая вещи медленно, вы доберетесь до дна ямы, но это займет гораздо больше времени. Вы могли бы добраться туда быстрее, если бы шли большими шагами, но всегда есть вероятность, что вы вообще пропустите дно ямы. Скорость обучения в процессе градиентного спуска прямо пропорциональна количеству пройденных шагов. От этого параметра зависит, насколько быстро алгоритм достигает минимума. Скорость обучения показывает, с какой скоростью вы продвигаетесь к базе.

Для линейной регрессии функция стоимости всегда выпукла, но для нелинейных функций (невыпуклых) возможна сходимость к локальному минимуму.

Градиентный спуск без математики:

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

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

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

На основе полученных частных производных (которые говорят об изменении функции стоимости по отношению к каждому коэффициенту) мы обновили бы значение коэффициентов, используя приведенное выше уравнение, где α — скорость обучения, обсуждавшаяся выше, которая поможет достичь минимумов. Мы будем повторять вышеуказанные шаги до сходимости.

Основываясь на значении α (скорость обучения), мы достигли бы минимума (J-min), но если α слишком велико, мы можем выйти за пределы t или если оно слишком мало это займет вечность, чтобы достичь. Вот почему выборα слишком важен.

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

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

В статистике коллинеарность относится к наличию линейной связи между двумя переменными-предикторами (или независимыми переменными).

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

При линейной регрессии может возникнуть переобучение, хотя простые подходы, такие как регрессия Риджа и Лассо, могут облегчить эту проблему.

Ридж-регрессия

В гребневой регрессии (L-2) к функции стоимости добавляется штраф, пропорциональный квадрату размера коэффициентов. Что изменит исходное уравнение 2 на:

Следовательно, коэффициенты (β) ограничены с помощью гребневой регрессии. Коэффициенты (β) становятся более предсказуемыми за счет штрафного члена (λ), который наказывает функцию оптимизации, если коэффициенты принимают высокие значения. По этой причине гребневая регрессия полезна для упрощения моделей и уменьшения мультиколлинеарности, поскольку она приводит к меньшим коэффициентам регрессии. Модель будет напоминать модель линейной регрессии, если ограничения на признаки ослаблены (низкий λ).

Лассо-регрессия

Чтобы выразить стоимость регрессии с помощью оператора наименьшего абсолютного сокращения и выбора (лассо — L1), используется следующая формула:

Единственное отличие состоит в том, что рассматриваются величины, а не квадраты коэффициентов. Некоторые коэффициенты (β) могут быть полностью проигнорированы при оценке выходных данных, если используется регуляризатор L1 или лассо. Следовательно, регрессия Лассо может помочь нам в выборе признаков, а также в предотвращении переобучения. Параметр регуляризации (λ) можно настроить так же, как и для регрессии Риджа.

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

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