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






