用一元非线性回归模型画折线图
时间: 2024-09-23 08:05:33 浏览: 67
一元非线性回归模型是用来描述一个因变量(通常是连续的)如何依赖于一个或多个自变量的预测模型,特别是当这种关系是非线性的时。在Python中,我们可以使用matplotlib库来创建这样的折线图。
以下是一个简单的例子,我们将使用numpy生成数据,然后使用sklearn库中的`LinearRegression`进行拟合,最后用matplotlib绘制回归线:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 假设我们有一些非线性数据
np.random.seed(0) # 设置随机种子为了复现结果
x = np.linspace(-10, 10, 100)
y = 2 * x**3 + 3 * x - 5 + np.random.randn(*x.shape)
# 创建并训练线性回归模型
model = LinearRegression()
model.fit(x[:, None], y)
# 预测值
y_pred = model.predict(x[:, None])
# 绘制原始数据点和拟合线
plt.scatter(x, y, color='black', label='Data')
plt.plot(x, y_pred, color='red', linewidth=2, label='Fit')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()
# 显示图形
plt.show()
```
在这个例子中,`LinearRegression`被用于近似数据的非线性趋势,尽管它是线性模型。实际情况下,你可以根据数据的特性和需求选择合适的非线性模型,比如多项式回归、指数回归、对数回归等。
阅读全文