使用最小二乘法用python写线性回归模型程序,使用训练集训练后用测试集测试、,并画出图形
时间: 2024-03-13 12:44:19 浏览: 54
好的,以下是使用最小二乘法实现线性回归模型的Python程序:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义最小二乘法函数
def least_squares(x, y):
n = len(x)
x_mean = np.mean(x)
y_mean = np.mean(y)
xy_mean = np.mean(x * y)
x_square_mean = np.mean(x ** 2)
w = (xy_mean - x_mean * y_mean) / (x_square_mean - x_mean ** 2)
b = y_mean - w * x_mean
return w, b
# 生成训练集数据
train_x = np.array([1, 2, 3, 4, 5])
train_y = np.array([2, 4, 5, 4, 5])
# 计算最小二乘法模型参数
w, b = least_squares(train_x, train_y)
# 输出模型参数
print("w = %f, b = %f" % (w, b))
# 生成测试集数据
test_x = np.array([6, 7, 8, 9, 10])
test_y = np.array([6, 7, 8, 9, 10])
# 计算测试集预测值
predict_y = w * test_x + b
# 绘制训练集和测试集数据点以及预测直线
plt.scatter(train_x, train_y, c='b', label='Training data')
plt.scatter(test_x, test_y, c='g', label='Testing data')
plt.plot(test_x, predict_y, c='r', label='Predict line')
plt.legend(loc='upper left')
plt.show()
```
程序中,我们先定义了一个 `least_squares` 函数来计算最小二乘法模型参数。然后我们生成了训练集和测试集数据。接着,使用训练集数据计算出模型参数,并输出模型参数。然后使用测试集数据计算出预测值,并绘制出训练集和测试集数据点以及预测直线的图形。
如果你需要使用自己的数据进行测试,只需要将训练集数据和测试集数据替换即可。
阅读全文