一元线性回归算法python
时间: 2024-09-12 16:01:13 浏览: 59
一元线性回归是最简单的线性回归形式,它试图找到一个关系模型,该模型可以表示为一个自变量(解释变量)和一个因变量(响应变量)之间的线性关系。这个模型的数学表达式通常是 y = ax + b,其中 y 是因变量,x 是自变量,a 是斜率(权重),b 是截距。
在Python中,我们可以使用`numpy`库来计算一元线性回归的参数,或者使用`scikit-learn`库来实现。以下是使用`numpy`进行一元线性回归的一个简单例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 假设有一组数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 7, 11])
# 计算x和y的均值
x_mean = np.mean(x)
y_mean = np.mean(y)
# 计算斜率(权重)a和截距b
numerator = sum((x - x_mean) * (y - y_mean))
denominator = sum((x - x_mean)**2)
a = numerator / denominator
b = y_mean - a * x_mean
# 打印回归模型的参数
print(f"模型为: y = {a}x + {b}")
# 绘制数据点和回归线
plt.scatter(x, y, color='blue')
plt.plot(x, a*x + b, color='red')
plt.show()
```
当然,使用`scikit-learn`库可以更加简便地进行一元线性回归:
```python
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
# 假设有一组数据点
x = [[1], [2], [3], [4], [5]]
y = [2, 3, 5, 7, 11]
# 创建模型实例
model = LinearRegression()
# 训练模型
model.fit(x, y)
# 打印回归模型的参数
print(f"权重(斜率): {model.coef_}")
print(f"截距: {model.intercept_}")
# 使用模型进行预测
x_new = np.array([[6], [7]])
y_new = model.predict(x_new)
# 绘制数据点和回归线
plt.scatter(x, y, color='blue')
plt.plot(x_new, y_new, color='red')
plt.show()
```
阅读全文