Линейная регрессия — это статистический метод, используемый для анализа связи между двумя непрерывными переменными. Он обычно используется в науке о данных и машинном обучении для моделирования связи между зависимой переменной (Y) и одной или несколькими независимыми переменными (X).
Чтобы построить простую модель линейной регрессии, нам нужно выполнить следующие шаги:
- Соберите данные: нам нужно собрать данные для зависимой переменной (Y) и независимой переменной (X).
- Визуализируйте данные: нам нужно нанести данные на график, чтобы увидеть, существует ли линейная связь между переменными. Это можно сделать с помощью точечной диаграммы.
- Разделите данные: нам нужно разделить данные на две части: набор для обучения и набор для тестирования. Обучающий набор используется для обучения модели, а тестовый набор используется для оценки производительности модели.
- Постройте модель: мы можем использовать библиотеку машинного обучения, например scikit-learn, для построения модели линейной регрессии. Мы можем создать экземпляр класса линейной регрессии, подогнать модель к обучающему набору и сделать прогнозы для тестового набора.
- Оцените модель: мы можем оценить производительность модели, используя различные показатели, такие как среднеквадратическая ошибка (MSE) и коэффициент детерминации (R-квадрат).
Вот пример кода, как построить простую модель линейной регрессии в Python с помощью scikit-learn:
# Import libraries import numpy as np from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score from sklearn.model_selection import train_test_split # Generate random data X = np.array([[1], [2], [3], [4], [5]]) y = np.array([2, 4, 5, 4, 6]) # Split the data into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # Create an instance of the linear regression model regressor = LinearRegression() # Fit the model on the training data regressor.fit(X_train, y_train) # Make predictions on the testing data y_pred = regressor.predict(X_test) # Evaluate the performance of the model mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print('Mean squared error: ', mse) print('Coefficient of determination: ', r2)
В этом примере мы сначала сгенерировали некоторые случайные данные для X и y. Затем мы разделяем данные на наборы для обучения и тестирования с помощью функции train_test_split
. Мы создали экземпляр модели линейной регрессии, используя LinearRegression()
, подогнали модель к обучающим данным, используя fit()
, и сделали прогнозы по данным тестирования, используя predict()
. Наконец, мы оценили производительность модели, используя mean_squared_error()
и r2_score()
.