用python实现最小二乘法以y=ax+b为例
时间: 2024-10-23 09:17:16 浏览: 35
最小二乘法拟合平面
在Python中,可以使用numpy库来方便地实现最小二乘法解决线性回归问题,比如拟合一条直线y = ax + b。最小二乘法的基本思想是通过调整a和b的值,使得实际数据点到假设线y=ax+b的距离平方和达到最小。
下面是一个简单的例子:
```python
import numpy as np
# 假设我们有一些观测数据(x_data, y_data)
x_data = np.array([1, 2, 3, 4, 5]) # 输入特征
y_data = np.array([2, 3, 4, 5, 6]) # 目标变量
# 初始化系数a和b为0,这将是我们的优化目标
a = b = 0
# 使用numpy的linalg子模块的lstsq函数进行最小二乘法求解
params, residuals, rank, singular_values = np.linalg.lstsq(x_data.reshape(-1, 1), y_data, rcond=None)
# 最终结果包含最优解a和b
a, b = params
print(f"最佳拟合直线方程为: y = {a:.2f}x + {b:.2f}")
# 可视化拟合结果
import matplotlib.pyplot as plt
plt.scatter(x_data, y_data)
plt.plot(x_data, a*x_data + b, color='r')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
阅读全文