繪製個別和投票回歸預測#

投票回歸器是一個集成元估計器,它將幾個基礎回歸器擬合到整個資料集。然後它平均個別預測以形成最終預測。我們將使用三個不同的回歸器來預測資料:GradientBoostingRegressorRandomForestRegressorLinearRegression)。然後,上述 3 個回歸器將用於 VotingRegressor

最後,我們將繪製所有模型進行的預測以進行比較。

我們將使用糖尿病資料集,其中包含從一群糖尿病患者收集的 10 個特徵。目標是基線一年後疾病進展的量化衡量標準。

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

import matplotlib.pyplot as plt

from sklearn.datasets import load_diabetes
from sklearn.ensemble import (
    GradientBoostingRegressor,
    RandomForestRegressor,
    VotingRegressor,
)
from sklearn.linear_model import LinearRegression

訓練分類器#

首先,我們將載入糖尿病資料集並啟動梯度提升回歸器、隨機森林回歸器和線性回歸。接下來,我們將使用 3 個回歸器來建立投票回歸器

X, y = load_diabetes(return_X_y=True)

# Train classifiers
reg1 = GradientBoostingRegressor(random_state=1)
reg2 = RandomForestRegressor(random_state=1)
reg3 = LinearRegression()

reg1.fit(X, y)
reg2.fit(X, y)
reg3.fit(X, y)

ereg = VotingRegressor([("gb", reg1), ("rf", reg2), ("lr", reg3)])
ereg.fit(X, y)
VotingRegressor(estimators=[('gb', GradientBoostingRegressor(random_state=1)),
                            ('rf', RandomForestRegressor(random_state=1)),
                            ('lr', LinearRegression())])
在 Jupyter 環境中,請重新執行此儲存格以顯示 HTML 表示形式或信任筆記本。
在 GitHub 上,HTML 表示形式無法呈現,請嘗試使用 nbviewer.org 載入此頁面。


進行預測#

現在我們將使用每個回歸器來進行前 20 個預測。

xt = X[:20]

pred1 = reg1.predict(xt)
pred2 = reg2.predict(xt)
pred3 = reg3.predict(xt)
pred4 = ereg.predict(xt)

繪製結果#

最後,我們將視覺化 20 個預測。紅色星星顯示 VotingRegressor 進行的平均預測。

plt.figure()
plt.plot(pred1, "gd", label="GradientBoostingRegressor")
plt.plot(pred2, "b^", label="RandomForestRegressor")
plt.plot(pred3, "ys", label="LinearRegression")
plt.plot(pred4, "r*", ms=10, label="VotingRegressor")

plt.tick_params(axis="x", which="both", bottom=False, top=False, labelbottom=False)
plt.ylabel("predicted")
plt.xlabel("training samples")
plt.legend(loc="best")
plt.title("Regressor predictions and their average")

plt.show()
Regressor predictions and their average

腳本的總執行時間: (0 分鐘 1.164 秒)

相關範例

普通最小平方範例

普通最小平方範例

使用堆疊組合預測器

使用堆疊組合預測器

具有 AdaBoost 的決策樹回歸

具有 AdaBoost 的決策樹回歸

梯度提升回歸

梯度提升回歸

由 Sphinx-Gallery 產生的圖庫