.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/covariance/plot_sparse_cov.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_covariance_plot_sparse_cov.py: ====================================== تقدير معكوس التغاير النادر ====================================== استخدام أداة تقدير GraphicalLasso لتعلم التغاير والانحراف النادر من عدد صغير من العينات. لتقدير نموذج احتمالي (مثل النموذج الغاوسي)، فإن تقدير مصفوفة الانحراف، أي مصفوفة معكوس التغاير، هو بنفس أهمية تقدير مصفوفة التغاير. في الواقع، يتم تحديد نموذج غاوسي بواسطة مصفوفة الانحراف. للحصول على ظروف استرداد مواتية، نقوم بجمع البيانات من نموذج بمصفوفة معكوس تغاير نادرة. بالإضافة إلى ذلك، نضمن أن البيانات ليست مرتبطة للغاية (تحديد أكبر معامل في مصفوفة الانحراف) وأنه لا يوجد معاملات صغيرة في مصفوفة الانحراف التي لا يمكن استردادها. بالإضافة إلى ذلك، مع عدد صغير من الملاحظات، من الأسهل استرداد مصفوفة الارتباط بدلاً من التغاير، وبالتالي نقوم بتصحيح سلسلة الوقت. هنا، عدد العينات أكبر قليلاً من عدد الأبعاد، وبالتالي فإن التغاير التجريبي لا يزال قابلًا للعكس. ومع ذلك، بما أن الملاحظات مرتبطة بقوة، فإن مصفوفة التغاير التجريبية سيئة الشرط ونتيجة لذلك، فإن معكوسها - التغاير التجريبي الدقيق - بعيد جدًا عن الحقيقة. إذا استخدمنا الانكماش l2، كما هو الحال مع أداة تقدير Ledoit-Wolf، حيث أن عدد العينات صغير، نحتاج إلى الانكماش كثيرًا. ونتيجة لذلك، فإن دقة Ledoit-Wolf قريبة جدًا من دقة الحقيقة، والتي ليست بعيدة عن كونها قطريًا، ولكن يتم فقدان البنية خارج القطر. يمكن لأداة التقدير المعاقب l1 استرداد جزء من هذه البنية خارج القطر. إنها تتعلم الانحراف النادر. إنها غير قادرة على استرداد نمط التفرعات الدقيق: فهي تكتشف الكثير من المعاملات غير الصفرية. ومع ذلك، فإن أعلى المعاملات غير الصفرية المقدرة l1 تتوافق مع المعاملات غير الصفرية في الحقيقة. أخيرًا، فإن معاملات تقدير الانحراف l1 متحيزة نحو الصفر: بسبب العقوبة، فهي جميعها أصغر من قيمة الحقيقة المقابلة، كما يمكن رؤيتها في الشكل. لاحظ أن نطاق ألوان مصفوفات الانحراف يتم ضبطه لتحسين قابلية قراءة الشكل. لا يتم عرض النطاق الكامل لقيم التغاير التجريبي. يتم تعيين معامل alpha لأداة GraphicalLasso لتحديد ندرة النموذج بواسطة التحقق الداخلي من الصحة في GraphicalLassoCV. كما يمكن رؤيته في الشكل 2، يتم تكرار الشبكة لحساب درجة التحقق من الصحة في الجوار الأقصى. .. GENERATED FROM PYTHON SOURCE LINES 44-47 .. code-block:: Python # المؤلفون: مطوري scikit-learn # معرف الترخيص: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 48-50 توليد البيانات ----------------- .. GENERATED FROM PYTHON SOURCE LINES 50-74 .. code-block:: Python import matplotlib.pyplot as plt from sklearn.covariance import GraphicalLassoCV, ledoit_wolf import numpy as np from scipy import linalg from sklearn.datasets import make_sparse_spd_matrix n_samples = 60 n_features = 20 prng = np.random.RandomState(1) prec = make_sparse_spd_matrix( n_features, alpha=0.98, smallest_coef=0.4, largest_coef=0.7, random_state=prng ) cov = linalg.inv(prec) d = np.sqrt(np.diag(cov)) cov /= d cov /= d[:, np.newaxis] prec *= d prec *= d[:, np.newaxis] X = prng.multivariate_normal(np.zeros(n_features), cov, size=n_samples) X -= X.mean(axis=0) X /= X.std(axis=0) .. GENERATED FROM PYTHON SOURCE LINES 75-77 تقدير التغاير ----------------------- .. GENERATED FROM PYTHON SOURCE LINES 77-88 .. code-block:: Python emp_cov = np.dot(X.T, X) / n_samples model = GraphicalLassoCV() model.fit(X) cov_ = model.covariance_ prec_ = model.precision_ lw_cov_, _ = ledoit_wolf(X) lw_prec_ = linalg.inv(lw_cov_) .. GENERATED FROM PYTHON SOURCE LINES 89-91 رسم النتائج ---------------- .. GENERATED FROM PYTHON SOURCE LINES 91-136 .. code-block:: Python plt.figure(figsize=(10, 6)) plt.subplots_adjust(left=0.02, right=0.98) # رسم التغايرات covs = [ ("Empirical", emp_cov), ("Ledoit-Wolf", lw_cov_), ("GraphicalLassoCV", cov_), ("True", cov), ] vmax = cov_.max() for i, (name, this_cov) in enumerate(covs): plt.subplot(2, 4, i + 1) plt.imshow( this_cov, interpolation="nearest", vmin=-vmax, vmax=vmax, cmap=plt.cm.RdBu_r ) plt.xticks(()) plt.yticks(()) plt.title("%s covariance" % name) # رسم الانحرافات precs = [ ("Empirical", linalg.inv(emp_cov)), ("Ledoit-Wolf", lw_prec_), ("GraphicalLasso", prec_), ("True", prec), ] vmax = 0.9 * prec_.max() for i, (name, this_prec) in enumerate(precs): ax = plt.subplot(2, 4, i + 5) plt.imshow( np.ma.masked_equal(this_prec, 0), interpolation="nearest", vmin=-vmax, vmax=vmax, cmap=plt.cm.RdBu_r, ) plt.xticks(()) plt.yticks(()) plt.title("%s precision" % name) if hasattr(ax, "set_facecolor"): ax.set_facecolor(".7") else: ax.set_axis_bgcolor(".7") .. image-sg:: /auto_examples/covariance/images/sphx_glr_plot_sparse_cov_001.png :alt: Empirical covariance, Ledoit-Wolf covariance, GraphicalLassoCV covariance, True covariance, Empirical precision, Ledoit-Wolf precision, GraphicalLasso precision, True precision :srcset: /auto_examples/covariance/images/sphx_glr_plot_sparse_cov_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 137-149 .. code-block:: Python # رسم مقياس اختيار النموذج plt.figure(figsize=(4, 3)) plt.axes([0.2, 0.15, 0.75, 0.7]) plt.plot(model.cv_results_["alphas"], model.cv_results_["mean_test_score"], "o-") plt.axvline(model.alpha_, color=".5") plt.title("Model selection") plt.ylabel("Cross-validation score") plt.xlabel("alpha") plt.show() .. image-sg:: /auto_examples/covariance/images/sphx_glr_plot_sparse_cov_002.png :alt: Model selection :srcset: /auto_examples/covariance/images/sphx_glr_plot_sparse_cov_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.508 seconds) .. _sphx_glr_download_auto_examples_covariance_plot_sparse_cov.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/covariance/plot_sparse_cov.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/covariance/plot_sparse_cov.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_sparse_cov.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_sparse_cov.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_sparse_cov.zip ` .. include:: plot_sparse_cov.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_