
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/neighbors/plot_regression.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_auto_examples_neighbors_plot_regression.py>`
        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_neighbors_plot_regression.py:


============================
Nearest Neighbors regression
============================

Demonstrate the resolution of a regression problem
using a k-Nearest Neighbor and the interpolation of the
target using both barycenter and constant weights.

.. GENERATED FROM PYTHON SOURCE LINES 10-14

.. code-block:: Python


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








.. GENERATED FROM PYTHON SOURCE LINES 15-20

Generate sample data
--------------------
Here we generate a few data points to use to train the model. We also generate
data in the whole range of the training data to visualize how the model would
react in that whole region.

.. GENERATED FROM PYTHON SOURCE LINES 20-33

.. code-block:: Python

    import matplotlib.pyplot as plt
    import numpy as np

    from sklearn import neighbors

    rng = np.random.RandomState(0)
    X_train = np.sort(5 * rng.rand(40, 1), axis=0)
    X_test = np.linspace(0, 5, 500)[:, np.newaxis]
    y = np.sin(X_train).ravel()

    # Add noise to targets
    y[::5] += 1 * (0.5 - np.random.rand(8))








.. GENERATED FROM PYTHON SOURCE LINES 34-38

Fit regression model
--------------------
Here we train a model and visualize how `uniform` and `distance`
weights in prediction effect predicted values.

.. GENERATED FROM PYTHON SOURCE LINES 38-53

.. code-block:: Python

    n_neighbors = 5

    for i, weights in enumerate(["uniform", "distance"]):
        knn = neighbors.KNeighborsRegressor(n_neighbors, weights=weights)
        y_ = knn.fit(X_train, y).predict(X_test)

        plt.subplot(2, 1, i + 1)
        plt.scatter(X_train, y, color="darkorange", label="data")
        plt.plot(X_test, y_, color="navy", label="prediction")
        plt.axis("tight")
        plt.legend()
        plt.title("KNeighborsRegressor (k = %i, weights = '%s')" % (n_neighbors, weights))

    plt.tight_layout()
    plt.show()



.. image-sg:: /auto_examples/neighbors/images/sphx_glr_plot_regression_001.png
   :alt: KNeighborsRegressor (k = 5, weights = 'uniform'), KNeighborsRegressor (k = 5, weights = 'distance')
   :srcset: /auto_examples/neighbors/images/sphx_glr_plot_regression_001.png
   :class: sphx-glr-single-img






.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 0.180 seconds)


.. _sphx_glr_download_auto_examples_neighbors_plot_regression.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/1.8.X?urlpath=lab/tree/notebooks/auto_examples/neighbors/plot_regression.ipynb
        :alt: Launch binder
        :width: 150 px

    .. container:: lite-badge

      .. image:: images/jupyterlite_badge_logo.svg
        :target: ../../lite/lab/index.html?path=auto_examples/neighbors/plot_regression.ipynb
        :alt: Launch JupyterLite
        :width: 150 px

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: plot_regression.ipynb <plot_regression.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: plot_regression.py <plot_regression.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: plot_regression.zip <plot_regression.zip>`


.. include:: plot_regression.recommendations


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
