Как пользоваться
- Введите точки: координаты каждой через пробел, а точки — через точку с запятой. Размерность любая, но у всех точек одинаковая; дробные координаты пишите с запятой: 1,5 2.
- Введите по одной метке кластера на точку в том же порядке — буквы, числа или слова.
- Смотрите коэффициент силуэта, его интерпретацию, среднее по кластерам и значения первых 20 точек.
Как это работает
Для каждой точки i при евклидовом расстоянии:
- a(i) — среднее расстояние от i до остальных точек её кластера;
- b(i) — для каждого другого кластера среднее расстояние от i до его точек, из них наименьшее;
- s(i) = (b(i) − a(i)) ÷ max(a(i), b(i)), а если точка одна в кластере, s(i) = 0.
Коэффициент силуэта — среднее s(i) по всем точкам, как в silhouette_score из scikit-learn.
Пример
Шесть точек в двух группах: A = (1, 2), (2, 1), (2, 3) и B = (8, 8), (9, 7), (9, 9).
Для точки (1, 2):
- a = среднее расстояние до (2, 1) и (2, 3) = (√2 + √2) ÷ 2 = 1,4142;
- b = среднее расстояние до кластера B = (√85 + √89 + √113) ÷ 3 = 9,7612;
- s = (9,7612 − 1,4142) ÷ 9,7612 = 0,8551.
Так же для всех точек: среднее по кластерам A: 0,8249; B: 0,8262, коэффициент силуэта 0,8256 — сильная структура.
Советы
- Сначала масштабируйте признаки. В расстоянии смешиваются все координаты, и признак в тысячах заглушит признак в долях.
- Силуэт любит круглые кластеры одинакового размера. Для вытянутых или вложенных форм, которые находит DBSCAN, низкий коэффициент не всегда означает плохую кластеризацию.
- Расстояние между двумя точками напрямую покажет калькулятор манхэттенского и евклидова расстояния.