بسیاری از سامانههای عملیاتی با اجبار کردن هر نقطه داده به عضویت در یک خوشه، حقیقت را از شما پنهان میکنند. اما DBSCAN (خوشهبندی فضایی مبتنی بر تراکم برای کاربردهای دارای نویز) با رد کردن بهینهسازی یک تابع زیان (Loss Function)، تراکم را به عنوان یک تعریف سختگیرانه میبیند که باید محاسبه شود، نه مدلی که باید آموزش ببیند.
اکثر متخصصان یادگیری ماشین عادت کردهاند به دنبال کمینه کردن چیزی باشند؛ مثلاً یک نرخ خطا یا تابع زیان. اما به نقل از راهنمای فنی dev.to، این الگوریتم متفاوت عمل میکند. DBSCAN آموزش نمیبیند، بلکه صرفاً نقاطی را شناسایی میکند که شرط تراکم خاصی را برآورده میکنند. در واقع این یک تعریف ریاضی است که محاسبه میشود، نه مدلی که یاد میگیرد.
برای کسانی که پیشینه مهندسی بکاند یا SRE دارند، این مسئله اساساً شبیه به یافتن مؤلفههای متصل (Connected Components) در یک گراف است. عملکرد آن شبیه به یک الگوریتم جستوجوی اول سطح (BFS) است که محلههای داده را پر میکند (Flood-fill). اگر نقطهای در شعاع مشخص، همسایگان کافی داشته باشد، «نقطه هسته» (Core Point) است؛ اگر نزدیک هسته باشد اما خودش همسایه کافی نداشته باشد، «نقطه مرزی» (Border Point) است و هر چیز دیگری «نویز» محسوب میشود.
همانطور که در تحلیلهای پیشین ما دربارهی امنیت و شناسایی الگوهای غیرعادی اشاره کردیم، تفکیک دقیق سیگنال از نویز در محیطهای عملیاتی حیاتی است.
شرطبندی روی تراکم
در حالی که کی-میانگین (K-Means) — مثل کسی که سعی میکند هر گروه را به شکل یک دایره کامل درآورد — فرض میکند خوشهها لزوماً کروی هستند و تعداد گروهها را از پیش میطلبد، DBSCAN شرط متفاوتی میبندد: اینکه یک آستانه تراکم جهانی برای کل مجموعه داده کار میکند. شما این حالت را با دو پارامتر تعریف میکنید:
- eps: حداکثر فاصله بین دو نمونه برای اینکه یکی در محله دیگری در نظر گرفته شود.
- minPts: تعداد نمونههای مورد نیاز در یک محله برای اینکه یک نقطه، «نقطه هسته» تلقی شود (با احتساب خودش).
این رویکرد اجازه میدهد خوشههایی با اشکال کاملاً نامنظم و دلخواه شناسایی شوند و تعداد خوشهها بهجای تعیین دستی، از دل ساختار تراکم بیرون بیاید. با این حال، یک نقطه شکست بحرانی وجود دارد: اگر دادههای شما همزمان خوشههای بسیار متراکم و بسیار پراکنده داشته باشند، یک آستانه جهانی پاسخگو نیست. برای مثال، نویز متراکم تیکتها از حسابهای بزرگ در مقابل الگوهای پراکنده اما معنادار از حسابهای کوچک. سختگیرانه کردن آستانه، ساختارهای پراکنده را به نویز تبدیل میکند و سهلگیرانه کردن آن، مناطق متراکم را به هم میچسباند.
برای دامنههایی که خوشهها در تراکمهای مختلف قرار دارند، HDBSCAN گزینه طبیعیتری است. این الگوریتم بهجای تحمیل یک eps جهانی، خوشهبندی را در سطوح مختلف تراکم بررسی میکند تا ساختارهای پایدار را انتخاب کند.
تله ابعاد
الگوریتمهای مبتنی بر فاصله با افزایش ابعاد دچار مشکل میشوند. در فضاهای با ابعاد بالا، معیارهای فاصله اطلاعات کمتری میدهند چون نقاط بهطور کلی از نظر فاصله شبیه به هم به نظر میرسند. در نهایت، مقدار eps دیگر نماینده محله فیزیکی مورد نظر مهندس نیست و منطق الگوریتم میشکند. این یک محدودیت بنیادی در خوشهبندیهای مبتنی بر فاصله است که برای حل آن به تکنیکهای خاص کاهش ابعاد نیاز است.
قدرت سطل نویز
یکی از بزرگترین مزایای عملیاتی DBSCAN، دستهبندی صریح نویز است. کی-میانگین هر نقطهای را، صرفنظر از میزان سازگاری، به زور به یک خوشه اختصاص میدهد. اما DBSCAN میتواند صادقانه گزارش دهد که یک نقطه به هیچکجا تعلق ندارد.
در دادههای عملیاتی (Ops Data)، این یک ویژگی است، نه یک باگ. اکثر رویدادها معمولی و بیاهمیت هستند. مهمتر از آن، نویز امروز میتواند خوشه فردا باشد. یک الگوی شکست جدید معمولاً با چند رویداد ایزوله شروع میشود و سپس به یک منطقه متراکم تبدیل میگردد. تبدیل سطل نویز به یک «لیست نظارتی» (Watchlist) به تیمها اجازه میدهد سیگنالهای اولیه تخریب سیستم را شکار کنند. اگر نویز را زباله بدانید، ممکن است اولین نشانههای یک حادثه (Incident) جدید را دور بریزید.
قطعیت و قابلیت اطمینان
الگوریتم DBSCAN برای دادهها و پارامترهای یکسان، نتایج یکسانی میدهد، اما به ترتیب ورود دادهها حساس است. یک نقطه مرزی که از دو خوشه مختلف قابل دسترسی باشد، به اولین خوشهای اختصاص مییابد که الگوریتم با آن برخورد کند. در حالی که عضویت نقاط هسته پایدار است، تخصیص نقاط مرزی میتواند با تغییر ترتیب ردیفها جابجا شود.
این موضوع یک توهم خطرناک ایجاد میکند: تکرارپذیری میتواند به جای قابلیت اطمینان جا بزند. چون الگوریتم میتواند هر بار دقیقاً همان جواب غلط را بدهد، نمیتوانید برای تشخیص مشکل به واریانس خروجی تکیه کنید. شما نمیتوانید این مورد را با واریانس آماری پایش کنید چون ممکن است هیچ واریانسی وجود نداشته باشد. در عوض، مهندسان باید پایش تغییرات توزیع ورودی (Input-drift monitoring) و بررسیهای دستی دورهای سطل نویز را پیاده کنند. شما به گاردریلهای فرآیندی نیاز دارید، نه گاردریلهای آماری.
پیادهسازی در محیط عملیاتی
وقتی بهینهساز وجود ندارد، انسان تبدیل به هوش سیستم میشود. هیچ تابع زیانی نیست که بین انتخاب پارامتر شما و خروجی فاصله بیندازد. پارامترهای eps و minPts، فضای ویژگی و معیار فاصله، تعریف میکنند که «متراکم» یعنی چه. مدل تصمیم نمیگیرد، بلکه تعریفی را که شما ست کردهاید اجرا میکند.
برای پیادهسازی مطمئن، نویسنده پیشنهاد میکند:
- انتخاب پارامتر: از نمودار k-distance برای هدایت انتخاب مقدار eps استفاده کنید.
- منطق کسبوکار: مقدار minPts را با آنچه در دنیای بیزنس واقعاً یک «الگو» محسوب میشود، تطبیق دهید.
- مستندسازی: دلیل انتخاب پارامترها را بنویسید. چون بهینهساز وجود ندارد، استدلال پشت پارامترها بخشی از مستندات مدل است.
- پایش: سطل نویز را بهطور منظم بررسی و تغییرات توزیع ورودی (Input Drift) را رصد کنید.
این روش برای کشف الگوهای تیکتها و حوادث (جایی که اشکال نامنظم هستند)، شناسایی نشت در ساعات کاری یا مصرف، و هر سناریویی که پاسخ «تعلق به هیچکجا» در آن یک پاسخ مشروع و مفید باشد، بسیار اثرگذار است.
اشتباهات رایج
از این سه خطای متداول در مصاحبهها یا محیط عملیاتی پرهیز کنید:
۱. سوتفاهم درباره تراکم: ادعای اینکه DBSCAN تراکم را «کشف» یا «پیدا» میکند. خیر، شما آستانه را از طریق eps و minPts تعریف میکنید.
۲. بزرگنمایی قطعیت: نامیدن آن به عنوان الگوریتمی کاملاً قطعی بدون ذکر استثنا. تخصیص نقاط مرزی به ترتیب دادهها وابسته است.
۳. اشتباه گرفتن تکرارپذیری با صحت: تصور اینکه خروجی ثابت، دلیلی بر درست بودن مدل است. یک مدل قطعی میتواند بهطور مداوم غلط باشد.
گام بعدی شما
- اگر از K-Means برای تحلیل لاگها استفاده میکنید، یک بار دادهها را با DBSCAN اجرا کنید تا ببینید چه مقدار از دادههایتان در واقع «نویز» بودهاند.
- برای انتخاب eps، نمودار k-distance را رسم کنید تا نقطه شکست (Elbow) تراکم را بیابید.
- سطل نویز مدل خود را به یک داشبورد هشدار متصل کنید تا ظهور خوشههای جدید در دادههای پرت را رصد کنید.
اما داستان سختافزاری پردازش این حجم از دادهها در ابعاد بالا حتی پیچیدهتر است — به تحلیل ما دربارهی بهینهسازی حافظه در محاسبات برداری مراجعه کنید.




گفتگو