Python使用xgb回归进行预测,并生成回归的拟合直线,与真实值进行对比
时间: 2024-05-10 17:16:41 浏览: 101
好的,下面是一个简单的使用xgboost进行回归预测的例子,以及生成拟合直线和真实值对比的方法:
```python
import numpy as np
import xgboost as xgb
import matplotlib.pyplot as plt
# 构造训练数据
X = np.linspace(0, 1, 100).reshape(-1, 1)
y = np.sin(X * 2 * np.pi) + np.random.normal(scale=0.1, size=(100, 1))
# 构造xgboost回归模型
reg = xgb.XGBRegressor(n_estimators=100, max_depth=3, learning_rate=0.1)
reg.fit(X, y)
# 生成拟合直线
y_pred = reg.predict(X)
# 绘制拟合直线和真实值对比图
plt.scatter(X, y, c='b', label='true values')
plt.plot(X, y_pred, c='r', label='predicted values')
plt.legend()
plt.show()
```
上述代码中,我们首先构造了一个简单的训练数据集,包含100个点,每个点的$x$坐标在$[0,1]$之间,对应的$y$值为$\sin(2\pi x)$加上一些服从正态分布的噪声。然后,我们使用xgboost库中的`XGBRegressor`类来构建一个回归模型,包含100棵决策树,最大深度为3,学习率为0.1。接着,我们使用训练好的模型对输入数据集$X$进行预测,生成拟合直线$y_{pred}$。最后,我们使用matplotlib库将真实值和拟合直线绘制在同一张图上,方便对比。
运行上述代码后,你应该能够看到一张图,其中蓝色的点表示真实值,红色的线表示拟合直线,两者相比较,可以看出模型的拟合效果不错。
阅读全文