0%

线性回归

线性回归是一种用于建模和预测连续型目标变量与一个或多个自变量之间关系的统计方法。以下是使用Python实现简单线性回归的示例代码,使用了numpyscikit-learn库:

首先,确保已安装 numpyscikit-learn 库,可以通过以下命令安装:

1
pip install numpy scikit-learn

接下来,使用下面的代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

# 生成示例数据
np.random.seed(0)
X = np.random.rand(100, 1) * 10
y = 2 * X + 3 + np.random.randn(100, 1) * 2 # 使用线性关系生成目标变量

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型
model = LinearRegression()

# 训练模型
model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = model.predict(X_test)

# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

# 绘制数据和拟合的直线
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.plot(X_test, y_pred, color='red', label='Predicted')
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression')
plt.legend()
plt.show()

# 打印模型参数(斜率和截距)
print("Slope (Coefficient):", model.coef_[0])
print("Intercept:", model.intercept_)

在上述代码中,我们首先生成了一个示例数据集,其中包含一个自变量(特征)和一个目标变量。然后,我们使用train_test_split函数将数据集划分为训练集和测试集。接着,创建了一个线性回归模型,并使用fit方法训练模型。在测试集上进行预测,并计算均方误差来衡量模型性能。

最后,我们绘制了测试集数据和模型预测的拟合直线,并打印了模型的斜率(系数)和截距。

请注意,这只是一个简单的线性回归示例。在实际应用中,您可能需要考虑特征选择、模型评估、多元线性回归等问题,以获得更好的预测结果。