1.اهداف یادگیری
پس از مطالعه این فصل، خواننده باید بتواند:
- جایگاه علمی الگوریتم Echidna را در میان روشهای خوشهبندی توضیح دهد.
- مسئلهای را که Echidna برای آن طراحی شده است، بهصورت دقیق صورتبندی کند.
- منطق استفاده از دادههای عددی، دستهای و سلسلهمراتبی را در یک چارچوب واحد درک کند.
- ساختار درخت ویژگی خوشهای (Cluster Feature Tree یا CF-Tree) را توضیح دهد.
- روند اجرایی الگوریتم را مرحلهبهمرحله تحلیل کند.
- رفتار الگوریتم را در شرایط مختلف داده، مانند نویز، ابعاد بالا و جریانهای بزرگ، ارزیابی کند.
- مزایا، محدودیتها و شرایط شکست الگوریتم را تشخیص دهد.
- Echidna را با روشهای نزدیک مانند BIRCH، خوشهبندی سلسلهمراتبی کلاسیک و روشهای مبتنی بر چگالی مقایسه کند.
- برای یک کاربرد آموزشی یا پژوهشی، سناریوی پیادهسازی و تنظیم پارامترهای اصلی را طراحی کند.
2.پیشنیازها
برای فهم این فصل، آشنایی مقدماتی با موارد زیر لازم است:
- جبر خطی پایه، بهویژه مفهوم بردار و فاصله
- آمار مقدماتی و معیارهای توصیفی
- مفاهیم پایه خوشهبندی و یادگیری بدون ناظر
- ساختارهای درختی و جستوجو در درخت
- ویژگیهای عددی، دستهای و سلسلهمراتبی
- مبانی مقدماتی شبکههای رایانهای، شامل IP، پورت و پروتکل
.
3. چکیده فصل
الگوریتم Echidna روشی تخصصی در دادهکاوی شبکه است که برای خوشهبندی کارای دادههای ترافیک با ویژگیهای ناهمگون طراحی شده است. مسئله اصلی که این الگوریتم به آن پاسخ میدهد، تحلیل جریانهای بزرگ ترافیک شبکه در شرایطی است که دادهها همزمان شامل ویژگیهای عددی، دستهای و سلسلهمراتبی باشند و نگهداری کامل آنها در حافظه یا پیمایش مکرر مجموعهداده از نظر محاسباتی پرهزینه باشد. ایده محوری Echidna آن است که با استفاده از یک ساختار درختی فشرده بر پایه CF-Tree، بتوان دادهها را در یک گذر پردازش کرد، خلاصهای ساختاری از آنها به دست آورد و خوشههای معنادار را برای کشف الگوها، روندها و ناهنجاریها استخراج کرد. اهمیت این الگوریتم در ترکیب سه ویژگی کلیدی است: مقیاسپذیری، پشتیبانی از دادههای سلسلهمراتبی و قابلیت استفاده در تحلیل ترافیک شبکه. در این فصل، ابتدا بستر علمی و مسئله عملی الگوریتم شرح داده میشود، سپس مفاهیم پایه و مبانی نظری-ریاضی آن ارائه میگردد. پس از آن، روند اجرا، شبهکد، مثالهای آموزشی، تحلیل رفتاری، پیچیدگی، تنظیم پارامترها، مقایسه با روشهای مشابه و مسیرهای توسعه بعدی بررسی میشود.
.
4. بستر علمی و مسئله عملی
تحلیل ترافیک شبکه یکی از مسائل کلاسیک و در عین حال همواره نو در دادهکاوی و امنیت سامانههای اطلاعاتی است. شبکههای رایانهای مدرن بهطور پیوسته حجم عظیمی از دادههای جریان (flow data)، رویداد (event data) و رکوردهای ارتباطی تولید میکنند. این دادهها برای مقاصدی چون مدیریت ظرفیت، شناسایی الگوهای مصرف، تشخیص رفتارهای غیرعادی، کشف حملات و تحلیل عملکرد سامانهها اهمیت اساسی دارند. با این حال، صرفِ در اختیار داشتن داده کافی نیست. مسئله اصلی، استخراج ساختارهای نهفته از مجموعهای بزرگ، ناهمگون و اغلب غیربرچسبخورده است.
در چنین زمینهای، خوشهبندی بهعنوان یکی از مهمترین ابزارهای یادگیری بدون ناظر مطرح میشود. هدف خوشهبندی آن است که اشیای مشابه در یک گروه قرار گیرند و اشیای نامشابه در گروههای متفاوت جای بگیرند. اما در دادههای ترافیک شبکه، چند چالش همزمان وجود دارد.
نخست آنکه ویژگیهای داده همگن نیستند. برای مثال، تعداد بایتها یک ویژگی عددی است، نوع پروتکل یک ویژگی دستهای است، و آدرس IP ذاتاً ساختاری سلسلهمراتبی دارد، زیرا میتوان آن را در سطوح مختلفی از تعمیم، مانند میزبان، زیرشبکه و شبکه اصلی، تفسیر کرد. دوم آنکه حجم داده بهقدری زیاد است که روشهای کلاسیک خوشهبندی، که چندین بار کل داده را پیمایش میکنند یا ماتریسهای کامل فاصله را میسازند، از نظر زمان و حافظه کارآمد نیستند. سوم آنکه در بسیاری از کاربردهای عملی، تصمیمگیرنده بیش از آنکه به یک تقسیمبندی دقیق و ایستا نیاز داشته باشد، به خلاصهسازی تدریجی، کشف الگوهای غالب و شناسایی موارد غیرعادی علاقهمند است.
الگوریتم Echidna دقیقاً در پاسخ به این خلأ شکل گرفته است. این الگوریتم در نقطه تلاقی سه نیاز قرار دارد: نیاز به خوشهبندی مقیاسپذیر، نیاز به پشتیبانی از ویژگیهای چندنوعی، و نیاز به استفاده از ساختار سلسلهمراتبی نهفته در برخی ویژگیها. از منظر منظومه علمی، Echidna را میتوان در مرز میان خوشهبندی سلسلهمراتبی، خوشهبندی افزایشی (incremental clustering) و دادهکاوی شبکه قرار داد. این الگوریتم نه یک مدل احتمالاتی کامل مانند مخلوطهای گاوسی است، نه یک روش مبتنی بر چگالی مانند DBSCAN، و نه یک الگوریتم خوشهبندی بخشبندیمحور مانند K-means. در عوض، رویکرد آن بر ساختن یک خلاصه درختی از داده است که در آن هر رکورد بهمحض ورود، در مناسبترین محل قرار میگیرد.

