.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/cluster/plot_dbscan.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_dbscan.py: =================================== عرض توضيحي لخوارزمية التجميع DBSCAN =================================== DBSCAN (Density-Based Spatial Clustering of Applications with Noise) يجد العينات الأساسية في مناطق ذات كثافة عالية ويوسع التجمعات منها. هذا الخوارزم جيد للبيانات التي تحتوي على تجمعات ذات كثافة مماثلة. راجع مثال :ref:`sphx_glr_auto_examples_cluster_plot_cluster_comparison.py` لعرض توضيحي لخوارزميات تجميع مختلفة على مجموعات بيانات ثنائية الأبعاد. .. GENERATED FROM PYTHON SOURCE LINES 10-13 .. code-block:: Python # المؤلفون: مطوري scikit-learn # معرف الترخيص: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 14-18 توليد البيانات --------------- نستخدم :class:`~sklearn.datasets.make_blobs` لإنشاء 3 مجموعات صناعية. .. GENERATED FROM PYTHON SOURCE LINES 18-29 .. code-block:: Python from sklearn.datasets import make_blobs from sklearn.preprocessing import StandardScaler centers = [[1, 1], [-1, -1], [1, -1]] X, labels_true = make_blobs( n_samples=750, centers=centers, cluster_std=0.4, random_state=0 ) X = StandardScaler().fit_transform(X) .. GENERATED FROM PYTHON SOURCE LINES 30-31 يمكننا تصور البيانات الناتجة: .. GENERATED FROM PYTHON SOURCE LINES 31-37 .. code-block:: Python import matplotlib.pyplot as plt plt.scatter(X[:, 0], X[:, 1]) plt.show() .. image-sg:: /auto_examples/cluster/images/sphx_glr_plot_dbscan_001.png :alt: plot dbscan :srcset: /auto_examples/cluster/images/sphx_glr_plot_dbscan_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 38-43 حساب DBSCAN -------------- يمكن الوصول إلى العلامات التي تم تعيينها بواسطة :class:`~sklearn.cluster.DBSCAN` باستخدام سمة `labels_`. يتم إعطاء العينات الضجيجية التسمية math:`-1`. .. GENERATED FROM PYTHON SOURCE LINES 43-59 .. code-block:: Python import numpy as np from sklearn import metrics from sklearn.cluster import DBSCAN db = DBSCAN(eps=0.3, min_samples=10).fit(X) labels = db.labels_ # عدد التجمعات في العلامات، مع تجاهل الضجيج إذا كان موجودًا. n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0) n_noise_ = list(labels).count(-1) print("Estimated number of clusters: %d" % n_clusters_) print("Estimated number of noise points: %d" % n_noise_) .. rst-class:: sphx-glr-script-out .. code-block:: none Estimated number of clusters: 3 Estimated number of noise points: 18 .. GENERATED FROM PYTHON SOURCE LINES 60-75 خوارزميات التجميع هي أساليب تعلم غير خاضعة للإشراف بشكل أساسي. ومع ذلك، نظرًا لأن :class:`~sklearn.datasets.make_blobs` يتيح الوصول إلى العلامات الحقيقية للتجمعات الاصطناعية، فمن الممكن استخدام مقاييس التقييم التي تستفيد من معلومات "الإشراف" هذه لتقييم جودة التجمعات الناتجة. أمثلة على هذه المقاييس هي التجانس، والاكتمال، وV-measure، وRand-Index، وAdjusted Rand-Index، وAdjusted Mutual Information (AMI). إذا لم تكن العلامات الحقيقية معروفة، يمكن إجراء التقييم باستخدام نتائج النموذج نفسه فقط. في هذه الحالة، يأتي معامل Silhouette Coefficient في متناول اليد. لمزيد من المعلومات، راجع :ref:`sphx_glr_auto_examples_cluster_plot_adjusted_for_chance_measures.py` المثال أو الوحدة النمطية :ref:`clustering_evaluation`. .. GENERATED FROM PYTHON SOURCE LINES 75-86 .. code-block:: Python print(f"Homogeneity: {metrics.homogeneity_score(labels_true, labels):.3f}") print(f"Completeness: {metrics.completeness_score(labels_true, labels):.3f}") print(f"V-measure: {metrics.v_measure_score(labels_true, labels):.3f}") print(f"Adjusted Rand Index: {metrics.adjusted_rand_score(labels_true, labels):.3f}") print( "Adjusted Mutual Information:" f" {metrics.adjusted_mutual_info_score(labels_true, labels):.3f}" ) print(f"Silhouette Coefficient: {metrics.silhouette_score(X, labels):.3f}") .. rst-class:: sphx-glr-script-out .. code-block:: none Homogeneity: 0.953 Completeness: 0.883 V-measure: 0.917 Adjusted Rand Index: 0.952 Adjusted Mutual Information: 0.916 Silhouette Coefficient: 0.626 .. GENERATED FROM PYTHON SOURCE LINES 87-92 عرض النتائج ------------ يتم ترميز العينات الأساسية (النقاط الكبيرة) والعينات غير الأساسية (النقاط الصغيرة) بالألوان وفقًا للتجمع المعين. يتم تمثيل العينات الموسومة كضجيج باللون الأسود. .. GENERATED FROM PYTHON SOURCE LINES 92-125 .. code-block:: Python unique_labels = set(labels) core_samples_mask = np.zeros_like(labels, dtype=bool) core_samples_mask[db.core_sample_indices_] = True colors = [plt.cm.Spectral(each) for each in np.linspace(0, 1, len(unique_labels))] for k, col in zip(unique_labels, colors): if k == -1: # Black used for noise. col = [0, 0, 0, 1] class_member_mask = labels == k xy = X[class_member_mask & core_samples_mask] plt.plot( xy[:, 0], xy[:, 1], "o", markerfacecolor=tuple(col), markeredgecolor="k", markersize=14, ) xy = X[class_member_mask & ~core_samples_mask] plt.plot( xy[:, 0], xy[:, 1], "o", markerfacecolor=tuple(col), markeredgecolor="k", markersize=6, ) plt.title(f"Estimated number of clusters: {n_clusters_}") plt.show() .. image-sg:: /auto_examples/cluster/images/sphx_glr_plot_dbscan_002.png :alt: Estimated number of clusters: 3 :srcset: /auto_examples/cluster/images/sphx_glr_plot_dbscan_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.233 seconds) .. _sphx_glr_download_auto_examples_cluster_plot_dbscan.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_dbscan.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_dbscan.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_dbscan.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_dbscan.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_dbscan.zip ` .. include:: plot_dbscan.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_