🔍 Как сделать линейную регрессию в Питоне? Подробное руководство с примерами
Линейная регрессия в Python может быть легко реализована с использованием библиотеки scikit-learn. Вот пример простого кода:
# Импорт библиотеки
from sklearn.linear_model import LinearRegression
# Создание модели линейной регрессии
model = LinearRegression()
# Обучение модели на тренировочных данных
model.fit(X_train, y_train)
# Предсказание значений на тестовых данных
y_pred = model.predict(X_test)
В приведенном коде сначала импортируется класс LinearRegression
из библиотеки scikit-learn. Затем создается объект модели линейной регрессии с помощью вызова конструктора класса LinearRegression()
.
Далее модель обучается на тренировочных данных с использованием метода fit(X_train, y_train)
, где X_train
- это матрица признаков тренировочных данных, а y_train
- это вектор целевой переменной для тренировки.
После обучения модели, можно использовать метод predict(X_test)
, чтобы получить предсказанные значения для тестовых данных. Предсказания сохраняются в переменную y_pred
.
Вот и все! Вы только что реализовали простую линейную регрессию в Python с помощью библиотеки scikit-learn. Теперь вы можете использовать полученные предсказания для анализа данных.
Детальный ответ
Как сделать линейную регрессию в Питоне
Линейная регрессия - это один из самых простых и широко используемых методов машинного обучения. Он позволяет предсказывать зависимую переменную на основе одной или нескольких независимых переменных. В этой статье мы рассмотрим, как реализовать линейную регрессию в Питоне с использованием библиотеки scikit-learn.
Шаг 1: Установка библиотеки scikit-learn
Перед тем, как начать, убедитесь, что вы установили библиотеку scikit-learn. Вы можете установить её с помощью следующей команды:
pip install scikit-learn
После установки библиотеки мы готовы перейти к следующему шагу.
Шаг 2: Импорт необходимых модулей
Для начала, импортируем необходимые для линейной регрессии модули:
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
Шаг 3: Получение данных
Для примера линейной регрессии нам понадобятся некоторые данные. В этой статье мы будем использовать набор данных о стоимости жилья в зависимости от его параметров.
import pandas as pd
# Загрузка данных
data = pd.read_csv('housing.csv')
# Разделение данных на зависимые и независимые переменные
X = data[['количество_комнат']]
y = data['стоимость_жилья']
В данном примере мы использовали библиотеку Pandas для загрузки данных из файла 'housing.csv'. Затем мы разделили данные на независимую переменную X (количество комнат) и зависимую переменную y (стоимость жилья).
Шаг 4: Разделение данных на обучающую и тестовую выборки
Для оценки производительности модели необходимо разделить данные на обучающую и тестовую выборки. Мы будем использовать функцию train_test_split из модуля sklearn.model_selection:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
В данном примере мы разделили данные на обучающую выборку (80%) и тестовую выборку (20%). Параметр random_state устанавливает начальное значение для генератора случайных чисел, чтобы гарантировать воспроизводимость результатов.
Шаг 5: Создание модели линейной регрессии
Теперь мы готовы создать модель линейной регрессии. Для этого мы используем класс LinearRegression из модуля sklearn.linear_model:
model = LinearRegression()
Модель создана и готова к обучению.
Шаг 6: Обучение модели
Обучение модели происходит с помощью метода fit(). Мы передаем обучающие данные (X_train, y_train) и модель самостоятельно подстраивает веса, чтобы минимизировать среднеквадратичную ошибку:
model.fit(X_train, y_train)
Шаг 7: Предсказание
Теперь, когда модель обучена, мы можем использовать её для предсказания зависимой переменной. Для этого используем метод predict() и передаем тестовые данные (X_test):
y_pred = model.predict(X_test)
Мы получили предсказанные значения в переменной y_pred.
Шаг 8: Оценка модели
Наконец, мы можем оценить производительность модели с помощью различных метрик. Например, можно рассчитать среднеквадратичную ошибку (Mean Squared Error) или коэффициент детерминации (R-squared):
from sklearn.metrics import mean_squared_error, r2_score
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
Среднеквадратичная ошибка (MSE) показывает, насколько сильно модель ошибается в среднем. Коэффициент детерминации (R-squared) отражает долю дисперсии зависимой переменной, которая объясняется моделью.
Шаг 9: Визуализация результатов
Наконец, мы можем визуализировать результаты модели. Для этого можно использовать библиотеку Matplotlib:
import matplotlib.pyplot as plt
plt.scatter(X_test, y_test, color='gray')
plt.plot(X_test, y_pred, color='red', linewidth=2)
plt.xlabel('Количество комнат')
plt.ylabel('Стоимость жилья')
plt.show()
Мы построили диаграмму рассеяния, где точки представляют тестовые данные, а красная линия - предсказанные значения модели. Это позволяет наглядно оценить качество предсказаний.
Вывод
В этой статье мы рассмотрели, как реализовать линейную регрессию в Питоне с помощью библиотеки scikit-learn. Мы рассмотрели все основные шаги, начиная с установки библиотеки, импорта необходимых модулей, получения и разделения данных, создания и обучения модели, до оценки производительности и визуализации результатов.
Линейная регрессия - это мощный инструмент, который может быть использован для прогнозирования зависимых переменных на основе независимых переменных. Основываясь на наших данных, модель может представлять ценности и помогать в понимании связи между переменными.
Будем рады, если этот пример поможет вам в освоении линейной регрессии в Питоне!