Регрессионный анализ — это мощный инструмент в статистике и машинном обучении, который позволяет нам исследовать взаимосвязь между переменными и делать прогнозы относительно будущих результатов. В этой статье мы рассмотрим, как выполнять регрессионный анализ в Python с помощью популярной библиотеки scikit-learn.
Что такое регрессия?
Регрессия — это статистический метод, который позволяет моделировать взаимосвязь между зависимой переменной (y) и одной или несколькими независимыми переменными (x). Цель регрессионного анализа состоит в том, чтобы найти наиболее подходящую линию, которую можно использовать для предсказания значения y на основе значений x.
Существует несколько типов регрессионного анализа, включая линейную регрессию, логистическую регрессию, полиномиальную регрессию и многие другие. В этой статье мы сосредоточимся на линейной регрессии, которая является самым простым и наиболее часто используемым типом регрессионного анализа.
Линейная регрессия в Python
Scikit-learn — это популярная библиотека Python для машинного обучения и анализа данных, которая предоставляет простой и эффективный способ выполнения линейного регрессионного анализа.
Для начала нам нужно установить scikit-learn. Мы можем сделать это с помощью pip, менеджера пакетов для Python:
pip install scikit-learn
После того, как мы установили scikit-learn, мы можем начать с импорта необходимых библиотек:
import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression
Нам также понадобятся некоторые данные для работы. В этом примере мы сгенерируем некоторые случайные данные с помощью NumPy:
# Generate some random data x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) y = np.array([2, 4, 5, 7, 8, 10, 11, 13, 14, 16])
Теперь, когда у нас есть данные, мы можем создать точечную диаграмму, чтобы визуализировать взаимосвязь между x и y:
# Create a scatter plot plt.scatter(x, y) plt.show()
Это должно создать точечную диаграмму с примерно линейной зависимостью между x и y.
Затем мы можем создать модель линейной регрессии и подогнать ее к нашим данным:
# Create a linear regression model model = LinearRegression() # Fit the model to the data model.fit(x.reshape(-1, 1), y.reshape(-1, 1))
Обратите внимание, что нам нужно преобразовать наши данные в двумерный массив, используя метод reshape, чтобы scikit-learn мог его использовать.
Теперь, когда мы подогнали нашу модель, мы можем делать прогнозы будущих результатов. Например, мы можем предсказать значение y для нового значения x:
# Create a scatter plot plt.scatter(x, y) # Plot the best-fit line plt.plot(x, model.predict(x.reshape(-1, 1)), color='red') plt.show()
Это должно создать график с наиболее подходящей линией, наложенной поверх графика рассеяния.
Заключение
В этой статье мы узнали, как выполнять линейный регрессионный анализ в Python с помощью scikit-learn. Мы начали с генерации некоторых случайных данных и создания диаграммы рассеяния, чтобы визуализировать взаимосвязь между x и y. Затем мы создали модель линейной регрессии и подогнали ее к нашим данным.