sklearn机器学习:AdaBoost回归器

上篇博文讨论了AdaBoost分类器,接下来一起看一下AdaBoost回归器如何工作。

核心参数

在这里插入图片描述
在这里插入图片描述
至于弱分类器,还是使用决策树,用一个小例子一起来看AdaBoostRegressor的使用。

#AdaBoostRegressor
#导入所需的模块和包
import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import AdaBoostRegressor
#创造数据集
rng = np.random.RandomState(1)
X = np.linspace(0, 6, 100).reshape(-1,1)
#加正态分布噪音rng.normal(0, 0.1, X.shape[0])
y = np.sin(X).ravel() + np.sin(6 * X).ravel() + rng.normal(0, 0.1, X.shape[0])
#训练回归模型
regr_1 = DecisionTreeRegressor(max_depth=4)#决策树回归
regr_2 = AdaBoostRegressor(DecisionTreeRegressor(max_depth=4),
                            n_estimators=300, random_state=rng)#AdaBoost回归
regr_1.fit(X, y)
regr_2.fit(X, y)
#预测结果
y_1 = regr_1.predict(X)
y_2 = regr_2.predict(X)
#绘制可视化图形
plt.figure()
plt.scatter(X, y, c="k", label="training samples") #黑色:训练集
plt.plot(X, y_1, c="g", label="DTR", linewidth=2)  #绿色:决策树回归
plt.plot(X, y_2, c="r", label="ABR", linewidth=2)  #红色:AdaBoost回归
plt.xlabel("data")
plt.ylabel("target")
plt.title("Boosted Decision Tree Regression")
plt.legend()
plt.show()

在这里插入图片描述
可见,AdaBoost回归的预测效果非常好,明显优于决策树回归。

猜你喜欢

转载自blog.csdn.net/gracejpw/article/details/102632836
今日推荐