最小二乘法求参数怎么用Python代码实现?
时间: 2023-08-16 20:27:10 浏览: 88
Python中实现最小二乘法思路及实现代码
使用Python实现最小二乘法求解线性回归模型的系数比较简单,可以使用NumPy库中的线性代数函数来实现。具体步骤如下:
1. 导入NumPy库:使用以下代码导入NumPy库。
```
import numpy as np
```
2. 准备数据:假设有n个数据点,分别为x1, x2, ..., xn和y1, y2, ..., yn。可以将这些数据点存储在NumPy数组中,例如:
```
x = np.array([x1, x2, ..., xn])
y = np.array([y1, y2, ..., yn])
```
3. 求解系数:使用最小二乘法来求解线性回归模型的系数。可以使用NumPy库中的线性代数函数来实现,例如:
```
A = np.vstack([x, np.ones(len(x))]).T
b = y
coeffs = np.linalg.lstsq(A, b, rcond=None)[0]
```
其中,A是由自变量x和常数项1组成的矩阵,b是因变量y的向量,coeffs是求解得到的线性回归模型的系数,coeffs[0]表示斜率,coeffs[1]表示截距。
完整代码如下:
```
import numpy as np
# 准备数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])
# 求解系数
A = np.vstack([x, np.ones(len(x))]).T
b = y
coeffs = np.linalg.lstsq(A, b, rcond=None)[0]
# 输出结果
print(f"Slope: {coeffs[0]}, Intercept: {coeffs[1]}")
```
这段代码将输出求解得到的斜率和截距。
阅读全文