编写一个Python程序,使用最小二乘法实现线性回归。程序将接受一系列数据点(xi, yi)作为输入,计算最佳拟合线的斜率和截距,并打印直线方程。你可以假设斜率总是定义良好的,即分母非零。
时间: 2024-09-30 20:03:11 浏览: 38
Python中实现最小二乘法思路及实现代码
当然可以。下面是一个简单的Python程序,使用numpy库来实现最小二乘法的线性回归:
```python
import numpy as np
def linear_regression(points):
# 数据点列表应该包含(x, y)对,例如 [(x1, y1), (x2, y2), ...]
x = [p[0] for p in points]
y = [p[1] for p in points]
# 计算均值
mean_x = np.mean(x)
mean_y = np.mean(y)
# 计算斜率(b)和截距(a)
numerator = np.sum((x - mean_x) * (y - mean_y))
denominator = np.sum((x - mean_x)**2)
slope = numerator / denominator
intercept = mean_y - slope * mean_x
# 打印直线方程
print(f"直线方程为: y = {slope:.2f}x + {intercept:.2f}")
# 示例用法
points = [(1, 2), (2, 4), (3, 6), (4, 8)] # 输入四个数据点
linear_regression(points)
```
在这个程序中,我们首先从输入的数据点中提取出x和y的值,然后分别计算它们的平均值。接着计算斜率和截距,最后按照公式`y = mx + b`打印出直线方程。
阅读全文