.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/cluster/plot_coin_segmentation.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_cluster_plot_coin_segmentation.py: تم تقسيم صورة العملات اليونانية إلى مناطق ================================================ يستخدم هذا المثال :ref:`spectral_clustering` على رسم بياني تم إنشاؤه من الفرق بين البكسلات في صورة لتقسيم هذه الصورة إلى مناطق متعددة جزئيا متجانسة. هذه العملية (التجميع الطيفي على صورة) هي حل تقريبي فعال لإيجاد القطع الرسومية المعيارية. هناك ثلاثة خيارات لتعيين التصنيفات: * 'kmeans' التجميع الطيفي يجمع العينات في مساحة التضمين باستخدام خوارزمية kmeans * 'discrete' تبحث بشكل تكراري عن أقرب تقسيم مساحة إلى مساحة تضمين التجميع الطيفي. * 'cluster_qr' يقوم بتعيين التصنيفات باستخدام تحليل QR مع التبديل الذي يحدد التقسيم مباشرة في مساحة التضمين. .. GENERATED FROM PYTHON SOURCE LINES 21-60 .. code-block:: Python # المؤلفون: مطوري scikit-learn # معرف الترخيص: BSD-3-Clause import time import matplotlib.pyplot as plt import numpy as np from scipy.ndimage import gaussian_filter from skimage.data import coins from skimage.transform import rescale from sklearn.cluster import spectral_clustering from sklearn.feature_extraction import image # تحميل العملات كصفيف numpy orig_coins = coins() # تغيير حجمه إلى 20% من الحجم الأصلي لتسريع المعالجة # تطبيق مرشح غاوسي للتنعيم قبل تغيير الحجم # يقلل من آثار التحجيم. smoothened_coins = gaussian_filter(orig_coins, sigma=2) rescaled_coins = rescale(smoothened_coins, 0.2, mode="reflect", anti_aliasing=False) # تحويل الصورة إلى رسم بياني مع قيمة التدرج على # الحواف. graph = image.img_to_graph(rescaled_coins) # خذ دالة متناقصة من التدرج: أسية # كلما كان beta أصغر، كلما كانت القطعة مستقلة أكثر عن # الصورة الفعلية. بالنسبة لـ beta=1، تكون القطعة قريبة من voronoi beta = 10 eps = 1e-6 graph.data = np.exp(-beta * graph.data / graph.data.std()) + eps # يجب اختيار عدد المناطق المقسمة يدويًا. # الإصدار الحالي من 'spectral_clustering' لا يدعم تحديد # عدد المجموعات ذات الجودة الجيدة تلقائيًا. n_regions = 26 .. GENERATED FROM PYTHON SOURCE LINES 61-62 حساب وعرض المناطق الناتجة .. GENERATED FROM PYTHON SOURCE LINES 62-102 .. code-block:: Python # حساب بعض المتجهات الذاتية الإضافية قد يسرع eigen_solver. # قد تستفيد جودة التجميع الطيفي أيضًا من طلب # مناطق إضافية للتقسيم. n_regions_plus = 3 # تطبيق التجميع الطيفي باستخدام eigen_solver='arpack' الافتراضي. # يمكن استخدام أي محقق تم تنفيذه: eigen_solver='arpack'، 'lobpcg'، أو 'amg'. # اختيار eigen_solver='amg' يتطلب حزمة إضافية تسمى 'pyamg'. # يتم تحديد جودة التقسيم وسرعة الحسابات بشكل أساسي # من خلال اختيار المحقق وقيمة التسامح 'eigen_tol'. # TODO: يبدو أن تغيير eigen_tol ليس له تأثير على 'lobpcg' و 'amg' #21243. for assign_labels in ("kmeans", "discretize", "cluster_qr"): t0 = time.time() labels = spectral_clustering( graph, n_clusters=(n_regions + n_regions_plus), eigen_tol=1e-7, assign_labels=assign_labels, random_state=42, ) t1 = time.time() labels = labels.reshape(rescaled_coins.shape) plt.figure(figsize=(5, 5)) plt.imshow(rescaled_coins, cmap=plt.cm.gray) plt.xticks(()) plt.yticks(()) title = "Spectral clustering: %s, %.2fs" % (assign_labels, (t1 - t0)) print(title) plt.title(title) for l in range(n_regions): colors = [plt.cm.nipy_spectral((l + 4) / float(n_regions + 4))] plt.contour(labels == l, colors=colors) # لعرض المقاطع الفردية كما تظهر قم بالتعليق في plt.pause(0.5) plt.show() # TODO: بعد دمج #21194 وإصلاح #21243، تحقق من أفضل محقق # هو eigen_solver='arpack'، 'lobpcg'، أو 'amg' و eigen_tol # بشكل صريح في هذا المثال. .. rst-class:: sphx-glr-horizontal * .. image-sg:: /auto_examples/cluster/images/sphx_glr_plot_coin_segmentation_001.png :alt: Spectral clustering: kmeans, 2.47s :srcset: /auto_examples/cluster/images/sphx_glr_plot_coin_segmentation_001.png :class: sphx-glr-multi-img * .. image-sg:: /auto_examples/cluster/images/sphx_glr_plot_coin_segmentation_002.png :alt: Spectral clustering: discretize, 1.48s :srcset: /auto_examples/cluster/images/sphx_glr_plot_coin_segmentation_002.png :class: sphx-glr-multi-img * .. image-sg:: /auto_examples/cluster/images/sphx_glr_plot_coin_segmentation_003.png :alt: Spectral clustering: cluster_qr, 1.33s :srcset: /auto_examples/cluster/images/sphx_glr_plot_coin_segmentation_003.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none Spectral clustering: kmeans, 2.47s Spectral clustering: discretize, 1.48s Spectral clustering: cluster_qr, 1.33s .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 5.895 seconds) .. _sphx_glr_download_auto_examples_cluster_plot_coin_segmentation.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/cluster/plot_coin_segmentation.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/cluster/plot_coin_segmentation.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_coin_segmentation.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_coin_segmentation.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_coin_segmentation.zip ` .. include:: plot_coin_segmentation.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_