DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
استكشف DBSCAN للتجميع القائم على الكثافة واكتشاف الشذوذ. تعلّم كيف يحدّد الأشكال الاعتباطية والضوضاء في مجموعات البيانات إلى جانب Ultralytics YOLO26.
يُعد DBSCAN خوارزمية قوية للتعلّم غير الخاضع للإشراف، وتُستخدم لتحديد مجموعات متميزة داخل البيانات استنادًا إلى الكثافة. وعلى خلاف أساليب التجميع التقليدية التي تفترض وجود عناقيد كروية أو تتطلب تحديد عدد المجموعات مسبقًا، يحدد DBSCAN المناطق عالية الكثافة التي تفصل بينها مناطق منخفضة الكثافة. وتتيح له هذه القدرة اكتشاف عناقيد بأشكال وأحجام عشوائية، مما يجعله فعالًا للغاية في تحليل مجموعات البيانات الواقعية التي يكون هيكلها الأساسي مجهولًا. ومن المزايا الرئيسية لهذه الخوارزمية قدرتها المدمجة على اكتشاف الحالات الشاذة، إذ تصنّف تلقائيًا النقاط الموجودة في المناطق منخفضة الكثافة على أنها ضوضاء بدلًا من إجبارها على الانضمام إلى عنقود.
المفاهيم والمعلمات الأساسية#
تعمل الخوارزمية من خلال تحديد جوار حول كل نقطة بيانات، ثم حساب عدد النقاط الأخرى الواقعة ضمن ذلك النطاق. وتتحكم معلمتان فائقتان أساسيتان في هذه العملية، مما يتطلب إجراء ضبط للمعلمات الفائقة بعناية لملاءمة الخصائص المحددة للبيانات:
- إبسيلون (eps): تحدد هذه المعلمة نصف القطر الأقصى حول نقطة ما للبحث عن الجيران. وهي تحدد مسافة "قابلية الوصول".
- الحد الأدنى من النقاط (minPts): يحدد هذا عدد نقاط البيانات الأدنى المطلوب داخل نصف قطر إبسيلون لتكوين منطقة كثيفة أو "نواة".
استنادًا إلى هذه المعلمات، يصنّف DBSCAN كل نقطة في مجموعة البيانات إلى نوع واحد من ثلاثة أنواع:
-
النقاط الأساسية: هي النقاط التي تضم على الأقل
minPtsمن الجيران ضمن نصف القطرeps. وتشكل هذه النقاط الجزء الداخلي من العنقود. -
النقاط الحدّية: هي النقاط الواقعة ضمن نصف القطر
epsمن نقطة أساسية، لكنها تضم بنفسها عددًا من الجيران أقل منminPts. وتشكل هذه النقاط حواف العنقود. -
نقاط الضوضاء: هي النقاط التي ليست نقاطًا أساسية ولا حدّية. وتُعامل هذه النقاط فعليًا على أنها قيم شاذة، وهو أمر مفيد لمهام مثل اكتشاف القيم الشاذة.
DBSCAN مقابل تجميع K-Means#
على الرغم من أن كليهما أساسي في التعلم الآلي (ML)، فإن DBSCAN يقدم مزايا متميزة مقارنةً بـتجميع K-Means في سيناريوهات محددة. يعتمد K-Means على المراكز والمسافة الإقليدية، ويفترض غالبًا أن العناقيد محدبة أو كروية. وقد يؤدي ذلك إلى أداء ضعيف مع البيانات الممدودة أو ذات الشكل الهلالي. وعلى النقيض من ذلك، يتيح النهج القائم على الكثافة في DBSCAN تتبّع المنحنيات الطبيعية لتوزيع البيانات.
يكمن اختلاف مهم آخر في التهيئة. إذ يتطلب K-Means من المستخدم تحديد عدد العناقيد (k) مسبقًا، وهو ما قد يكون صعبًا من دون معرفة سابقة. أما DBSCAN فيستنتج عدد العناقيد طبيعيًا من كثافة البيانات. بالإضافة إلى ذلك، يتأثر K-Means بالقيم الشاذة لأنه يجبر كل نقطة على الانضمام إلى مجموعة، مما قد يؤدي إلى انحراف مراكز العناقيد. وتمنع قدرة DBSCAN على تصنيف النقاط على أنها ضوضاء شذوذات البيانات من تلويث العناقيد الصالحة، مما يضمن نتائج أنظف لمهام لاحقة مثل النمذجة التنبؤية.
التطبيقات الواقعية#
يُطبَّق DBSCAN على نطاق واسع في الصناعات التي تتطلب تحليلًا مكانيًا ومعالجة قوية للضوضاء.
- التحليل الجغرافي المكاني: في التخطيط الحضري والخدمات اللوجستية، يستخدم المحللون DBSCAN لتجميع إحداثيات GPS من أساطيل التوصيل أو خدمات مشاركة الرحلات. ومن خلال تحديد مناطق التسليم عالية الكثافة، تستطيع الشركات تحسين تخطيط المسارات ومواقع المستودعات. فعلى سبيل المثال، غالبًا ما يتضمن الذكاء الاصطناعي في الخدمات اللوجستية تجميع محطات التوصيل لتحسين الكفاءة.
- اكتشاف الحالات الشاذة القائم على الرؤية: في قطاع التصنيع، قد تكتشف أنظمة الفحص البصري المدعومة بنماذج مثل YOLO26 عيوبًا سطحية. ويمكن لـ DBSCAN تجميع إحداثيات هذه العيوب على خريطة المنتج. وقد تُستبعد الاكتشافات المعزولة باعتبارها ضوضاء مستشعر، في حين تشير العناقيد الكثيفة إلى عيب منهجي في التصنيع، مما يؤدي إلى إطلاق تنبيه من أجل فحص الجودة.
مثال برمجي: تجميع مراكز الاكتشافات#
في سير عمل الرؤية الحاسوبية، يستخدم المطورون غالبًا منصة Ultralytics لتدريب كاشفات الكائنات، ثم يعالجون النتائج لاحقًا. يوضح المثال التالي كيفية استخدام مكتبة sklearn لتجميع مراكز الكائنات المكتشفة. ويساعد ذلك على تجميع الاكتشافات المرتبطة مكانيًا، ومن المحتمل دمج عدة مربعات إحاطة للكائن نفسه أو تحديد مجموعات من الكائنات.
import numpy as np
from sklearn.cluster import DBSCAN
# Simulated centroids of objects detected by YOLO26
# [x, y] coordinates representing object locations
centroids = np.array(
[
[100, 100],
[102, 104],
[101, 102], # Cluster 1 (Dense group)
[200, 200],
[205, 202], # Cluster 2 (Another group)
[500, 500], # Noise (Outlier)
]
)
# Initialize DBSCAN with a radius (eps) of 10 and min_samples of 2
# This groups points close to each other
clustering = DBSCAN(eps=10, min_samples=2).fit(centroids)
# Labels: 0, 1 are cluster IDs; -1 represents noise
print(f"Cluster Labels: {clustering.labels_}")
# Output: [ 0 0 0 1 1 -1]التكامل مع التعلم العميق#
على الرغم من أن DBSCAN خوارزمية كلاسيكية، فإنه يتكامل بفاعلية مع التعلم العميق الحديث. فعلى سبيل المثال، يمكن تقليل الميزات عالية الأبعاد المستخرجة من شبكة عصبية تلافيفية (CNN) باستخدام تقنيات مثل PCA أو t-SNE الخاصة بـخفض الأبعاد قبل تطبيق DBSCAN. ويتيح هذا النهج الهجين تجميع بيانات الصور المعقدة استنادًا إلى التشابه الدلالي بدلًا من الموقع البِكسلي فحسب. ويُعد ذلك مفيدًا بوجه خاص في سيناريوهات التعلم غير الخاضع للإشراف التي تندر فيها بيانات التدريب الموسومة، مما يساعد الباحثين على تنظيم أرشيفات ضخمة من الصور غير الموسومة بكفاءة.









