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

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

Регрессия

Итак, сначала поговорим о регрессии. В регрессии у нас есть несколько независимых переменных, т. е. они не коррелированы, и мы должны найти связь между ними, чтобы получить значение зависимой переменной y.
Стандартное уравнение регрессии:

Простая линейная регрессия

В линейной регрессии мы задали входной вектор X только с одним параметром с n элементами, а также выходной вектор y. Наша задача состоит в том, чтобы найти такое отношение, которое мы можем найти значение y ранее неизвестного x.

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

Статистическая точка зрения

Это уравнение линейной регрессии.

здесь
beta0 — это точка пересечения линии регрессии, и она постоянна.
beta1 — это матрица весов матрицы x.

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

Среднеквадратическая ошибка

Теперь вопрос: как считать ошибку? Мы вычисляем, суммируя квадрат разницы между y_hat и y и делим их на общее количество входов, это известно как среднеквадратическая ошибка (MSE), довольно интуитивное название,

Функция ошибки также известна как функция стоимости, которую мы увидим, когда узнаем о точке зрения машинного обучения.

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

Итак, окончательный прогноз

Подход к машинному обучению

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

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

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

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

Скорость обучения

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

Выпуклая и вогнутая кривая

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

Реализация Python

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

Линейная регрессия с нуля

Линейная регрессия с использованием Sklearn


>>> import numpy as np
>>> from sklearn.linear_model import LinearRegression
>>> X = np.array([[1, 1], 
                  [1, 2], 
                  [2, 2], 
                  [2, 3]])
>>> y = np.dot(X, np.array([1, 2])) + 3
>>> reg = LinearRegression().fit(X, y)
>>> reg.score(X, y)
1.0
>>> reg.coef_
array([1., 2.])
>>> reg.intercept_

Линия регрессии

Здесь вы можете видеть, что линия регрессии, построенная путем построения графика y_hat в зависимости от X_train, является линейной.

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

Спасибо :)