Чтобы измерить различия в кластере, вам нужно придумать какую-то метрику.Для категориальных данных одним из возможных способов расчета различий может быть следующий:
d(i, j) = (p - m) / p
, где:
p
- количество классов / категорий в ваших данных m
- это количество совпадений между выборками i
и j
Например, если ваши данные имеют 3 категориальных признака и выборки, i
и j
выглядят следующим образом:
Feature1 Feature2 Feature3
i x y z
j x w z
Итак, у нас есть 3 категориальных признака, поэтому p=3
и из этих трех два признака имеют одинаковые значения для выборок i
и j
, значит m=2
.Поэтому
d(i,j) = (3 - 2) / 3
d(i,j) = 0.33
Другая альтернатива - преобразовать ваши категориальные переменные в функции с горячим кодированием и затем вычислить jaccard simmilarity .
Таким образом, чтобы измерить различие в кластере, вы можете рассчитать попарно различие между каждым объектом в вашем кластере, а затем взять его среднее значение.
На основе этих показателей вы также можете использовать Silhoutte Score для оценки качества вашей кластеризации (но вам нужно взять его с небольшим количеством соли, иногда оценка может быть хорошей, в то время как кластеризация может не соответствовать вашим ожиданиям).