Математика, стоящая за линейной регрессией с кодом (Обычные наименьшие квадраты, линейные наименьшие квадраты)

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

То же уравнение можно расширить для набора данных d-измерения:

Итак, нам нужно найти плоскость (W, b) приведенного выше уравнения, которая лучше всего соответствует большинству точек данных.

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

Поскольку ошибка может быть положительной и отрицательной, так как y_iPred может быть выше или ниже плоскости/линии, поэтому для поддержания положительной ошибки мы возводим ошибку в квадрат для каждого x_i.

Функция ошибки следует параболической кривой, что означает, что ошибка (ось Y) всегда будет положительной.

Нам нужно минимизировать ошибки для всех наборов точек, что называется MSE (среднеквадратическая ошибка).

И функция стоимости линейной регрессии:

Используйте оптимизатор, чтобы вычислить оптимальное значение W, b, которое минимизирует приведенную выше функцию стоимости. Оптимизатор градиентного спуска можно использовать для поиска оптимального значения плоскости, для которого среднеквадратическая ошибка минимальна.

Оптимизатор градиентного спуска:

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

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

Действия, которые необходимо выполнить для метода градиентного спуска:

  1. Инициализируйте вектор весов и термин смещения.
  2. Найдите производную функции по весу и смещению.
  3. Обновите вес и смещение. С каждой итерацией вектор веса и смещение обновляются для достижения минимума.

Шаг 1. Инициализируйте вектор весов и смещение:

Инициализируйте вектор весов и термин смещения со случайными значениями. Размерность вектора весов будет равна размерности набора данных.

Шаг 2. Найдите производную функции по весу и смещению:

Ниже два уравнения представляют собой производную функции f относительно вектора веса и члена смещения соответственно.

Шаг 1. Обновите вес и смещение:

Вектор веса и член смещения обновляются для каждой итерации в соответствии с упомянутыми уравнениями. ‘lr’ представляет скорость обучения, которая определяет, насколько быстро должно происходить обновление.

Реализовать код:

Подробный код LR (код реализации SKLearn)



Необходимость регуляризации в линейной регрессии — YouTube



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

Ссылка:

ПрикладнойИИ