راه
۴ کیو· سختپیشرفتهPYTHON۴ ثانیه · ۲۵۶ مگابایت

DBSCAN

تابع dbscan(X, eps, min_samples) خوشه‌بندی چگالی‌محور DBSCAN را اجرا می‌کند و برای هر نقطه یک برچسب برمی‌گرداند:

  1. همسایه‌های نقطه‌ی ii: همه‌ی نقطه‌هایی (از جمله خود ii) که فاصله‌ی اقلیدسی‌شان از ii حداکثر eps است.
  2. نقطه‌ی ii هسته است اگر دست‌کم min_samples همسایه داشته باشد.
  3. همه‌ی برچسب‌ها −1-1 (نویز). شماره‌ی خوشه از صفر شروع می‌شود.
  4. برای i=0,1,…,n−1i = 0, 1, \dots, n - 1 به ترتیب: اگر ii برچسب دارد یا هسته نیست، رد شو. وگرنه یک خوشه‌ی تازه بساز: ii را برچسب بزن و از آن شروع کن؛ هر نقطه‌ی هستهی این خوشه، همه‌ی همسایه‌های بی‌برچسبش را به همین خوشه اضافه می‌کند. همسایه‌هایی که خودشان هسته‌اند، به نوبه‌ی خود گسترش می‌دهند؛ همسایه‌هایی که هسته نیستند (مرزی) برچسب می‌گیرند ولی گسترش نمی‌دهند. وقتی دیگر چیزی اضافه نشد، شماره‌ی خوشه یکی بالا می‌رود.

نقطه‌ای که در پایان برچسب ندارد، نویز است (−1-1).

نمونه‌ها

ورودی نمونه ۱
[[[0.18, -0.0], [4.73, 3.86], [0.01, 0.46], [5.52, 4.73], [1.11, 0.97], [4.89, 4.92], [0.48, -0.13], [5.11, 5.61], [0.59, -0.26], [4.77, 4.73], [-1.07, -3.0], [-0.4, 1.42]], 1.0, 3]
خروجی نمونه ۱
[0.0, 1.0, 0.0, 1.0, -1.0, 1.0, 0.0, 1.0, 0.0, 1.0, -1.0, -1.0]
ورودی نمونه ۲
[[[-1.16, -1.81], [5.69, 5.94], [0.8, -0.26], [4.96, 4.83], [0.82, 0.52], [5.04, 5.42], [0.82, 0.22], [4.35, 4.96], [-0.26, -0.96], [3.77, 5.09], [-0.63, 0.25], [4.52, 5.48], [0.53, 0.23], [4.28, 3.78], [1.29, -0.03], [6.23, 4.86], [2.9, -0.19], [-2.19, 5.55], [6.76, 3.58]], 1.2, 4]
خروجی نمونه ۲
[-1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, -1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, -1.0, -1.0, -1.0, -1.0]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود