.. 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 :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_linear_model_plot_lasso_dense_vs_sparse_data.py: ============================== Lasso على البيانات الكثيفة والمتفرقة ============================== نبين أن linear_model.Lasso يوفر نفس النتائج للبيانات الكثيفة والمتفرقة وأن السرعة تتحسن في حالة البيانات المتفرقة. .. GENERATED FROM PYTHON SOURCE LINES 10-21 .. code-block:: Python # المؤلفون: مطوري scikit-learn # معرف الترخيص: BSD-3-Clause from time import time from scipy import linalg, sparse from sklearn.datasets import make_regression from sklearn.linear_model import Lasso .. GENERATED FROM PYTHON SOURCE LINES 22-32 مقارنة تنفيذي Lasso على البيانات الكثيفة ----------------------------------------------------- ننشئ مشكلة انحدار خطي مناسبة لـ Lasso، أي بمعنى، مع وجود ميزات أكثر من العينات. ثم نقوم بتخزين مصفوفة البيانات في كل من التنسيق الكثيف (العادي) والمتفرق، ونقوم بتدريب Lasso على كل منهما. نحسب وقت التشغيل لكل منهما ونتحقق من أنهما تعلما نفس النموذج عن طريق حساب المعيار الإقليدي لفرق المعاملات التي تعلموها. نظرًا لأن البيانات كثيفة، نتوقع وقت تشغيل أفضل مع تنسيق البيانات الكثيفة. .. GENERATED FROM PYTHON SOURCE LINES 32-54 .. code-block:: Python X, y = make_regression(n_samples=200, n_features=5000, random_state=0) # إنشاء نسخة من X بتنسيق متفرق 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(f"Sparse Lasso done in {(time() - t0):.3f}s") t0 = time() dense_lasso.fit(X, y) print(f"Dense Lasso done in {(time() - t0):.3f}s") # مقارنة معاملات الانحدار coeff_diff = linalg.norm(sparse_lasso.coef_ - dense_lasso.coef_) print(f"Distance between coefficients : {coeff_diff:.2e}") # .. rst-class:: sphx-glr-script-out .. code-block:: none Sparse Lasso done in 0.087s Dense Lasso done in 0.027s Distance between coefficients : 1.04e-13 .. GENERATED FROM PYTHON SOURCE LINES 55-61 مقارنة تنفيذي Lasso على البيانات المتفرقة ------------------------------------------------------ نجعل المشكلة السابقة متفرقة عن طريق استبدال جميع القيم الصغيرة بـ 0 ونقوم بنفس المقارنات كما هو موضح أعلاه. نظرًا لأن البيانات أصبحت متفرقة الآن، فإننا نتوقع أن يكون التنفيذ الذي يستخدم تنسيق البيانات المتفرقة أسرع. .. GENERATED FROM PYTHON SOURCE LINES 61-89 .. code-block:: Python # إنشاء نسخة من البيانات السابقة Xs = X.copy() # جعل Xs متفرقة عن طريق استبدال القيم الأقل من 2.5 بـ 0s Xs[Xs < 2.5] = 0.0 # إنشاء نسخة من Xs بتنسيق متفرق Xs_sp = sparse.coo_matrix(Xs) Xs_sp = Xs_sp.tocsc() # حساب نسبة المعاملات غير الصفرية في مصفوفة البيانات print(f"Matrix density : {(Xs_sp.nnz / float(X.size) * 100):.3f}%") 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_sp, y) print(f"Sparse Lasso done in {(time() - t0):.3f}s") t0 = time() dense_lasso.fit(Xs, y) print(f"Dense Lasso done in {(time() - t0):.3f}s") # مقارنة معاملات الانحدار coeff_diff = linalg.norm(sparse_lasso.coef_ - dense_lasso.coef_) print(f"Distance between coefficients : {coeff_diff:.2e}") # %% .. rst-class:: sphx-glr-script-out .. code-block:: none Matrix density : 0.626% Sparse Lasso done in 0.123s Dense Lasso done in 0.589s Distance between coefficients : 8.33e-12 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.918 seconds) .. _sphx_glr_download_auto_examples_linear_model_plot_lasso_dense_vs_sparse_data.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/linear_model/plot_lasso_dense_vs_sparse_data.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/linear_model/plot_lasso_dense_vs_sparse_data.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_lasso_dense_vs_sparse_data.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_lasso_dense_vs_sparse_data.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_lasso_dense_vs_sparse_data.zip ` .. include:: plot_lasso_dense_vs_sparse_data.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_