最小二乘法实现线性回归
时间: 2024-03-19 15:37:13 浏览: 79
最小二乘法是一种常用的线性回归方法,用于拟合数据点到线性模型的误差最小化。下面是两种实现最小二乘法的方法:
1. 使用for循环实现最小二乘法的线性回归:
```python
import numpy as np
# 输入数据
X = np.array([1, 2, 3, 4, 5])
Y = np.array([2, 3, 4, 5, 6])
# 计算最小二乘法的系数
n = len(X)
sum_x = np.sum(X)
sum_y = np.sum(Y)
sum_xy = np.sum(X * Y)
sum_xx = np.sum(X * X)
a = (n * sum_xy - sum_x * sum_y) / (n * sum_xx - sum_x * sum_x)
b = (sum_y - a * sum_x) / n
# 输出结果
print("最小二乘法的系数 a:", a)
print("最小二乘法的截距 b:", b)
```
2. 使用向量化实现最小二乘法的线性回归:
```python
import numpy as np
# 输入数据
X = np.array([1, 2, 3, 4, 5])
Y = np.array([2, 3, 4, 5, 6])
# 构建矩阵
X_matrix = np.vstack([X, np.ones(len(X))]).T
# 使用最小二乘法求解
a, b = np.linalg.lstsq(X_matrix, Y, rcond=None)[0]
# 输出结果
print("最小二乘法的系数 a:", a)
print("最小二乘法的截距 b:", b)
```
阅读全文