.
صورت کلی مسئلهای که Echidna حل میکند را میتوان چنین بیان کرد:
مجموعهای از رکوردهای ترافیک شبکه در اختیار داریم که هر رکورد با یک بردار ویژگی توصیف میشود. برخی ویژگیها عددیاند، برخی دستهای، و برخی دارای رابطه سلسلهمراتبی. هدف آن است که بدون فرض وجود برچسب کلاس، این رکوردها بهصورت تدریجی در ساختاری خوشهای سازمان یابند، بهطوری که هم شباهت درون خوشهها بالا و هم تفاوت بین خوشهها معنادار باشد. در این فرآیند، الگوریتم باید از نظر محاسباتی سبک باشد، حافظه را بهطور کنترلشده مصرف کند و امکان استخراج خلاصههای معنادار را فراهم سازد.
ورودی Echidna معمولاً رکوردهایی از جنس داده جریان شبکه است. یک قالب نمونه برای هر رکورد را میتوان چنین نوشت:
⟨SrcIP , DstIP , Protocol , SrcPort , DstPort , bytes⟩
در اینجا، SrcIP و DstIP ویژگیهای سلسلهمراتبی، Protocol و پورتها ویژگیهای دستهای، و bytes یک ویژگی عددی است. خروجی الگوریتم، یک ساختار درختی از خوشهها و زیرخوشههاست که میتوان از آن برای خلاصهسازی، استخراج الگو و تحلیل ناهنجاری استفاده کرد.
فرضهای کلی مسئله در Echidna را میتوان به این صورت خلاصه کرد:
نخست، دادهها را میتوان بهصورت ترتیبی پردازش کرد. دوم، شباهت بین دو رکورد را میتوان با ترکیبی از فاصلههای مناسب برای هر نوع ویژگی تعریف کرد. سوم، ساختار خوشهها را میتوان در قالب یک درخت فشرده نگهداری کرد، بدون آنکه نیاز باشد کل دادهها در حافظه باقی بمانند. این فرضها، همزمان، دامنه قوت و مرز کاربرد الگوریتم را تعیین میکنند.
.
5. مفاهیم پایه و تعاریف ضروری
در این فصل از چند مفهوم کلیدی استفاده میشود که تعریف روشن آنها برای فهم مباحث بعدی ضروری است.
- خوشهبندی بدون ناظر
خوشهبندی بدون ناظر (Unsupervised Clustering) فرایندی است که در آن دادههای بدون برچسب به گروههایی تقسیم میشوند، بهگونهای که اعضای هر گروه از نظر یک معیار شباهت، به هم نزدیکتر از اعضای گروههای دیگر باشند.
- خوشهبندی سلسلهمراتبی
در خوشهبندی سلسلهمراتبی (Hierarchical Clustering)، خوشهها در چند سطح از دانهبندی (granularity) سازمان مییابند. خروجی میتواند بهصورت یک درخت یا ساختار تو در تو باشد که از خوشههای کلی به خوشههای جزئیتر میرسد.
- خوشهبندی افزایشی
خوشهبندی افزایشی (Incremental Clustering) به روشهایی گفته میشود که دادهها را بهصورت تدریجی و در حال ورود پردازش میکنند و با هر نمونه جدید، ساختار خوشهها را بهروزرسانی میکنند.
- دادههای ترکیبی
دادههای ترکیبی (Mixed-Type Data) دادههایی هستند که شامل بیش از یک نوع ویژگی باشند؛ مانند ویژگی عددی، دستهای، ترتیبی یا سلسلهمراتبی.
- ویژگی سلسلهمراتبی
ویژگی سلسلهمراتبی (Hierarchical Attribute) ویژگیای است که مقادیر آن در یک ساختار درختی یا سطحبندیشده قرار میگیرند. آدرس IP نمونه کلاسیک چنین ویژگیای است، زیرا سطوح مختلفی از تعمیم شبکه را بازنمایی میکند.
- درخت ویژگی خوشهای
CF-Tree مخفف Cluster Feature Tree است. این درخت، خلاصهای فشرده از داده را در قالب گرهها و زیرگرهها نگهداری میکند. هر گره حاوی اطلاعات آماری فشردهای درباره بخشی از دادههاست.
- آستانه شعاع
آستانه شعاع یا Threshold که در این فصل با T نشان داده میشود، حدی است که تعیین میکند افزودن یک رکورد جدید به یک خوشه مجاز است یا خیر. اگر افزودن رکورد موجب شود پراکندگی خوشه بیش از حد مجاز شود، خوشه باید بازآرایی گردد یا شاخه جدیدی ایجاد شود.
نمادهای اصلی
برای یک خوشه C و مجموعه اعضای آن، از نمادهای زیر استفاده میکنیم:
- N: تعداد عناصر خوشه
- μ: مرکز یا میانگین خوشه
- r(C): شعاع خوشه
- :d(x , C) فاصله بین رکورد x و خوشه C
- T: آستانه پراکندگی یا شعاع
- B: ظرفیت انشعاب یا حداکثر تعداد فرزندان یک گره در درخت
.
6. ایده محوری و مبانی نظری-ریاضی
6.1 شهود علمی الگوریتم
ایده اصلی Echidna از یک مشاهده ساده اما مهم آغاز میشود: در تحلیل ترافیک شبکه، اغلب نیازی نداریم که همه دادهها را بهصورت خام نگهداری کنیم؛ بلکه کافی است خلاصهای ساختاریافته از آنها داشته باشیم که بتواند الگوهای اصلی را نشان دهد. اگر هر رکورد شبکه را مستقل و جداگانه ذخیره کنیم، هزینه حافظه بهسرعت افزایش مییابد. اگر بخواهیم برای هر رکورد، فاصله آن را با همه رکوردهای قبلی محاسبه کنیم، هزینه زمانی نیز غیرعملی میشود. بنابراین راهحل مناسب آن است که دادهها را در قالب خوشههای فشرده نمایش دهیم و با ورود هر رکورد جدید، آن را تنها نسبت به همین خلاصهها ارزیابی کنیم.
شهود مرکزی Echidna این است که یک درخت فشرده از خوشهها میتواند همان نقشی را ایفا کند که درخت نمایه در پایگاه داده انجام میدهد: دسترسی سریع، فشردهسازی اطلاعات و امکان بهروزرسانی پویا. هر رکورد جدید از ریشه درخت وارد میشود، در هر سطح نزدیکترین شاخه را انتخاب میکند، و در نهایت یا در یک خوشه موجود جذب میشود یا موجب شکافتن یک گره و ایجاد ساختار جدید میگردد. در نتیجه، درخت بهتدریج تصویری سلسلهمراتبی از ساختار دادهها میسازد.
6.2 پیوند با BIRCH
Echidna از نظر مفهومی به الگوریتم BIRCH نزدیک است. BIRCH نیز از CF-Tree برای خلاصهسازی دادههای بزرگ استفاده میکند. اما تفاوت مهم در Echidna آن است که برای ویژگیهای ترکیبی و سلسلهمراتبی طراحی شده است. BIRCH در صورتبندی کلاسیک خود بیشتر برای دادههای عددی مناسب است، در حالی که Echidna فاصله را بهگونهای تعریف میکند که بتواند انواع مختلف ویژگیها را در یک چارچوب مشترک لحاظ کند.
6.3 نمایش خوشه با ویژگی خوشهای

