引言
在数据科学中,线性回归是一种基本的统计方法,用于估计两个变量之间的关系。当一个变量的数值变化能够预测另一个变量的变化时,线性回归可以用来构建模型。本文将通过Python来实现一个简单的线性回归模型,并且展示如何使用该模型进行预测。
准备工作
首先,我们需要安装必要的Python库。我们将使用numpy
来进行数学运算,matplotlib
来绘制图表,以及sklearn
中的LinearRegression
类来简化我们的建模过程。
pip install numpy matplotlib scikit-learn
数据集
为了演示,我们假设有一个简单的数据集,它表示了广告预算(X)与销售额(Y)之间的关系。我们将创建一些模拟数据来代表这个情况。
import numpy as np
import matplotlib.pyplot as plt
# 创建模拟数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
plt.scatter(X, y)
plt.xlabel("$x$", fontsize=18)
plt.ylabel("$y$", rotation=0, fontsize=18)
plt.title("Advertising Budget vs Sales")
plt.show()
模型训练
现在让我们使用Scikit-Learn提供的LinearRegression
类来训练模型。这个过程非常简单,只需要几行代码即可完成。
from sklearn.linear_model import LinearRegression
# 创建并训练线性回归模型
model = LinearRegression()
model.fit(X, y)
print(f"Intercept: {model.intercept_}")
print(f"Slope: {model.coef_}")
预测与评估
训练完成后,我们可以使用训练好的模型来对新的数据点进行预测,并检查模型的性能。
# 使用模型进行预测
X_new = np.array([[0], [2]])
y_predict = model.predict(X_new)
plt.plot(X_new, y_predict, "r-")
plt.scatter(X, y)
plt.xlabel("$x$", fontsize=18)
plt.ylabel("$y$", rotation=0, fontsize=18)
plt.title("Advertising Budget vs Sales with Prediction Line")
plt.show()
# 计算均方误差
from sklearn.metrics import mean_squared_error
y_pred = model.predict(X)
mse = mean_squared_error(y, y_pred)
print(f"Mean Squared Error: {mse:.2f}")
结论
在这篇博文中,我们展示了如何使用Python和Scikit-Learn库来创建一个简单的线性回归模型。我们从创建模拟数据开始,然后训练了一个线性回归模型,并最终用该模型进行了预测。此外,我们还计算了模型的均方误差来评估其性能。线性回归是许多机器学习任务的基础,理解它是进入更复杂算法的一个很好的起点。