Линейная регрессия — это первый шаг к изучению науки о данных. Поэтому, даже если вы новичок в этой области, вы должны понимать эти концепции, потому что эти алгоритмы в основном используются исследователями в области науки о данных. Эти алгоритмы также легко понять, чтобы начать путешествие по машинному обучению.
В этом руководстве мы увидим модель регрессии numpy (polyfit).
Функция numpy.polyfit () находит наиболее подходящую линию, минимизируя сумму квадратов ошибок. Этот метод принимает три параметра:
- x — входные данные
- y- выходные данные
- Значение степени полинома (целое число)
Итак, приступим к пошаговому процессу использования метода polyfit.
Шаг 1. Импортируйте всю необходимую библиотеку и пакеты для запуска этой программы.
Строка 91: мы импортируем библиотеки NumPy и matplotlib. Polyfit автоматически попадает под NumPy, поэтому нет необходимости импортировать. Matplotlib используется для построения данных, а matplotlib inline используется для рисования графика внутри самого ноутбука jupyter.
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Шаг 2: Теперь наш следующий шаг — создать набор данных (x и y).
Строка 83: мы произвольно генерируем данные x и y.
x= [28, 8, 11, 37, 15, 25, 51, 11, 32, 34, 43, 2, 40, 16, 40, 25, 40, 17, 21, 57]
y= [8, 8, 9, 72, 22, 51, 85, 4, 75, 48, 72, 1, 62, 37, 75, 42, 75, 47, 57, 95]
Шаг 3: Мы просто собираемся нанести объект (x) и цель (y) на график, как показано ниже:
plt.scatter(x,y)
Шаг 4: На этом шаге мы собираемся подогнать линию к данным x и y.
Этот шаг очень прост, потому что мы собираемся использовать концепцию метода полифита. Метод polyfit напрямую поставляется с Numpy, как показано выше. Этот метод принимает три параметра:
- x — входные данные
- y- выходные данные
- Значение степени полинома (целое число)
В этой программе мы используем значение степени полинома 1, что означает, что это многочлен первой степени. Но мы также можем использовать его для полиномов второй и третьей степени.
1 model = np.polyfit(x, y, 1)
Когда мы нажимаем Enter, полифит вычисляет модель линейной регрессии и сохраняет в правой части модель переменных.
Логика за подходящей линией
Итак, мы видим, что просто нажав клавишу ввода, мы получили модель линейной регрессии. Итак, теперь мы думаем о том, что на самом деле работает за этим методом и как они подходят к линии.
Метод, который работает позади метода полифита, называется обычным методом наименьших квадратов. Некоторые назвали это коротким названием OLS. Пользователи обычно используют его, чтобы подогнать под линию. Причина в том, что он очень прост в использовании, а также дает точность выше 90%.
Посмотрим, как работает OLS:
Во-первых, нам нужно знать об ошибке. Ошибка вычисляется через разницу между данными x и y.
Например, мы помещаем линию в регрессионную модель, которая выглядит следующим образом:
Синие точки — это точки данных, а красная линия, которую мы помещаем в точки данных, используя метод polyfit.
Предположим, что x = 24 и y = 58.
Когда мы подбираем линию, она вычисляет значение y = 44,3. Разница между фактическим и расчетным значением — это ошибка для конкретной точки данных.
Итак, метод наименьших квадратов (OLS) вычисляет аппроксимацию, используя следующие шаги:
- Вычисляет ошибку между подобранной моделью и точками данных.
- Затем мы возводим в квадрат каждую ошибку точек данных.
- Просуммируйте все ошибки квадратных точек данных.
- Наконец, определите линию, в которой сумма квадратов ошибок минимальна.
Итак, полифит использует вышеуказанные методы для подгонки линии.
Шаг 5: Модель
Мы закончили кодирование машинного обучения. Теперь мы можем проверить значения x и y, которые хранятся в переменных модели. Чтобы проверить значения x и y, мы должны распечатать модель, как показано ниже:
Наконец, мы получили контурное уравнение:
у = 1,75505212 * х — 1,27719099
Используя это линейное уравнение, мы можем получить значение y.
Вышеупомянутое линейное уравнение также можно решить с помощью метода ploy1d (), как показано ниже:
predict = np.poly1d(model)
x_value = 20
predict(x_value)
Получили результат 33.82385131766588.
Тот же результат мы получили и от ручного расчета:
у = 1,75505212 * 20 — 1,27719099
у = 33,82385131766588
Итак, оба приведенных выше результата показывают, что наша модель правильно подходит для этой линии.
Шаг 6: точность модели
Мы также можем проверить точность модели, дает ли она правильные результаты или нет. Точность модели можно рассчитать с помощью R-квадрата (R2). Значение R-квадрата (R2) находится между 0 и 1. Результат, близкий к 1, показывает, что точность модели высока. Итак, проверим точность приведенной выше модели. Мы импортируем другую библиотеку, sklearn, как показано ниже:
from sklearn.metrics import r2_score
r2_score(y, predict(x))
Результат показывает, что он близок к 1, поэтому его точность высока.
Шаг 7: Построение модели
Построение графика — это метод визуального просмотра линии, подобранной модели, на точках данных. Это дает четкое изображение модели.
x_axis = range(0, 60)
y_axis = predict(x_axis)
plt.scatter(x, y)
plt.plot(x_axis, y_axis, c = ‘g’)
Краткое объяснение вышеуказанного метода построения графиков приведено ниже:
1 строка : это диапазон, который мы хотим отобразить на графике. В нашем коде мы используем значение диапазона от 0 до 60.
2 строка: будут вычислены все значения диапазона от 0 до 60.
3 строка: мы передаем исходные наборы данных x и y в метод разброса.
4 строка: Мы, наконец, строим наш график, и зеленая линия является подходящей линией, как показано на приведенном выше графике.
Заключение
В этой статье мы узнали о модели линейной регрессии, которая является началом пути машинного обучения. Существует ряд регрессионных моделей, которые описаны в другой статье. Здесь у нас есть чистый набор данных, потому что он был фиктивным, но в реальных проектах вы можете получить грязный набор данных, и вам нужно будет выполнить проектирование функций для этого, чтобы очистить набор данных для использования в модели. Если вы не полностью понимаете этот учебник, даже он поможет вам легко изучить другую модель регрессии.
Модель линейной регрессии — наиболее распространенный алгоритм, используемый в науке о данных. У вас должно быть представление о регрессионной модели, если вы хотите сделать карьеру в этой области.