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

.. only:: html

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

        Click :ref:`here <sphx_glr_download_auto_examples_linear_model_plot_lasso_dense_vs_sparse_data.py>`
        to download the full example code

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_linear_model_plot_lasso_dense_vs_sparse_data.py:


==============================
Lasso on dense and sparse data
==============================

We show that linear_model.Lasso provides the same results for dense and sparse
data and that in the case of sparse data the speed is improved.

.. GENERATED FROM PYTHON SOURCE LINES 10-67




.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none


    --- Dense matrices
    Sparse Lasso done in 0.079191s
    Dense Lasso done in 0.024307s
    Distance between coefficients : 8.760159180054893e-14
    --- Sparse matrices
    Matrix density : 0.6263000000000001 %
    Sparse Lasso done in 0.071117s
    Dense Lasso done in 0.528516s
    Distance between coefficients : 8.21096752878178e-12






|

.. code-block:: default

    print(__doc__)

    from time import time
    from scipy import sparse
    from scipy import linalg

    from sklearn.datasets import make_regression
    from sklearn.linear_model import Lasso


    # #############################################################################
    # The two Lasso implementations on Dense data
    print("--- Dense matrices")

    X, y = make_regression(n_samples=200, n_features=5000, random_state=0)
    X_sp = sparse.coo_matrix(X)

    alpha = 1
    sparse_lasso = Lasso(alpha=alpha, fit_intercept=False, max_iter=1000)
    dense_lasso = Lasso(alpha=alpha, fit_intercept=False, max_iter=1000)

    t0 = time()
    sparse_lasso.fit(X_sp, y)
    print("Sparse Lasso done in %fs" % (time() - t0))

    t0 = time()
    dense_lasso.fit(X, y)
    print("Dense Lasso done in %fs" % (time() - t0))

    print("Distance between coefficients : %s"
          % linalg.norm(sparse_lasso.coef_ - dense_lasso.coef_))

    # #############################################################################
    # The two Lasso implementations on Sparse data
    print("--- Sparse matrices")

    Xs = X.copy()
    Xs[Xs < 2.5] = 0.0
    Xs = sparse.coo_matrix(Xs)
    Xs = Xs.tocsc()

    print("Matrix density : %s %%" % (Xs.nnz / float(X.size) * 100))

    alpha = 0.1
    sparse_lasso = Lasso(alpha=alpha, fit_intercept=False, max_iter=10000)
    dense_lasso = Lasso(alpha=alpha, fit_intercept=False, max_iter=10000)

    t0 = time()
    sparse_lasso.fit(Xs, y)
    print("Sparse Lasso done in %fs" % (time() - t0))

    t0 = time()
    dense_lasso.fit(Xs.toarray(), y)
    print("Dense Lasso done in %fs" % (time() - t0))

    print("Distance between coefficients : %s"
          % linalg.norm(sparse_lasso.coef_ - dense_lasso.coef_))


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

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


.. _sphx_glr_download_auto_examples_linear_model_plot_lasso_dense_vs_sparse_data.py:


.. only :: html

 .. container:: sphx-glr-footer
    :class: sphx-glr-footer-example



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

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



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

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


.. only:: html

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

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