هر خوشه در یک ساختار آماری فشرده نمایش داده میشود. در سادهترین حالت برای ویژگیهای عددی، این نمایش را میتوان با سهتایی زیر نوشت:

که در آن:

برای ویژگیهای عددی، این خلاصه امکان محاسبه مرکز و برخی معیارهای پراکندگی را بدون نگهداری تکتک دادهها فراهم میکند.
مرکز خوشه از رابطه زیر به دست میآید:

برای دادههای ترکیبی، ایده مشابهی به کار میرود، اما خلاصهسازی برای هر نوع ویژگی متفاوت است. برای ویژگیهای دستهای، به جای میانگین عددی، میتوان بردار فراوانی مقادیر را نگهداری کرد. برای ویژگیهای سلسلهمراتبی، خلاصهسازی باید رابطه تعمیم و اشتراک در ساختار درختی مقادیر را منعکس کند.
6.4 تعریف فاصله برای انواع مختلف ویژگیها

قدرت واقعی Echidna در تعریف یک معیار فاصله چندبخشی است. فرض کنید رکوردی به صورتx=(x (1)),x (2),…,x (m) ) داشته باشیم که هر مؤلفه ممکن است از نوع متفاوتی باشد. فاصله کل بین یک رکورد و یک خوشه را میتوان بهطور کلی چنین نوشت:

که در آن:
- m: تعداد ویژگیها
- :WJوزن ویژگی j
- dj: تابع فاصله مناسب برای نوع ویژگی j
- :CJ خلاصه خوشه روی ویژگی j
الف) فاصله برای ویژگی عددی
اگر ویژگی j عددی باشد، فاصله معمولاً بر حسب فاصله اقلیدسی از مرکز خوشه تعریف میشود:

یا در حالت چندبعدی:

ب) فاصله برای ویژگی دستهای
برای ویژگی دستهای، یک راه متداول آن است که فراوانی هر مقدار در خوشه ثبت شود و فاصله بر مبنای اختلاف توزیع تعریف گردد. در قالب ساده، میتوان از نمایش یکداغ (one-hot) و فاصله اقلیدسی یا معیارهای مشابه استفاده کرد. اگر LCP(a,b) احتمال یا فراوانی نرمالشده مقدار v در خوشه باشد، شهود فاصله این است که هرچه مقدار مشاهدهشده در خوشه رایجتر باشد، فاصله کمتر است.
ج) فاصله برای ویژگی سلسلهمراتبی
برای ویژگیهایی مانند IP، مقدارها در یک درخت تعمیم قرار دارند. فاصله میتواند بر اساس طول پیشوند مشترک یا عمق کمترین جد مشترک تعریف شود. اگر LCP(a,b) طول بیشینه پیشوند مشترک دو IP باشد، یک معیار ساده فاصله چنین است:

که در آن L طول کل آدرس است. هرچه اشتراک پیشوند بیشتر باشد، دو مقدار از نظر سلسلهمراتبی نزدیکترند.
6.5 نرمالسازی و همترازی مقیاسها
از آنجا که فاصلههای حاصل از انواع مختلف ویژگیها ممکن است در مقیاسهای متفاوت باشند، Echidna فرض میکند که باید آنها را به بازهای مشترک، معمولاً [0,1] ، نگاشت کرد. این کار از سلطه یک نوع ویژگی بر فاصله کلی جلوگیری میکند. در غیر این صورت، مثلاً یک ویژگی عددی با دامنه بزرگ میتواند نقش ویژگیهای دستهای و سلسلهمراتبی را تقریباً حذف کند.
6.6 معیار پذیرش در خوشه
هنگامی که رکورد جدید x به خوشه C اختصاص مییابد، باید بررسی شود که آیا پراکندگی خوشه پس از این الحاق هنوز در حد مجاز است یا نه. اگر شعاع خوشه را با r(C) نشان دهیم، شرط کلی پذیرش چنین است:

که در آن T آستانه مجاز است. اگر این شرط برقرار نباشد، رکورد نباید به آن خوشه اضافه شود و الگوریتم باید شاخه جدیدی ایجاد کند یا ساختار درخت را بازآرایی کند.
6.7 فرضیات پایه
الگوریتم بر چند فرض تکیه دارد:
- دادهها را میتوان بهصورت ترتیبی وارد سیستم کرد.
- برای هر نوع ویژگی، معیاری معنادار از فاصله یا ناهمانندی وجود دارد.
- خوشههای خوب را میتوان با خلاصههای فشرده نمایش داد.
- ساختار درختی، تقریب مناسبی از سازمان درونی دادهها ارائه میکند.
- کاربرد اصلی الگوریتم، کشف ساختار است، نه یادگیری نظارتشده یا پیشبینی برچسب.
این فرضیات برای درک حدود نظری الگوریتم مهماند. Echidna در مسئلههایی موفق است که در آنها ساختار شباهت را بتوان با معیارهای تعریفشده بهخوبی ثبت کرد و جریان داده بهصورت تدریجی قابل پردازش باشد.
.
7. روند اجرا و منطق تصمیمگیری
روند اجرای Echidna را میتوان بهصورت یک فرایند تدریجی و درختمحور در نظر گرفت. در این فرایند، هر رکورد ترافیک شبکه دقیقاً یک بار دیده میشود و همان بار نخست تعیین میشود که در کجای ساختار خوشهای قرار گیرد.

