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

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

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

Среднее значение верно!!

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

Итак, давайте остановимся на том, почему мы действительно пошли от горизонтальной линии (возьмем ось Y как высоту и нарисуем y(mean), которая будет постоянной горизонтальной линией, это то, что мы сделали ранее, когда у него были только высоты этих человек) до некоторого наклона, чтобы предсказать рост Джонни.

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

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

Что ж, мы не хотим получить ULTRON, а скорее JARVIS, то есть мы хотим, чтобы наша модель ML делала то, что от него ожидается, и это также максимально точно.

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

Теперь давайте углубимся в эту ошибку предсказания.

Y (прогноз) = m * x + c

Значения m и c должны быть выбраны так, чтобы минимизировать ошибку. Если ошибка принимается в качестве метрики для оценки модели, то

Расчет ошибки

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

Но мы действительно не можем просто продолжать рисовать линии вокруг точек и продолжать сравнивать их, чтобы найти ошибку наименьшего квадрата (давайте оставим эту работу Доре-исследователю).

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

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

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

Наша цель — максимально минимизировать функцию стоимости, чтобы найти наилучшую линию соответствия.

Алгоритм градиентного спуска

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

Если мы построим m и c в зависимости от MSE, он приобретет форму чаши (как показано на диаграмме ниже).

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

Пошаговый подход:

1. Пусть m = 0 и c = 0. Пусть L — наша скорость обучения. Это может быть небольшое значение, например 0,01, для хорошей точности.

Скорость обучения определяет скорость движения градиента во время градиентного спуска. Установка слишком высокого значения сделает ваш путь нестабильным, слишком низкое - замедлит сходимость. Обнуление означает, что ваша модель ничего не изучает из градиентов.

2. Вычислите частную производную функции стоимости по m. Пусть частная производная функции стоимости по m равна Dm (при небольшом изменении m насколько сильно изменится функция стоимости).

Точно так же найдем частную производную по c. Пусть частная производная функции стоимости по c равна Dc (при небольшом изменении c насколько сильно изменится функция стоимости).

3. Теперь обновите текущие значения m и c, используя следующее уравнение:

4. Мы будем повторять этот процесс до тех пор, пока наша функция стоимости не станет очень маленькой (в идеале 0).

Алгоритм градиентного спуска дает оптимальные значения m и c уравнения линейной регрессии. С этими значениями m и c мы получим уравнение наилучшей прямой.

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

В следующем блоге я представлю вам сквозной проект с использованием линейной регрессии.

Есть вопросы? Нужна помощь? Комментарий ниже

Электронная почта: [email protected]

LinkedIn: https://www.linkedin.com/in/ritik-rai-45194b213/