.. 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_lars_ic.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_lars_ic.py: ============================================== اختيار نموذج لاصو عبر معايير المعلومات ============================================== هذا المثال يعيد إنتاج مثال الشكل 2 من [ZHT2007]_. يقوم مقدر :class:`~sklearn.linear_model.LassoLarsIC` بالتناسب مع مجموعة بيانات مرض السكري ويتم استخدام معياري معلومات أكايكي (AIC) ومعلومات بايز (BIC) لاختيار أفضل نموذج. .. note:: من المهم ملاحظة أن التحسين للعثور على `alpha` مع :class:`~sklearn.linear_model.LassoLarsIC` يعتمد على معياري AIC أو BIC اللذين يتم حسابهما داخل العينة، وبالتالي على مجموعة التدريب مباشرة. يختلف هذا النهج عن إجراء التحقق من الصحة المتقاطع. لمقارنة النهجين، يمكنك الرجوع إلى المثال التالي: :ref:`sphx_glr_auto_examples_linear_model_plot_lasso_model_selection.py`. .. rubric:: المراجع .. [ZHT2007] :arxiv:`Zou, Hui, Trevor Hastie, and Robert Tibshirani. "On the degrees of freedom of the lasso." The Annals of Statistics 35.5 (2007): 2173-2192. <0712.0881>` .. GENERATED FROM PYTHON SOURCE LINES 22-26 .. code-block:: Python # المؤلفون: مطوري سكايلرن # معرف الترخيص: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 27-28 سنستخدم مجموعة بيانات مرض السكري. .. GENERATED FROM PYTHON SOURCE LINES 28-34 .. code-block:: Python from sklearn.datasets import load_diabetes X, y = load_diabetes(return_X_y=True, as_frame=True) n_samples = X.shape[0] X.head() .. raw:: html
age sex bmi bp s1 s2 s3 s4 s5 s6
0 0.038076 0.050680 0.061696 0.021872 -0.044223 -0.034821 -0.043401 -0.002592 0.019907 -0.017646
1 -0.001882 -0.044642 -0.051474 -0.026328 -0.008449 -0.019163 0.074412 -0.039493 -0.068332 -0.092204
2 0.085299 0.050680 0.044451 -0.005670 -0.045599 -0.034194 -0.032356 -0.002592 0.002861 -0.025930
3 -0.089063 -0.044642 -0.011595 -0.036656 0.012191 0.024991 -0.036038 0.034309 0.022688 -0.009362
4 0.005383 -0.044642 -0.036385 0.021872 0.003935 0.015596 0.008142 -0.002592 -0.031988 -0.046641


.. GENERATED FROM PYTHON SOURCE LINES 35-42 يوفر سكايلرن مقدرًا يسمى :class:`~sklearn.linear_model.LassoLarsIC` الذي يستخدم إما معيار معلومات أكايكي (AIC) أو معيار معلومات بايز (BIC) ل اختيار أفضل نموذج. قبل تناسب هذا النموذج، سنقوم بتصغير مجموعة البيانات. في ما يلي، سنقوم بتناسب نموذجين لمقارنة القيم المبلغ عنها من قبل AIC و BIC. .. GENERATED FROM PYTHON SOURCE LINES 42-49 .. code-block:: Python from sklearn.linear_model import LassoLarsIC from sklearn.pipeline import make_pipeline from sklearn.preprocessing import StandardScaler lasso_lars_ic = make_pipeline(StandardScaler(), LassoLarsIC(criterion="aic")).fit(X, y) .. GENERATED FROM PYTHON SOURCE LINES 50-54 لكي نكون على نفس الخط مع التعريف في [ZHT2007]_، نحتاج إلى إعادة تصغير AIC و BIC. في الواقع، يتجاهل Zou et al. بعض المصطلحات الثابتة مقارنة بالتعريف الأصلي لـ AIC المشتق من اللوغاريتم الأقصى لنموذج خطي. يمكنك الرجوع إلى :ref:`قسم التفاصيل الرياضية لدليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 54-59 .. code-block:: Python def zou_et_al_criterion_rescaling(criterion, n_samples, noise_variance): """إعادة تصغير معيار المعلومات لمتابعة تعريف Zou et al.""" return criterion - n_samples * np.log(2 * np.pi * noise_variance) - n_samples .. GENERATED FROM PYTHON SOURCE LINES 60-72 .. code-block:: Python import numpy as np aic_criterion = zou_et_al_criterion_rescaling( lasso_lars_ic[-1].criterion_, n_samples, lasso_lars_ic[-1].noise_variance_, ) index_alpha_path_aic = np.flatnonzero( lasso_lars_ic[-1].alphas_ == lasso_lars_ic[-1].alpha_ )[0] .. GENERATED FROM PYTHON SOURCE LINES 73-85 .. code-block:: Python lasso_lars_ic.set_params(lassolarsic__criterion="bic").fit(X, y) bic_criterion = zou_et_al_criterion_rescaling( lasso_lars_ic[-1].criterion_, n_samples, lasso_lars_ic[-1].noise_variance_, ) index_alpha_path_bic = np.flatnonzero( lasso_lars_ic[-1].alphas_ == lasso_lars_ic[-1].alpha_ )[0] .. GENERATED FROM PYTHON SOURCE LINES 86-89 الآن بعد أن جمعنا AIC و BIC، يمكننا أيضًا التحقق من أن الحد الأدنى لكل من المعايير يحدث عند نفس alpha. بعد ذلك، يمكننا تبسيط الرسم البياني التالي. .. GENERATED FROM PYTHON SOURCE LINES 89-91 .. code-block:: Python index_alpha_path_aic == index_alpha_path_bic .. rst-class:: sphx-glr-script-out .. code-block:: none np.True_ .. GENERATED FROM PYTHON SOURCE LINES 92-93 أخيرًا، يمكننا رسم معيار AIC و BIC والمعلمة المنتظمة اللاحقة. .. GENERATED FROM PYTHON SOURCE LINES 93-108 .. code-block:: Python import matplotlib.pyplot as plt plt.plot(aic_criterion, color="tab:blue", marker="o", label="AIC criterion") plt.plot(bic_criterion, color="tab:orange", marker="o", label="BIC criterion") plt.vlines( index_alpha_path_bic, aic_criterion.min(), aic_criterion.max(), color="black", linestyle="--", label="Selected alpha", ) plt.legend() plt.ylabel("Information criterion") plt.xlabel("Lasso model sequence") _ = plt.title("Lasso model selection via AIC and BIC") .. image-sg:: /auto_examples/linear_model/images/sphx_glr_plot_lasso_lars_ic_001.png :alt: Lasso model selection via AIC and BIC :srcset: /auto_examples/linear_model/images/sphx_glr_plot_lasso_lars_ic_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.337 seconds) .. _sphx_glr_download_auto_examples_linear_model_plot_lasso_lars_ic.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_lars_ic.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_lars_ic.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_lasso_lars_ic.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_lasso_lars_ic.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_lasso_lars_ic.zip ` .. include:: plot_lasso_lars_ic.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_