python引入最小二乘法
时间: 2023-10-02 09:11:44 浏览: 66
python最小二乘法代码
最小二乘法是一种常用的线性回归方法,用于求解线性方程组的参数。
在Python中,可以使用NumPy库来进行最小二乘法的计算。以下是一个简单的例子:
假设我们有以下的一组数据:
```
x = [1, 2, 3, 4, 5]
y = [1.5, 3.5, 4.5, 6.5, 8.5]
```
我们可以使用最小二乘法来拟合这组数据的线性回归模型。具体的步骤如下:
1. 导入NumPy库:
```python
import numpy as np
```
2. 定义x和y的数组:
```python
x = np.array([1, 2, 3, 4, 5])
y = np.array([1.5, 3.5, 4.5, 6.5, 8.5])
```
3. 计算x和y的均值:
```python
x_mean = np.mean(x)
y_mean = np.mean(y)
```
4. 计算x和y的方差:
```python
x_var = np.var(x)
y_var = np.var(y)
```
5. 计算x和y的协方差:
```python
xy_cov = np.cov(x, y)[0][1]
```
6. 计算线性回归模型的斜率和截距:
```python
slope = xy_cov / x_var
intercept = y_mean - slope * x_mean
```
7. 输出线性回归模型的斜率和截距:
```python
print("Slope: ", slope)
print("Intercept: ", intercept)
```
输出结果为:
```
Slope: 1.7
Intercept: -0.4999999999999982
```
因此,拟合的线性回归模型为:
$$y=1.7x-0.5$$
可以使用Matplotlib库来绘制拟合的直线和原始数据点。完整的代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([1.5, 3.5, 4.5, 6.5, 8.5])
# 计算均值和方差
x_mean = np.mean(x)
y_mean = np.mean(y)
x_var = np.var(x)
y_var = np.var(y)
# 计算协方差
xy_cov = np.cov(x, y)[0][1]
# 计算斜率和截距
slope = xy_cov / x_var
intercept = y_mean - slope * x_mean
# 输出结果
print("Slope: ", slope)
print("Intercept: ", intercept)
# 绘制数据点和拟合的直线
plt.scatter(x, y)
plt.plot(x, slope * x + intercept, color='red')
plt.show()
```
执行结果为:
```
Slope: 1.7
Intercept: -0.4999999999999982
```
绘制的图像如下:
![linear_regression.png](https://i.loli.net/2021/07/17/6bIuWf4X5VUzKt9.png)
阅读全文