ورودیها
- جریان یا مجموعه رکوردهای داده
- تعریف فاصله برای هر نوع ویژگی
- آستانه شعاع T
- ظرفیت هر گره در CF-Tree
- قواعد خلاصهسازی برای ویژگیهای عددی، دستهای و سلسلهمراتبی
مرحله 1: مقداردهی اولیه
الگوریتم با یک درخت خالی یا درختی با ریشهای اولیه آغاز میشود. در این مرحله هیچ خوشه تثبیتشدهای وجود ندارد و نخستین چند رکورد، ساختار اولیه را شکل میدهند.
مرحله 2: ورود رکورد جدید
هر رکورد جدید از ریشه درخت وارد میشود. در هر سطح، الگوریتم فاصله رکورد را تا خلاصه هر فرزند محاسبه میکند و نزدیکترین شاخه را انتخاب میکند. این تصمیم محلی است، اما در مجموع مسیر قرارگیری رکورد را در ساختار کلی تعیین میکند.
مرحله 3: ارزیابی امکان جذب در خوشه
پس از رسیدن رکورد به یک گره برگ، الگوریتم بررسی میکند که آیا با افزودن رکورد به خوشه متناظر، معیار پراکندگی هنوز در محدوده مجاز باقی میماند یا خیر. اگر پاسخ مثبت باشد، رکورد به همان خوشه تخصیص مییابد و خلاصه آماری آن خوشه بهروزرسانی میشود.
مرحله 4: ایجاد خوشه جدید یا شکافتن گره
اگر جذب رکورد در هیچ خوشه موجودی مجاز نباشد، یک ورودی جدید در گره برگ ایجاد میشود. اگر گره ظرفیت لازم را نداشته باشد، عملیات شکافتن (split) انجام میشود. شکافتن میتواند بهصورت بازگشتی تا سطوح بالاتر درخت گسترش یابد، درست مانند سرریز درختهای جستوجوی متوازن.
مرحله 5: بهروزرسانی خلاصهها
پس از درج رکورد یا شکافتن گره، خلاصههای آماری در مسیر بازگشت از برگ به ریشه بهروز میشوند. این مرحله تضمین میکند که هر گره بازنمایی درستی از زیردرخت خود داشته باشد.
مرحله 6: خلاصهسازی و استخراج خوشههای مهم
پس از پردازش تعداد کافی از رکوردها، الگوریتم میتواند خوشههای مهم را از درخت استخراج کند. معیارهای استخراج ممکن است شامل تعداد اعضا، میانگین فاصله درون خوشه، بیشینه فاصله درون خوشه یا اهمیت کاربردی یک الگوی ترافیکی خاص باشد.
شرایط توقف
در نسخه استاندارد، الگوریتم تا پایان جریان یا مجموعه داده ادامه مییابد. بنابراین شرط توقف طبیعی آن، اتمام ورود دادهها است. در یک محیط برخط (online)، الگوریتم عملاً میتواند بدون توقف به اجرا ادامه دهد و در بازههای زمانی معین، از ساختار فعلی گزارش تهیه شود.
خروجیها
- CF-Tree نهایی
- مجموعهای از خوشهها یا زیرخوشههای معنادار
- خلاصههای آماری و ساختاری داده
- امکان استخراج الگوها و موارد غیرعادی
.
8. شبهکد استاندارد
Algorithm Echidna
Input:
D = {x1, x2, ..., xn} // رکوردهای ورودی
T // آستانه شعاع خوشه
B // ظرفیت هر گره در CF-Tree
distance(.) // تابع فاصله ترکیبی برای ویژگیها
Output:
CF-Tree // درخت نهایی خوشهها
Clusters // خوشههای استخراجشده
Procedure:
1. Initialize an empty CF-Tree with a root node
2. For each record x in D do:
3. current_node ← root
4. While current_node is not a leaf do:
5. Select child c* in current_node
such that distance(x, summary(c*)) is minimal
6. current_node ← c*
7. In the leaf node, find the closest cluster entry e*
according to distance(x, summary(e*))
8. If adding x to e* keeps the cluster radius ≤ T then
9. Update summary(e*) with x
10. Else
11. Create a new cluster entry for x in the leaf node
12. If leaf node overflows then
13. Split the leaf node
14. Propagate split upward if necessary
15. End If
16. End If
17. Update all summaries on the path from leaf to root
18. End For
19. Extract important clusters from CF-Tree
based on size, cohesion, and application criteria
20. Return CF-Tree and extracted Clusters
9. مثالهای آموزشی
9.1 مثال شهودی
فرض کنید مدیر یک مرکز داده میخواهد بداند چه نوع ترافیکهایی در شبکه او غالب هستند. او میلیونها رکورد در اختیار دارد، اما نمیتواند همه آنها را بهطور کامل در حافظه نگهداری کند. Echidna را میتوان شبیه یک مسئول بایگانی هوشمند تصور کرد که هر رکورد جدید را نگاه میکند و تصمیم میگیرد آن را در کدام پوشه قرار دهد. اگر پوشهای با ویژگیهای مشابه وجود داشته باشد، رکورد به همان پوشه افزوده میشود. پس اگر چنین پوشهای نباشد، پوشه جدید ساخته میشود. اگر تعداد پوشهها در یک قفسه زیاد شود، قفسه به دو بخش تقسیم میشود. پس از مدتی، کل بایگانی بهصورت یک ساختار درختی از پوشهها و زیرپوشهها سازمان مییابد. این همان شهود اصلی CF-Tree در Echidna است.
9.2 مثال عددی پایه: فقط با یک ویژگی عددی
برای سادهسازی، ابتدا تنها ویژگی bytes را در نظر میگیریم. فرض کنید رکوردهای زیر بهترتیب وارد میشوند:

آستانه شعاع را برابر T=15 فرض میکنیم.
- گام 1: ورود x1=100
درخت خالی است. بنابراین یک خوشه جدید تشکیل میشود:

مرکز خوشه:

- گام 2: ورود x2=110
فاصله تا خوشه C1 :

چون 10≤15، این رکورد به خوشه C1افزوده میشود:

- گام 3: ورود x3=105
فاصله تا مرکز خوشه:

- گام 3: ورود x3=105
فاصله تا مرکز خوشه:

- گام 4: ورود x4=300
فاصله تا C1 :

چون 195>15 ، این رکورد نمیتواند وارد C1 شود. بنابراین خوشه جدیدی تشکیل میشود:

تفسیر
در این مثال، Echidna توانست بدون بازخوانی دادههای قبلی، یک گروه متراکم از مقادیر نزدیک و یک گروه مجزا برای مقدار دورافتاده تشکیل دهد.
9.3 مثال عددی متوسط: ویژگی عددی و دستهای
اکنون دو ویژگی داریم:
- Protocol: دستهای
- bytes: عددی
سه رکورد زیر را در نظر بگیرید:

برای فاصله ترکیبی، فرض کنید:

که در آن:
- اگر پروتکل برابر باشد، dcat=0، وگرنه dcat=1
- برای ویژگی عددی، پس از نرمالسازی در بازه [0,1] اختلاف قدر مطلق محاسبه میشود
فرض کنید بازه bytes بین 100 و 200 باشد. در این صورت:

- فاصله بین x2,x1
پروتکل یکسان است، پس:

- فاصله بین x3,x1
پروتکل متفاوت است:

