Линейную регрессию можно рассматривать как привет, мир машинного обучения. Что это значит? Это означает, что линейная регрессия — это первый шаг, который вы можете сделать для понимания и изучения алгоритмов машинного обучения. Это действительно важная концепция? Да, линейная регрессия используется во многих аспектах современного мира, от прогнозного моделирования до анализа временных рядов и прогнозирования. Это лучший алгоритм машинного обучения? Не совсем… существует множество вариантов линейной регрессии от классической одномерной линейной регрессии до многомерной линейной регрессии, логистической регрессии, гребневой регрессии, лассо-регрессии и т. д. В этом блоге я хочу сосредоточиться на одномерной линейной регрессии. , математика линейной регрессии и, наконец, я приложил блокнот juypter, а также мой репозиторий GitHub, чтобы помочь вам начать работу.

Ссылка на совместную работу: https://colab.research.google.com/drive/1K74JEbsE70R9KarsaGvLmsvIwl1fTckM?usp=sharing

Определение. Линейная регрессия – это процесс поиска наиболее подходящей линии, представленной математическим уравнением в ряде дискретных числовых точек данных.

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

Ниже я создал случайный набор данных, используя NumPy и метод Random в пакете NumPy. Для этой демонстрации я включил простое математическое уравнение, которое дает взаимосвязь между переменными X и Y (чтобы увидеть это уравнение и график, обратитесь к блокноту Google Collab).

Когда у нас есть набор данных, для нас действительно важно разделить набор данных на набор данных для обучения и тестирования. Набор обучающих данных используется для обучения вашей модели на ряде различных моделей, которые подходят для вашего набора данных. Наш набор данных разделен таким образом, что 1/3 нашего набора данных считается тестовым набором данных, а 2/3 часть нашего набора данных преобразуется в обучающий набор данных. Набор обучающих данных будет загружен в линейную модель, цель линейной модели — найти гипотезу или, другими словами, веса уравнения, чтобы мы могли предсказать наши значения Y.

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

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

  1. Матричное представление: в линейной регрессии входные признаки (X) и целевая переменная (y) могут быть представлены в виде матриц. X обычно представляет собой матрицу, в которой каждая строка представляет отдельную выборку данных, а каждый столбец представляет конкретную функцию. Целевая переменная y является вектором-столбцом.
  2. Добавление члена пересечения: чтобы включить член пересечения в модель линейной регрессии, столбец единиц добавляется к матрице входных признаков X. Это делается путем создания новой матрицы X' с дополнительным столбцом единиц и ее объединения с оригинал Х.
  3. Вычисление коэффициентов. Коэффициенты (или веса) модели линейной регрессии можно рассчитать с помощью векторных вычислений. Решение в закрытой форме, известное как нормальное уравнение, может быть выражено следующим образом: коэффициенты = inv(X' * X) * X' * y Здесь inv() представляет обратную матрицу, * обозначает умножение матрицы, а X' является транспонированием X.
  4. Создание прогнозов: после определения коэффициентов прогнозы можно делать и с использованием векторных вычислений. Чтобы предсказать целевую переменную y_pred для нового набора входных признаков X_test, используется следующее уравнение: расчетные коэффициенты регрессии.

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

Для тех, кому нужна более простая реализация, все, что нужно, это всего 3 простые строки благодаря Scikit-Learn, так как они позаботятся об обработке всех этих вычислений. Ниже я прикрепил 3 строки кода, необходимые для выполнения всех действий, упомянутых выше.

Теперь давайте сравним, насколько хорошо использовать как пакет, так и написанный от руки код.

Один из самых простых способов сравнить вашу модель — найти функцию потерь, которую можно использовать в качестве эталона производительности вашего алгоритма. В этом случае я собираюсь использовать функцию потерь RMSE (среднеквадратичная ошибка), чтобы понять, насколько хороша моя модель, которую я написал с нуля, по сравнению с моделью, предоставленной пакетом scikit-learn.

  • Среднеквадратичная ошибка (Cal): 10,606545372346195
  • Среднеквадратичная ошибка: 10,606545372346199

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

Ниже я прикрепил представление наиболее подходящей линии из нашего класса LinearRegression Class и LinearRegression().

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

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

Спасибо.

Подписывайтесь на меня:

LinkedIn: https://www.linkedin.com/in/rohit-s-00523293/

Инстаграм: https://www.instagram.com/theaiplusblog

Гитхаб: https://www.github.com/rohitsanjay00