.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/manifold/plot_swissroll.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_manifold_plot_swissroll.py: =================================== خفض اللفافة السويسرية واللفافة السويسرية ذات الثقب =================================== يسعى هذا الدفتر إلى مقارنة تقنيتين شائعتين لخفض الأبعاد غير الخطية، وهما تضمين الجوار العشوائي الموزع على شكل حرف T (t-SNE) والتضمين الخطي المحلي (LLE)، على مجموعة بيانات اللفافة السويسرية الكلاسيكية. بعد ذلك، سنستكشف كيفية تعاملهما مع إضافة ثقب في البيانات. .. GENERATED FROM PYTHON SOURCE LINES 10-14 .. code-block:: Python # Authors: The scikit-learn developers # SPDX-License-Identifier: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 15-19 اللفافة السويسرية --------------------------------------------------- نبدأ بتوليد مجموعة بيانات اللفافة السويسرية. .. GENERATED FROM PYTHON SOURCE LINES 19-26 .. code-block:: Python import matplotlib.pyplot as plt from sklearn import datasets, manifold sr_points, sr_color = datasets.make_swiss_roll(n_samples=1500, random_state=0) .. GENERATED FROM PYTHON SOURCE LINES 27-28 الآن، لنلقِ نظرة على بياناتنا: .. GENERATED FROM PYTHON SOURCE LINES 28-39 .. code-block:: Python fig = plt.figure(figsize=(8, 6)) ax = fig.add_subplot(111, projection="3d") fig.add_axes(ax) ax.scatter( sr_points[:, 0], sr_points[:, 1], sr_points[:, 2], c=sr_color, s=50, alpha=0.8 ) ax.set_title("اللفافة السويسرية في الفضاء المحيط") ax.view_init(azim=-66, elev=12) _ = ax.text2D(0.8, 0.05, s="n_samples=1500", transform=ax.transAxes) .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_swissroll_001.png :alt: اللفافة السويسرية في الفضاء المحيط :srcset: /auto_examples/manifold/images/sphx_glr_plot_swissroll_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 40-45 بحساب تضمينات LLE وt-SNE، نجد أن LLE يبدو أنه يفرد اللفافة السويسرية بشكل فعال جدًا. من ناحية أخرى، فإن t-SNE قادر على الحفاظ على الهيكل العام للبيانات، ولكنه يمثل بشكل سيئ الطبيعة المستمرة لبياناتنا الأصلية. بدلاً من ذلك، يبدو أنه يجمع بشكل غير ضروري أقسامًا من النقاط معًا. .. GENERATED FROM PYTHON SOURCE LINES 45-60 .. code-block:: Python sr_lle, sr_err = manifold.locally_linear_embedding( sr_points, n_neighbors=12, n_components=2 ) sr_tsne = manifold.TSNE(n_components=2, perplexity=40, random_state=0).fit_transform( sr_points ) fig, axs = plt.subplots(figsize=(8, 8), nrows=2) axs[0].scatter(sr_lle[:, 0], sr_lle[:, 1], c=sr_color) axs[0].set_title("تضمين LLE للفة السويسرية") axs[1].scatter(sr_tsne[:, 0], sr_tsne[:, 1], c=sr_color) _ = axs[1].set_title("تضمين t-SNE للفة السويسرية") .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_swissroll_002.png :alt: تضمين LLE للفة السويسرية, تضمين t-SNE للفة السويسرية :srcset: /auto_examples/manifold/images/sphx_glr_plot_swissroll_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 61-68 .. note:: يبدو أن LLE يمد النقاط من مركز (أرجواني) اللفة السويسرية. ومع ذلك، نلاحظ أن هذا مجرد نتيجة ثانوية لكيفية إنشاء البيانات. هناك كثافة أعلى للنقاط بالقرب من مركز اللفة، مما يؤثر في النهاية على كيفية إعادة بناء LLE للبيانات في بُعد أقل. .. GENERATED FROM PYTHON SOURCE LINES 70-75 اللفافة السويسرية ذات الثقب --------------------------------------------------- الآن دعونا نلقي نظرة على كيفية تعامل كلتا الخوارزميتين مع إضافة ثقب إلى البيانات. أولاً، نقوم بإنشاء مجموعة بيانات اللفافة السويسرية ذات الثقب ورسمها: .. GENERATED FROM PYTHON SOURCE LINES 75-90 .. code-block:: Python sh_points, sh_color = datasets.make_swiss_roll( n_samples=1500, hole=True, random_state=0 ) fig = plt.figure(figsize=(8, 6)) ax = fig.add_subplot(111, projection="3d") fig.add_axes(ax) ax.scatter( sh_points[:, 0], sh_points[:, 1], sh_points[:, 2], c=sh_color, s=50, alpha=0.8 ) ax.set_title("اللفافة السويسرية ذات الثقب في الفضاء المحيط") ax.view_init(azim=-66, elev=12) _ = ax.text2D(0.8, 0.05, s="n_samples=1500", transform=ax.transAxes) .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_swissroll_003.png :alt: اللفافة السويسرية ذات الثقب في الفضاء المحيط :srcset: /auto_examples/manifold/images/sphx_glr_plot_swissroll_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 91-95 بحساب تضمينات LLE وt-SNE، نحصل على نتائج مماثلة للفة السويسرية. يقوم LLE بفك البيانات بشكل فعال للغاية ويحافظ على الثقب. يبدو أن t-SNE يجمع أقسامًا من النقاط معًا مرة أخرى، لكننا نلاحظ أنه يحافظ على الهيكل العام للبيانات الأصلية. .. GENERATED FROM PYTHON SOURCE LINES 95-111 .. code-block:: Python sh_lle, sh_err = manifold.locally_linear_embedding( sh_points, n_neighbors=12, n_components=2 ) sh_tsne = manifold.TSNE( n_components=2, perplexity=40, init="random", random_state=0 ).fit_transform(sh_points) fig, axs = plt.subplots(figsize=(8, 8), nrows=2) axs[0].scatter(sh_lle[:, 0], sh_lle[:, 1], c=sh_color) axs[0].set_title("تضمين LLE للفة السويسرية ذات الثقب") axs[1].scatter(sh_tsne[:, 0], sh_tsne[:, 1], c=sh_color) _ = axs[1].set_title("تضمين t-SNE للفة السويسرية ذات الثقب") .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_swissroll_004.png :alt: تضمين LLE للفة السويسرية ذات الثقب, تضمين t-SNE للفة السويسرية ذات الثقب :srcset: /auto_examples/manifold/images/sphx_glr_plot_swissroll_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 112-122 ملاحظات ختامية ------------------ نلاحظ أن t-SNE تستفيد من اختبار المزيد من مجموعات المعلمات. ربما كان من الممكن الحصول على نتائج أفضل عن طريق ضبط هذه المعلمات بشكل أفضل. نلاحظ أنه، كما هو موضح في مثال "تعلم متعدد الشعب على أرقام مكتوبة بخط اليد"، فإن t-SNE بشكل عام يؤدي أداءً أفضل من LLE على بيانات العالم الحقيقي. .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 12.555 seconds) .. _sphx_glr_download_auto_examples_manifold_plot_swissroll.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/manifold/plot_swissroll.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/manifold/plot_swissroll.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_swissroll.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_swissroll.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_swissroll.zip ` .. include:: plot_swissroll.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_