نتیجه
اگر آستانه فاصله برای جذب در خوشه را 0.30.30.3 بگیریم:
- به خوشه ملحق میشود.
- به دلیل تفاوت پروتکل، فاصله زیادی دارد و احتمالاً خوشه جداگانهای تشکیل میدهد.
تفسیر
این مثال نشان میدهد که Echidna صرفاً بر شباهت عددی تکیه نمیکند؛ بلکه تفاوت دستهای را نیز در تصمیمگیری لحاظ میکند.
9.4 مثال عددی پیشرفتهتر: ویژگی سلسلهمراتبی IP
سه آدرس IP زیر را در نظر بگیرید:
- a=192.168.1.10
- b=192.168.1.20
- c=10.0.0.5
فرض کنید فاصله سلسلهمراتبی بر اساس طول پیشوند مشترک تعریف شود. اگر طول کل آدرس را L=32 بیت فرض کنیم و برای سادگی بگوییم:
- a و b در 24 بیت اول مشترکاند
- a و c تقریباً اشتراک معناداری ندارند، مثلاً 0 بیت مشترک
آنگاه:

نتیجه
درخت خوشهبندی، آدرسهای a و b را بسیار نزدیکتر از a و c میبیند. این موضوع در تحلیل ترافیک مهم است، زیرا بستههایی از یک زیرشبکه معمولاً رفتار مشابهتری دارند.
تفسیر
در بسیاری از روشهای کلاسیک، IP یا بهعنوان رشته یا بهعنوان عدد خام دیده میشود، که هر دو تفسیر میتوانند ساختار ذاتی آن را از بین ببرند. مزیت Echidna در این است که سلسلهمراتبی بودن IP را در فاصله لحاظ میکند.
10. تحلیل رفتاری و تبیین علمی
رفتار Echidna را باید از منظر یک الگوریتم خلاصهساز و ساختاردهنده تحلیل کرد. این الگوریتم مستقیماً در پی برآورد توزیع احتمالی داده یا یافتن بهینه سراسری یک تابع هدف صریح نیست، بلکه با تصمیمهای محلی و تدریجی، یک تقریب درختی از ساختار کلی داده میسازد. این نکته، هم نقطه قوت آن است و هم منشأ برخی حساسیتهای رفتاری.
10.1 تحلیل هندسی و ساختاری
از نظر هندسی، Echidna خوشهها را بر حسب نزدیکی به خلاصههای موجود شکل میدهد. اما چون دادهها ممکن است مختلط باشند، این هندسه لزوماً اقلیدسی محض نیست. در واقع، فضای داده ترکیبی از چند هندسه مختلف است:
- فضای عددی
- فضای دستهای
- فضای سلسلهمراتبی
رفتار الگوریتم تابع این است که این فضاها با چه وزنی ترکیب شوند. اگر یکی از این اجزا بر دیگری غلبه کند، ساختار خوشهها به همان سمت متمایل میشود.
10.2 رفتار در داده کم
در دادههای کمحجم، مزیت مقیاسپذیری Echidna چندان برجسته نیست. در این شرایط، ساختار درختی ممکن است حتی نسبت به روشهای سادهتر، سربار مفهومی و پیادهسازی داشته باشد. با این حال، اگر داده کم اما از نظر نوع ویژگی پیچیده باشد، Echidna هنوز میتواند مفید باشد، زیرا ترکیب فاصلهها را بهتر از روشهای صرفاً عددی مدیریت میکند.
10.3 رفتار در داده زیاد
در دادههای بزرگ، مزیت الگوریتم روشنتر میشود. چون هر رکورد یک بار پردازش میشود و خلاصههای فشرده بهجای کل داده نگهداری میشوند، رشد زمان و حافظه کنترلشدهتر است. این ویژگی باعث میشود Echidna برای تحلیل جریانهای حجیم مناسب باشد.
10.4 رفتار در حضور نویز
در حضور نویز، عملکرد Echidna تا حد زیادی به تنظیم آستانه T وابسته است. اگر T بیش از حد بزرگ باشد، نویزها در خوشههای موجود جذب میشوند و مرز خوشهها را مخدوش میکنند. اگر T بیش از حد کوچک باشد، نویزها به خوشههای کوچک و فراوان تبدیل میشوند. بنابراین نویز میتواند هم باعث تورم خوشهای و هم خردشدگی ساختار شود.
10.5 رفتار در حضور داده پرت
دادههای پرت (outliers) معمولاً فاصله زیادی از خوشههای غالب دارند. در Echidna چنین نقاطی اغلب به صورت خوشههای کوچک جداگانه ظاهر میشوند. این رفتار از یک سو برای کشف ناهنجاری مفید است، اما از سوی دیگر ممکن است تعداد زیادی خوشه کماهمیت ایجاد کند. بنابراین وجود سازوکار پسپردازش برای استخراج خوشههای مهم اهمیت پیدا میکند.
10.6 رفتار در داده نامتوازن
اگر برخی الگوهای ترافیکی بسیار فراوان و برخی بسیار نادر باشند، الگوریتم تمایل دارد ساختار را حول الگوهای غالب شکل دهد. این رفتار طبیعی است، زیرا گرههای پرجمعیت خلاصههای پایدارتر و تأثیرگذارتر میسازند. در نتیجه، الگوهای نادر ممکن است یا در خوشههای بزرگتر جذب شوند یا بهصورت خوشههای کوچک ظاهر شوند. از این رو، برای تحلیل ناهنجاری باید علاوه بر اندازه خوشه، شاخصهای انسجام و فاصله نیز بررسی شوند.
10.7 رفتار در ابعاد بالا
در ابعاد بالا، مانند بسیاری از روشهای مبتنی بر فاصله، Echidna نیز با پدیده کاهش تمایز فاصلهها روبهرو میشود. اگر تعداد زیادی ویژگی وارد مدل شوند، بهویژه اگر برخی کماطلاع باشند، فاصله کلی میتواند قدرت تفکیک خود را از دست بدهد. این مسئله در دادههای شبکهای که ویژگیهای مهندسیشده فراوانی دارند، مهم است. بنابراین انتخاب ویژگی و وزندهی مناسب نقش کلیدی دارد.
10.8 رفتار در داده ناقص
در صورت وجود داده ناقص، رفتار الگوریتم به تعریف فاصله بستگی پیدا میکند. اگر برای مقادیر گمشده راهبرد مشخصی وجود نداشته باشد، فاصلهها نامعتبر میشوند. در کاربردهای واقعی، معمولاً لازم است یا مقادیر گمشده بهطور معقول برآورد شوند، یا فاصله بهصورت جزئی و با وزندهی مجدد محاسبه شود.
10.9 همبستگی ویژگیها
اگر ویژگیها بهشدت همبسته باشند، بهکارگیری ساده مجموع وزنی فاصلهها ممکن است یک نوع اطلاعات را چند بار وارد تصمیمگیری کند. برای مثال، در داده شبکه، برخی پورتها با برخی پروتکلها رابطه قوی دارند. اگر این همبستگی نادیده گرفته شود، ساختار خوشهای ممکن است از واقعیت دامنه فاصله بگیرد. این موضوع نشان میدهد که فاصله ترکیبی در Echidna، هرچند عملی و مؤثر است، همیشه از نظر آماری خنثی نیست.
.
11. تحلیل پیچیدگی و مقیاسپذیری
یکی از اهداف اصلی Echidna، ارائه روشی عملی برای خوشهبندی مجموعهدادههای بزرگ ترافیک شبکه است. بنابراین تحلیل پیچیدگی آن باید در پیوند مستقیم با ساختار درختیاش انجام شود.
11.1 پیچیدگی زمانی
اگر ارتفاع درخت را با h و تعداد میانگین فرزندان در هر گره را با B نشان دهیم، برای هر رکورد جدید، الگوریتم در هر سطح باید نزدیکترین فرزند را بیابد. بنابراین هزینه هر درج بهطور تقریبی متناسب با:

