.. 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_3d.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_3d.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_3d.py:


=========================================================
Sparsity Example: Fitting only features 1  and 2
=========================================================

Features 1 and 2 of the diabetes-dataset are fitted and
plotted below. It illustrates that although feature 2
has a strong coefficient on the full model, it does not
give us much regarding `y` when compared to just feature 1.

.. GENERATED FROM PYTHON SOURCE LINES 11-16

.. code-block:: default


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








.. GENERATED FROM PYTHON SOURCE LINES 17-18

First we load the diabetes dataset.

.. GENERATED FROM PYTHON SOURCE LINES 18-31

.. code-block:: default


    import numpy as np

    from sklearn import datasets

    X, y = datasets.load_diabetes(return_X_y=True)
    indices = (0, 1)

    X_train = X[:-20, indices]
    X_test = X[-20:, indices]
    y_train = y[:-20]
    y_test = y[-20:]








.. GENERATED FROM PYTHON SOURCE LINES 32-33

Next we fit a linear regression model.

.. GENERATED FROM PYTHON SOURCE LINES 33-40

.. code-block:: default


    from sklearn import linear_model

    ols = linear_model.LinearRegression()
    _ = ols.fit(X_train, y_train)









.. GENERATED FROM PYTHON SOURCE LINES 41-42

Finally we plot the figure from three different views.

.. GENERATED FROM PYTHON SOURCE LINES 42-85

.. code-block:: default


    import matplotlib.pyplot as plt

    # unused but required import for doing 3d projections with matplotlib < 3.2
    import mpl_toolkits.mplot3d  # noqa: F401


    def plot_figs(fig_num, elev, azim, X_train, clf):
        fig = plt.figure(fig_num, figsize=(4, 3))
        plt.clf()
        ax = fig.add_subplot(111, projection="3d", elev=elev, azim=azim)

        ax.scatter(X_train[:, 0], X_train[:, 1], y_train, c="k", marker="+")
        ax.plot_surface(
            np.array([[-0.1, -0.1], [0.15, 0.15]]),
            np.array([[-0.1, 0.15], [-0.1, 0.15]]),
            clf.predict(
                np.array([[-0.1, -0.1, 0.15, 0.15], [-0.1, 0.15, -0.1, 0.15]]).T
            ).reshape((2, 2)),
            alpha=0.5,
        )
        ax.set_xlabel("X_1")
        ax.set_ylabel("X_2")
        ax.set_zlabel("Y")
        ax.xaxis.set_ticklabels([])
        ax.yaxis.set_ticklabels([])
        ax.zaxis.set_ticklabels([])


    # Generate the three different figures from different views
    elev = 43.5
    azim = -110
    plot_figs(1, elev, azim, X_train, ols)

    elev = -0.5
    azim = 0
    plot_figs(2, elev, azim, X_train, ols)

    elev = -0.5
    azim = 90
    plot_figs(3, elev, azim, X_train, ols)

    plt.show()



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


    *

      .. image-sg:: /auto_examples/linear_model/images/sphx_glr_plot_ols_3d_001.png
         :alt: plot ols 3d
         :srcset: /auto_examples/linear_model/images/sphx_glr_plot_ols_3d_001.png
         :class: sphx-glr-multi-img

    *

      .. image-sg:: /auto_examples/linear_model/images/sphx_glr_plot_ols_3d_002.png
         :alt: plot ols 3d
         :srcset: /auto_examples/linear_model/images/sphx_glr_plot_ols_3d_002.png
         :class: sphx-glr-multi-img

    *

      .. image-sg:: /auto_examples/linear_model/images/sphx_glr_plot_ols_3d_003.png
         :alt: plot ols 3d
         :srcset: /auto_examples/linear_model/images/sphx_glr_plot_ols_3d_003.png
         :class: sphx-glr-multi-img






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

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


.. _sphx_glr_download_auto_examples_linear_model_plot_ols_3d.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_3d.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_3d.ipynb
        :alt: Launch JupyterLite
        :width: 150 px

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

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

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

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


.. only:: html

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

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