DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
استكشف DBSCAN للتجميع القائم على الكثافة واكتشاف الشذوذ. تعلم كيف يحدد الأشكال العشوائية والضوضاء في مجموعات البيانات إلى جانب Ultralytics YOLO26.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) هو خوارزمية تعلُّم غير مُشرف عليها قوية تُستخدم لتحديد مجموعات متميزة داخل البيانات بناءً على الكثافة. بخلاف طرق التجميع التقليدية التي يفترض فيها وجود تجمعات كروية أو تتطلب عددًا مُحددًا مسبقًا من المجموعات، يقوم DBSCAN بتحديد مناطق ذات كثافة عالية يفصل بينها مناطق ذات كثافة منخفضة. تتيح له هذه القدرة اكتشاف تجمعات بأشكال وأحجام تعسفية، مما يجعله فعالاً للغاية في تحليل مجموعات البيانات الواقعية المعقدة حيث يكون الهيكل الأساسي غير معروف. من المزايا الرئيسية لهذه الخوارزمية قدرتها المضمنة على اكتشاف الشاذات، حيث تقوم تلقائيًا بتصنيف النقاط في مناطق الكثافة المنخفضة على أنها ضوضاء بدلاً من فرضها داخل تجمع.
المفاهيم والمعايير الأساسية#
تعمل الخوارزمية عن طريق تحديد محيط (منطقة مجاورة) حول كل نقطة بيانات وحساب عدد النقاط الأخرى التي تقع ضمن هذا النطاق. تتحكم معلمتان فائقتان أساسيتان في هذه العملية، مما يتطلب ضبط المعلمات الفائقة بعناية لتتناسب مع الخصائص المحددة للبيانات:
- Epsilon (eps): يحدد هذا المعيار نصف القطر الأقصى حول النقطة للبحث عن الجيران. وهو يحدد مسافة "إمكانية الوصول".
- الحد الأدنى للنقاط (minPts): يحدد هذا المعيار الحد الأدنى لعدد نقاط البيانات المطلوبة ضمن نصف قطر Epsilon لتشكيل منطقة كثيفة أو "نواة".
بناءً على هذه المعايير، يصنف DBSCAN كل نقطة في مجموعة البيانات إلى واحد من ثلاثة أنواع:
-
النقاط الأساسية (Core Points): النقاط التي تحتوي على
minPtsمن الجيران على الأقل ضمن نصف قطرeps. تشكل هذه النقاط الجزء الداخلي للتجمع. -
نقاط الحدود (Border Points): النقاط التي تقع ضمن نصف قطر
epsلنقطة أساسية ولكن لديها عدد أقل من الجيرانminPtsبالنسبة لها. تشكل هذه النقاط حواف التجمع. -
نقاط الضوضاء (Noise Points): النقاط التي ليست نقاطًا أساسية ولا نقاط حدودية. يتم التعامل مع هذه النقاط بفعالية كقيم متطرفة، وهو أمر مفيد لمهام مثل اكتشاف القيم المتطرفة.
مقارنة بين DBSCAN وتجميع K-Means#
على الرغم من أن كليهما أساسيان في التعلم الآلي (ML)، فإن DBSCAN يقدم مزايا مميزة مقارنة بـ تجميع K-Means في سيناريوهات محددة. تعتمد K-Means على النقاط المركزية (centroids) والمسافة الإقليدية، وغالبًا ما تفترض أن التجمعات محدبة أو كروية. يمكن أن يؤدي هذا إلى أداء ضعيف على البيانات المستطيلة أو على شكل هلال. في المقابل، يتيح نهج الكثافة الخاص بـ 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. يتيح هذا النهج الهجين تجميع بيانات الصور المعقدة بناءً على التشابه الدلالي بدلاً من مجرد موقع البكسل. هذا مفيد بشكل خاص في سيناريوهات التعلم غير المشرف عليه حيث تكون بيانات التدريب المسماة شحيحة، مما يساعد الباحثين على تنظيم أرشيفات هائلة من الصور غير المسماة بكفاءة.