است. اگر B و h کنترلشده باشند، هزینه هر رکورد تقریباً ثابت یا بسیار نزدیک به ثابت باقی میماند. در نتیجه برای n رکورد:

به دست میآید. در عمل، با توجه به محدود بودن ظرفیت گرهها و فشردگی درخت، رفتار الگوریتم غالباً نزدیک به خطی نسبت به تعداد رکوردها است.
11.2 پیچیدگی حافظه
از آنجا که الگوریتم کل داده را نگهداری نمیکند و فقط خلاصههای CF را ذخیره میکند، پیچیدگی حافظه تابع تعداد گرهها و اندازه خلاصههاست، نه تابع مستقیم n. بهصورت شهودی میتوان گفت:

که ∣Tree∣ اندازه ساختار درختی است. اگر درخت متعادل و فشرده باقی بماند، مصرف حافظه بسیار کمتر از روشهایی خواهد بود که نیازمند ذخیره همه دادهها یا همه فاصلههای زوجی هستند.
11.3 هزینه آموزش
در Echidna، مفهوم «آموزش» به معنای کلاسیک یادگیری نظارتشده وجود ندارد. هزینه اصلی همان ساخت تدریجی درخت است. این هزینه با ورود دادهها پرداخت میشود و نیازی به مرحله آموزش جداگانه و سپس پیشبینی نیست.
11.4 هزینه پیشبینی یا تخصیص
اگر بخواهیم رکورد جدیدی را به خوشههای موجود نسبت دهیم، همان فرایند پیمایش درخت انجام میشود. بنابراین هزینه تخصیص رکورد جدید نیز در همان مرتبه هزینه درج قرار میگیرد.
11.5 مقیاسپذیری
مزیت اصلی Echidna در مقیاسپذیری آن است. این الگوریتم برای محیطهایی مناسب است که در آنها:
- حجم داده بسیار زیاد است،
- داده بهصورت جریان وارد میشود،
- و نگهداری همه نمونهها عملی نیست.
در مقابل، روشهایی مانند خوشهبندی سلسلهمراتبی تجمیعی کلاسیک، که نیازمند محاسبه ماتریس فاصله کامل هستند، معمولاً در مقیاسهای بزرگ مناسب نیستند.
11.6 ملاحظات عملی مقیاسپذیری
مقیاسپذیری Echidna مطلق نیست و به چند عامل وابسته است:
- کیفیت تعریف فاصله
- تنظیم آستانه T
- ظرفیت گرهها
- میزان نویز و تنوع داده
اگر داده بسیار پراکنده باشد یا آستانه بهگونهای تنظیم شود که خوشههای فراوانی ساخته شوند، اندازه درخت رشد میکند و مزیت حافظهای کاهش مییابد. بنابراین مقیاسپذیری نتیجه تعامل میان طراحی الگوریتم و تنظیم مناسب پارامترهاست.
.
12. ابرپارامترها و تنظیم
12.1 آستانه شعاع T
مهمترین ابرپارامتر Echidna آستانه T است. این پارامتر تعیین میکند که یک رکورد جدید تا چه حد میتواند از ساختار فعلی خوشه فاصله داشته باشد و همچنان در آن جذب شود.
- T کوچک: خوشههای زیاد، فشرده و جزئیتر
- T بزرگ: خوشههای کمتر، گستردهتر و درشتتر
انتخاب T باید با توجه به هدف تحلیل انجام شود. برای کشف ناهنجاری، مقادیر کوچکتر اغلب مفیدترند، زیرا رفتارهای غیرعادی سریعتر از خوشههای غالب جدا میشوند. برای خلاصهسازی کلان، مقادیر بزرگتر میتوانند مناسبتر باشند.
12.2 ظرفیت گره B
این پارامتر حداکثر تعداد فرزندان یک گره را تعیین میکند. اگر B کوچک باشد، درخت عمیقتر و splitها بیشتر میشود. اگر B بزرگ باشد، درخت پهنتر میشود و هزینه جستوجو در هر سطح افزایش مییابد. بنابراین B یک پارامتر سازش میان عمق و پهنای درخت است.
12.3 وزن ویژگیها
در فاصله ترکیبی، وزن ویژگیها تعیینکننده سهم هر نوع اطلاعات در ساخت خوشههاست. اگر هدف اصلی کشف الگوهای مبتنی بر زیرشبکه باشد، میتوان وزن ویژگیهای IP را بیشتر کرد. اگر حجم ترافیک مهمتر باشد، وزن ویژگی عددی bytes باید افزایش یابد.
12.4 راهبردهای تنظیم
برای تنظیم پارامترها میتوان از راهبردهای زیر استفاده کرد:
- تنظیم دامنهمحور: بر اساس دانش متخصص شبکه
- تحلیل حساسیت: اجرای الگوریتم با مقادیر مختلف و مقایسه ساختار خوشهها
- اعتبارسنجی داخلی خوشهبندی: استفاده از معیارهایی مانند انسجام و جدایی خوشهها
- هدفمحور: انتخاب تنظیمات بر حسب اینکه هدف، کشف ناهنجاری، خلاصهسازی یا بخشبندی رفتاری باشد
12.5 ملاحظات بهینهسازی
در عمل، تنظیم پارامترها باید با توجه به این نکته انجام شود که Echidna یک الگوریتم کاملاً دادهمحور و محلی است. پارامترهای نامناسب میتوانند ساختار خوشهای را بهشدت تغییر دهند. بنابراین توصیه میشود:
- ابتدا روی نمونهای از داده آزمایش انجام شود،
- سپس پارامترها تثبیت شوند،
- و در نهایت روی داده کامل اعمال گردند.
.
13. مزایا، محدودیتها و شرایط شکست
مزایا
- مزیت مفهومی: توانایی مدلسازی همزمان ویژگیهای عددی، دستهای و سلسلهمراتبی
- مزیت محاسباتی: پردازش یکگذره و مصرف حافظه پایین
- مزیت کاربردی: مناسب برای تحلیل ترافیک شبکه و دادههای جریانی
- مزیت ساختاری: تولید خروجی سلسلهمراتبی و قابل خلاصهسازی
- مزیت عملی: عدم نیاز به نگهداری کل داده در حافظه
- مزیت تحلیلی: قابلیت جداسازی الگوهای غالب از موارد غیرعادی
محدودیتها
- محدودیت نظری: تابع هدف سراسری صریح مانند برخی روشهای بهینهسازی ندارد
- محدودیت دادهای: شدیداً به کیفیت تعریف فاصله برای دادههای ترکیبی وابسته است
- محدودیت محاسباتی: در صورت تنظیم نامناسب پارامترها، اندازه درخت میتواند بهطور قابل توجهی رشد کند
- محدودیت تفسیری: تفسیر برخی خوشهها نیازمند دانش دامنه شبکه است
- محدودیت آموزشی: در کتابهای مرجع عمومی ML کمتر پوشش داده شده و بنابراین چارچوب استاندارد آموزشی گستردهای برای آن وجود ندارد
شرایط شکست یا عملکرد ضعیف
- زمانی که فاصله تعریفشده واقعاً شباهت دامنه را بازنمایی نکند
- زمانی که آستانه T بسیار کوچک یا بسیار بزرگ تنظیم شود
- در دادههای بسیار پُربعد با ویژگیهای کماطلاع و همبسته
- در محیطهایی که داده ناقص فراوان وجود دارد و راهبرد مدیریت آن روشن نیست
- در کاربردهایی که هدف، طبقهبندی نظارتشده یا پیشبینی دقیق برچسب است
- در مسئلههایی که ساختار داده ذاتاً سلسلهمراتبی یا خوشهپذیر نیست
.
14. کاربردها و موارد استفاده
الگوریتم Echidna بهطور خاص برای تحلیل دادههای شبکه طراحی شده است، اما ایدههای آن دامنه وسیعتری نیز دارند.
کاربردهای صنعتی
- تحلیل جریان ترافیک در مراکز داده
- پایش امنیت شبکه و کشف رفتارهای مشکوک
- تحلیل الگوهای ارتباطی در زیرساختهای بزرگ سازمانی
- خلاصهسازی ترافیک برای گزارشدهی مدیریتی
کاربردهای دانشگاهی
- آموزش خوشهبندی دادههای ترکیبی
- مطالعه روشهای incremental clustering
- پژوهش در دادهکاوی شبکه و تحلیل ناهنجاری
کاربردهای پژوهشی
- طراحی روشهای جدید برای دادههای mixed-type
- توسعه خوشهبندی برخط
- ترکیب با روشهای گرافی و یادگیری نمایش
انواع مسئله مناسب
- مسئلههایی با داده بزرگ و ناهمگون
- مسئلههایی که در آنها ساختار سلسلهمراتبی ویژگیها مهم است
- مسئلههایی که خلاصهسازی تدریجی داده از دقت نقطهای مهمتر است
.
15. مقایسه با الگوریتمهای مشابه
مقایسه تحلیلی
| الگوریتم | نوع روش | نوع داده مناسب | مقیاسپذیری | خروجی سلسلهمراتبی | پشتیبانی از mixed-type | نکته اصلی |
| Echidna | افزایشی، سلسلهمراتبی | عددی، دستهای، سلسلهمراتبی | بالا | بله | بله | مناسب برای ترافیک شبکه |
| BIRCH | افزایشی، درختی | عمدتاً عددی | بالا | بله | محدود | الهامبخش اصلی Echidna |
| K-means | بخشبندیمحور | عددی | بالا | خیر | خیر | ساده و سریع، ولی فقط برای داده عددی |
| HAC | سلسلهمراتبی کلاسیک | معمولاً عددی/فاصلهپذیر | پایین تا متوسط | بله | وابسته به فاصله | هزینه محاسباتی بالا |
| DBSCAN | مبتنی بر چگالی | عمدتاً عددی | متوسط | خیر | محدود | مناسب برای کشف نویز و خوشههای نامنظم |
جمعبندی مقایسه
Echidna زمانی مزیت دارد که:
- دادهها ناهمگون باشند،
- ساختار سلسلهمراتبی برخی ویژگیها مهم باشد،
- و مقیاسپذیری نسبت به روشهای کلاسیک ضرورت داشته باشد.
در مقابل، اگر داده صرفاً عددی و هدف صرفاً بخشبندی سریع باشد، K-means یا BIRCH میتوانند سادهتر و مناسبتر باشند.
.
16. گونهها، توسعههای جدید و نوآوریها
الگوریتم Echidna بهعنوان یک نام مستقل، مانند برخی خانوادههای بزرگ الگوریتمی، مجموعهای وسیع از واریانتهای استاندارد و تثبیتشده ندارد. با این حال، از منظر علمی میتوان توسعههای آن را در چهار مسیر فهم کرد.
16.1 گونههای کلاسیک مفهومی
- نسخههای مبتنی بر تنظیمهای مختلف آستانه T
- نسخههای با وزندهی متفاوت برای انواع ویژگی
- نسخههای متناسب با سناریوهای مختلف ترافیک شبکه
16.2 توسعههای تثبیتشده
- استفاده از ایدههای Echidna در چارچوبهای کلیتر خوشهبندی mixed-type
- بهبود معیارهای فاصله برای دادههای سلسلهمراتبی
- ادغام با روشهای خلاصهسازی و استخراج الگوی ترافیکی
16.3 نسخههای تخصصی
- استفاده در تحلیل ناهنجاری شبکه
- استفاده در تحلیل ترافیک سازمانی و شبکههای بزرگ
- انطباق با دادههای جریانمحور و پنجرههای زمانی
16.4 مسیرهای نوین و جهتگیریهای پس از 2015
پس از 2015، جریان اصلی پژوهش بیشتر به سمت روشهای زیر حرکت کرده است:
- خوشهبندی جریان داده با سازوکارهای انطباقپذیر
- یادگیری نمایش برای دادههای شبکه
- تحلیل گرافی و گراف عصبی برای ارتباطات شبکه
- روشهای explainable برای تحلیل امنیتی
از این رو، آینده مفهومی Echidna را میتوان در ادغام ایده خلاصهسازی درختی با نمایشهای آموختهشده جستوجو کرد. به بیان دیگر، اگر بخواهیم روح Echidna را در تحقیقات نوین ادامه دهیم، احتمالاً باید آن را با نمایشهای معنایی قویتر، فاصلههای تطبیقی و محیطهای برخط ترکیب کنیم.
.
17. جمعبندی، نکات کلیدی و سنجش یادگیری
جمعبندی فصل
Echidna الگوریتمی تخصصی و هدفمند برای خوشهبندی دادههای ترافیک شبکه است که در آن، سه نیاز اساسی بهطور همزمان پاسخ داده میشود: پشتیبانی از دادههای ناهمگون، پردازش مقیاسپذیر و استفاده از ساختار سلسلهمراتبی ویژگیها. این الگوریتم با تکیه بر CF-Tree، دادهها را در یک گذر پردازش میکند و بهجای ذخیره کامل آنها، خلاصههای فشردهای از خوشهها میسازد. اهمیت علمی آن در این است که نشان میدهد چگونه میتوان ساختارهای کلاسیک خوشهبندی را برای دادههای واقعی و پیچیده شبکه بازطراحی کرد. در عین حال، موفقیت عملی آن وابسته به تعریف مناسب فاصله، نرمالسازی، وزندهی ویژگیها و تنظیم پارامترهای اصلی است.
نکات کلیدی برای مرور سریع
- Echidna یک الگوریتم خوشهبندی بدون ناظر، افزایشی و سلسلهمراتبی است.
- کاربرد اصلی آن تحلیل ترافیک شبکه است.
- این الگوریتم از CF-Tree برای خلاصهسازی داده استفاده میکند.
- مزیت اصلی آن، پردازش یکگذره و مصرف حافظه پایین است.
- قدرت تمایز آن از روشهای نزدیک، در پشتیبانی از ویژگیهای عددی، دستهای و سلسلهمراتبی است.
- مهمترین پارامترهای آن، آستانه شعاع و ظرفیت گره هستند.
- این الگوریتم برای کشف الگو و ناهنجاری مناسب است، نه برای طبقهبندی نظارتشده.
سنجش یادگیری
پرسشهای مفهومی
- چرا تحلیل ترافیک شبکه به خوشهبندی دادههای mixed-type نیاز دارد؟
- تفاوت اصلی Echidna با BIRCH چیست؟
- چرا آدرس IP را باید بهصورت ویژگی سلسلهمراتبی در نظر گرفت؟
- نقش آستانه T در شکلگیری ساختار خوشهها چیست؟
- چرا Echidna را نمیتوان یک classifier دانست؟
تمرینهای محاسباتی و تحلیلی
- برای مجموعهای از 6 رکورد عددی، با یک آستانه مشخص، روند تشکیل خوشهها را بهصورت دستی محاسبه کنید.
- یک تابع فاصله ترکیبی برای ویژگیهای (Protocol,Port,bytes) طراحی کنید و رفتار آن را تحلیل نمایید.
- برای سه IP با پیشوندهای متفاوت، فاصله سلسلهمراتبی را محاسبه کنید.
- اثر تغییر T از مقدار کوچک به مقدار بزرگ را روی تعداد خوشهها بررسی کنید.
پروژه یا سناریوی پیشنهادی
یک مجموعهداده ساده از جریانهای شبکه تهیه کنید یا شبیهسازی نمایید. سپس:
- ویژگیهای عددی، دستهای و سلسلهمراتبی را تعریف کنید؛
- نسخهای ساده از Echidna را پیادهسازی کنید؛
- اثر تنظیمات مختلف T و وزن ویژگیها را مقایسه کنید؛
- و در پایان، خوشههای حاصل را از منظر کشف الگوهای رفتاری و ناهنجاری تحلیل نمایید.
18. منابع اصلی فصل
Mahmood, A. N., Leckie, C., & Udaya, P. (2006). Echidna: Efficient clustering of hierarchical data for network traffic analysis. In NETWORKING 2006 (pp. 1092–1098). Springer. https://doi.org/10.1007/11753810_92
Zhang, T., Ramakrishnan, R., & Livny, M. (1997). BIRCH: An efficient data clustering method for very large databases. ACM SIGMOD Record, 25(2), 103–114. https://doi.org/10.1145/235968.233324
Han, J., Kamber, M., & Pei, J. (2012). Data mining: Concepts and techniques (3rd ed.). Morgan Kaufmann.
Tan, P.-N., Steinbach, M., & Kumar, V. (2019). Introduction to data mining (2nd ed.). Pearson.
Aggarwal, C. C. (2015). Data mining: The textbook. Springer.
Kaufman, L., & Rousseeuw, P. J. (1990). Finding groups in data: An introduction to cluster analysis. Wiley.
Jain, A. K. (2010). Data clustering: 50 years beyond K-means. Pattern Recognition Letters, 31(8), 651–666. https://doi.org/10.1016/j.patrec.2009.09.011
Xu, R., & Wunsch, D. (2005). Survey of clustering algorithms. IEEE Transactions on Neural Networks, 16(3), 645–678. https://doi.org/10.1109/TNN.2005.845141
Rokach, L., & Maimon, O. (2005). Clustering methods. In O. Maimon & L. Rokach (Eds.), Data mining and knowledge discovery handbook (pp. 321–352). Springer.
Murphy, K. P. (2012). Machine learning: A probabilistic perspective. MIT Press.
Alpaydin, E. (2020). Introduction to machine learning (4th ed.). MIT Press.
Hastie, T., Tibshirani, R., & Friedman, J. (2009). The elements of statistical learning (2nd ed.). Springer.
Duda, R. O., Hart, P. E., & Stork, D. G. (2001). Pattern classification (2nd ed.). Wiley.
Scikit-learn developers. (2024). Clustering. Scikit-learn User Guide. https://scikit-learn.org/stable/modules/clustering.html
Ester, M., Kriegel, H.-P., Sander, J., & Xu, X. (1996). A density-based algorithm for discovering clusters in large spatial databases with noise. In KDD-96 (pp. 226–231).
Maimon, O., & Rokach, L. (Eds.). (2010). Data mining and knowledge discovery handbook (2nd ed.). Springer.
Aggarwal, C. C., & Reddy, C. K. (Eds.). (2014). Data clustering: Algorithms and applications. CRC Press.
Leskovec, J., Rajaraman, A., & Ullman, J. D. (2020). Mining of massive datasets (3rd ed.). Cambridge University Press.



