.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/linear_model/plot_ols_ridge_variance.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_linear_model_plot_ols_ridge_variance.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_linear_model_plot_ols_ridge_variance.py:


=========================================================
Ordinary Least Squares and Ridge Regression Variance
=========================================================
Due to the few points in each dimension and the straight
line that linear regression uses to follow these points
as well as it can, noise on the observations will cause
great variance as shown in the first plot. Every line's slope
can vary quite a bit for each prediction due to the noise
induced in the observations.

Ridge regression is basically minimizing a penalised version
of the least-squared function. The penalising `shrinks` the
value of the regression coefficients.
Despite the few data points in each dimension, the slope
of the prediction is much more stable and the variance
in the line itself is greatly reduced, in comparison to that
of the standard linear regression

.. GENERATED FROM PYTHON SOURCE LINES 21-65



.. rst-class:: sphx-glr-horizontal


    *

      .. image-sg:: /auto_examples/linear_model/images/sphx_glr_plot_ols_ridge_variance_001.png
         :alt: ols
         :srcset: /auto_examples/linear_model/images/sphx_glr_plot_ols_ridge_variance_001.png
         :class: sphx-glr-multi-img

    *

      .. image-sg:: /auto_examples/linear_model/images/sphx_glr_plot_ols_ridge_variance_002.png
         :alt: ridge
         :srcset: /auto_examples/linear_model/images/sphx_glr_plot_ols_ridge_variance_002.png
         :class: sphx-glr-multi-img





.. code-block:: default


    # Code source: Gaƫl Varoquaux
    # Modified for documentation by Jaques Grobler
    # License: BSD 3 clause


    import matplotlib.pyplot as plt
    import numpy as np

    from sklearn import linear_model

    X_train = np.c_[0.5, 1].T
    y_train = [0.5, 1]
    X_test = np.c_[0, 2].T

    np.random.seed(0)

    classifiers = dict(
        ols=linear_model.LinearRegression(), ridge=linear_model.Ridge(alpha=0.1)
    )

    for name, clf in classifiers.items():
        fig, ax = plt.subplots(figsize=(4, 3))

        for _ in range(6):
            this_X = 0.1 * np.random.normal(size=(2, 1)) + X_train
            clf.fit(this_X, y_train)

            ax.plot(X_test, clf.predict(X_test), color="gray")
            ax.scatter(this_X, y_train, s=3, c="gray", marker="o", zorder=10)

        clf.fit(X_train, y_train)
        ax.plot(X_test, clf.predict(X_test), linewidth=2, color="blue")
        ax.scatter(X_train, y_train, s=30, c="red", marker="+", zorder=10)

        ax.set_title(name)
        ax.set_xlim(0, 2)
        ax.set_ylim((0, 1.6))
        ax.set_xlabel("X")
        ax.set_ylabel("y")

        fig.tight_layout()

    plt.show()


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

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


.. _sphx_glr_download_auto_examples_linear_model_plot_ols_ridge_variance.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.3.X?urlpath=lab/tree/notebooks/auto_examples/linear_model/plot_ols_ridge_variance.ipynb
        :alt: Launch binder
        :width: 150 px



    .. container:: lite-badge

      .. image:: images/jupyterlite_badge_logo.svg
        :target: ../../lite/lab/?path=auto_examples/linear_model/plot_ols_ridge_variance.ipynb
        :alt: Launch JupyterLite
        :width: 150 px

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

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

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

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


.. only:: html

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

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