.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/ensemble/plot_voting_regressor.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. or to run this example in your browser via JupyterLite or Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_ensemble_plot_voting_regressor.py: ================================================= Plot individual and voting regression predictions ================================================= .. currentmodule:: sklearn A voting regressor is an ensemble meta-estimator that fits several base regressors, each on the whole dataset. Then it averages the individual predictions to form a final prediction. We will use three different regressors to predict the data: :class:`~ensemble.GradientBoostingRegressor`, :class:`~ensemble.RandomForestRegressor`, and :class:`~linear_model.LinearRegression`). Then the above 3 regressors will be used for the :class:`~ensemble.VotingRegressor`. Finally, we will plot the predictions made by all models for comparison. We will work with the diabetes dataset which consists of 10 features collected from a cohort of diabetes patients. The target is a quantitative measure of disease progression one year after baseline. .. GENERATED FROM PYTHON SOURCE LINES 25-39 .. code-block:: Python # 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 .. GENERATED FROM PYTHON SOURCE LINES 40-46 Training classifiers -------------------------------- First, we will load the diabetes dataset and initiate a gradient boosting regressor, a random forest regressor and a linear regression. Next, we will use the 3 regressors to build the voting regressor: .. GENERATED FROM PYTHON SOURCE LINES 46-61 .. code-block:: Python 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) .. raw:: html
VotingRegressor(estimators=[('gb', GradientBoostingRegressor(random_state=1)),
                                ('rf', RandomForestRegressor(random_state=1)),
                                ('lr', LinearRegression())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.


.. GENERATED FROM PYTHON SOURCE LINES 62-66 Making predictions -------------------------------- Now we will use each of the regressors to make the 20 first predictions. .. GENERATED FROM PYTHON SOURCE LINES 66-74 .. code-block:: Python xt = X[:20] pred1 = reg1.predict(xt) pred2 = reg2.predict(xt) pred3 = reg3.predict(xt) pred4 = ereg.predict(xt) .. GENERATED FROM PYTHON SOURCE LINES 75-80 Plot the results -------------------------------- Finally, we will visualize the 20 predictions. The red stars show the average prediction made by :class:`~ensemble.VotingRegressor`. .. GENERATED FROM PYTHON SOURCE LINES 80-94 .. code-block:: Python 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() .. image-sg:: /auto_examples/ensemble/images/sphx_glr_plot_voting_regressor_001.png :alt: Regressor predictions and their average :srcset: /auto_examples/ensemble/images/sphx_glr_plot_voting_regressor_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.967 seconds) .. _sphx_glr_download_auto_examples_ensemble_plot_voting_regressor.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/scikit-learn/scikit-learn/main?urlpath=lab/tree/notebooks/auto_examples/ensemble/plot_voting_regressor.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/ensemble/plot_voting_regressor.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_voting_regressor.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_voting_regressor.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_voting_regressor.zip ` .. include:: plot_voting_regressor.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_