.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/manifold/plot_compare_methods.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_compare_methods.py: ========================================= مقارنة طرق تعلم متعدد الشعب ========================================= توضيح لخفض الأبعاد على مجموعة بيانات المنحنى S مع طرق تعلم متعدد الشعب المختلفة. لنقاش ومقارنة هذه الخوارزميات، انظر :ref:`صفحة وحدة متعدد الشعب ` لمثال مماثل، حيث يتم تطبيق الطرق على مجموعة بيانات كروية، انظر :ref:`sphx_glr_auto_examples_manifold_plot_manifold_sphere.py` لاحظ أن الغرض من MDS هو إيجاد تمثيل منخفض الأبعاد للبيانات (هنا 2D) حيث تحترم المسافات جيدًا المسافات في الفضاء الأصلي عالي الأبعاد، على عكس أخرى خوارزميات تعلم متعدد الشعب، فهي لا تسعى إلى تمثيل متماثل للبيانات في الفضاء منخفض الأبعاد. .. GENERATED FROM PYTHON SOURCE LINES 22-26 .. code-block:: Python # Authors: The scikit-learn developers # SPDX-License-Identifier: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 27-31 إعداد مجموعة البيانات ------------------- نبدأ بتوليد مجموعة بيانات المنحنى S. .. GENERATED FROM PYTHON SOURCE LINES 31-43 .. code-block:: Python import matplotlib.pyplot as plt # unused but required import for doing 3d projections with matplotlib < 3.2 import mpl_toolkits.mplot3d # noqa: F401 from matplotlib import ticker from sklearn import datasets, manifold n_samples = 1500 S_points, S_color = datasets.make_s_curve(n_samples, random_state=0) .. GENERATED FROM PYTHON SOURCE LINES 44-46 لنلقِ نظرة على البيانات الأصلية. ونعرّف أيضًا بعض الدوال المساعدة، والتي سنستخدمها لاحقًا. .. GENERATED FROM PYTHON SOURCE LINES 46-85 .. code-block:: Python def plot_3d(points, points_color, title): x, y, z = points.T fig, ax = plt.subplots( figsize=(6, 6), facecolor="white", tight_layout=True, subplot_kw={"projection": "3d"}, ) fig.suptitle(title, size=16) col = ax.scatter(x, y, z, c=points_color, s=50, alpha=0.8) ax.view_init(azim=-60, elev=9) ax.xaxis.set_major_locator(ticker.MultipleLocator(1)) ax.yaxis.set_major_locator(ticker.MultipleLocator(1)) ax.zaxis.set_major_locator(ticker.MultipleLocator(1)) fig.colorbar(col, ax=ax, orientation="horizontal", shrink=0.6, aspect=60, pad=0.01) plt.show() def plot_2d(points, points_color, title): fig, ax = plt.subplots(figsize=(3, 3), facecolor="white", constrained_layout=True) fig.suptitle(title, size=16) add_2d_scatter(ax, points, points_color) plt.show() def add_2d_scatter(ax, points, points_color, title=None): x, y = points.T ax.scatter(x, y, c=points_color, s=50, alpha=0.8) ax.set_title(title) ax.xaxis.set_major_formatter(ticker.NullFormatter()) ax.yaxis.set_major_formatter(ticker.NullFormatter()) plot_3d(S_points, S_color, "عينات المنحنى S الأصلية") .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_001.png :alt: عينات المنحنى S الأصلية :srcset: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 86-94 تعريف خوارزميات لتعلم متعدد الشعب ------------------------------------------- تعلم متعدد الشعب هو نهج لخفض الأبعاد غير الخطي. تعتمد خوارزميات هذه المهمة على فكرة أن أبعاد العديد من مجموعات البيانات مرتفعة بشكل مصطنع فقط. اقرأ المزيد في :ref:`دليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 94-98 .. code-block:: Python n_neighbors = 12 # الجوار الذي يتم استخدامه لاستعادة الهيكل الخطي المحلي n_components = 2 # عدد الإحداثيات لمتعدد الشعب .. GENERATED FROM PYTHON SOURCE LINES 99-105 تضمينات خطية محليًا ^^^^^^^^^^^^^^^^^^^^^^^^^ يمكن اعتبار التضمين الخطي المحلي (LLE) سلسلة من تحليلات المكونات الرئيسية المحلية التي تتم مقارنتها عالميًا لإيجاد أفضل تضمين غير خطي. اقرأ المزيد في :ref:`دليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 105-125 .. code-block:: Python params = { "n_neighbors": n_neighbors, "n_components": n_components, "eigen_solver": "auto", "random_state": 0, } lle_standard = manifold.LocallyLinearEmbedding(method="standard", **params) S_standard = lle_standard.fit_transform(S_points) lle_ltsa = manifold.LocallyLinearEmbedding(method="ltsa", **params) S_ltsa = lle_ltsa.fit_transform(S_points) lle_hessian = manifold.LocallyLinearEmbedding(method="hessian", **params) S_hessian = lle_hessian.fit_transform(S_points) lle_mod = manifold.LocallyLinearEmbedding(method="modified", **params) S_mod = lle_mod.fit_transform(S_points) .. GENERATED FROM PYTHON SOURCE LINES 126-143 .. code-block:: Python fig, axs = plt.subplots( nrows=2, ncols=2, figsize=(7, 7), facecolor="white", constrained_layout=True ) fig.suptitle("التضمينات الخطية المحلية", size=16) lle_methods = [ ("التضمين الخطي المحلي القياسي", S_standard), ("محاذاة مساحة الظماس المحلي", S_ltsa), ("خريطة Hessian الذاتية", S_hessian), ("التضمين الخطي المحلي المعدل", S_mod), ] for ax, method in zip(axs.flat, lle_methods): name, points = method add_2d_scatter(ax, points, S_color, name) plt.show() .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_002.png :alt: التضمينات الخطية المحلية, التضمين الخطي المحلي القياسي, محاذاة مساحة الظماس المحلي, خريطة Hessian الذاتية, التضمين الخطي المحلي المعدل :srcset: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 144-150 تضمين Isomap ^^^^^^^^^^^^^^^^ خفض الأبعاد غير الخطي من خلال التعيين المتساوي القياس. يبحث Isomap عن تضمين منخفض الأبعاد يحافظ على المسافات الجيوديسية بين جميع النقاط. اقرأ المزيد في :ref:`دليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 150-156 .. code-block:: Python isomap = manifold.Isomap(n_neighbors=n_neighbors, n_components=n_components, p=1) S_isomap = isomap.fit_transform(S_points) plot_2d(S_isomap, S_color, "تضمين Isomap") .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_003.png :alt: تضمين Isomap :srcset: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 157-164 القياس متعدد الأبعاد ^^^^^^^^^^^^^^^^^^^^^^^^ يبحث القياس متعدد الأبعاد (MDS) عن تمثيل منخفض الأبعاد للبيانات حيث تحترم المسافات جيدًا المسافات في الفضاء الأصلي عالي الأبعاد. اقرأ المزيد في :ref:`دليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 164-176 .. code-block:: Python md_scaling = manifold.MDS( n_components=n_components, max_iter=50, n_init=4, random_state=0, normalized_stress=False, ) S_scaling = md_scaling.fit_transform(S_points) plot_2d(S_scaling, S_color, "القياس متعدد الأبعاد") .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_004.png :alt: القياس متعدد الأبعاد :srcset: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 177-183 التضمين الطيفي لخفض الأبعاد غير الخطي ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ يستخدم هذا التنفيذ خرائط Laplacian الذاتية، والتي تجد تمثيلًا منخفض الأبعاد للبيانات باستخدام تحليل طيفي لمصفوفة Laplacian للرسم البياني. اقرأ المزيد في :ref:`دليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 183-191 .. code-block:: Python spectral = manifold.SpectralEmbedding( n_components=n_components, n_neighbors=n_neighbors, random_state=42 ) S_spectral = spectral.fit_transform(S_points) plot_2d(S_spectral, S_color, "التضمين الطيفي") .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_005.png :alt: التضمين الطيفي :srcset: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_005.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 192-200 تضمين الجوار العشوائي الموزع على شكل حرف T ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ يحول أوجه التشابه بين نقاط البيانات إلى احتمالات مشتركة و يحاول تقليل اختلاف Kullback-Leibler بين الاحتمالات المشتركة للتضمين منخفض الأبعاد والبيانات عالية الأبعاد. لدى t-SNE دالة تكلفة ليست محدبة، أي مع تهيئات أولية مختلفة يمكننا الحصول على نتائج مختلفة. اقرأ المزيد في :ref:`دليل المستخدم `. .. GENERATED FROM PYTHON SOURCE LINES 200-212 .. code-block:: Python t_sne = manifold.TSNE( n_components=n_components, perplexity=30, init="random", max_iter=250, random_state=0, ) S_t_sne = t_sne.fit_transform(S_points) plot_2d(S_t_sne, S_color, "تضمين الجوار العشوائي \n الموزع على شكل حرف T") .. image-sg:: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_006.png :alt: تضمين الجوار العشوائي الموزع على شكل حرف T :srcset: /auto_examples/manifold/images/sphx_glr_plot_compare_methods_006.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 17.568 seconds) .. _sphx_glr_download_auto_examples_manifold_plot_compare_methods.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_compare_methods.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_compare_methods.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_compare_methods.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_compare_methods.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_compare_methods.zip ` .. include:: plot_compare_methods.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_