Работа с данными в любой сфере (Еременко) - страница 99

Теперь (рис. 6.30) найдем ВКСК для алгоритма только с одним кластером

(k = 1):

Здесь наши ВКСК потребовали бы, чтобы мы сложили квадраты всех расстояний между точками данных и центроидом. Мы получим большое значение ВКСК, потому что, как видно, центроид находится довольно далеко от некоторых точек.

Увеличим число кластеров до двух (рис. 6.31).

Видно, что общее значение ВКСК будет меньше, чем вычисленное для одного кластера, поскольку расстояние между точками данных и центроидами соответствующих кластеров не так велико. Поэтому по мере увеличения числа кластеров значение ВКСК станет уменьшаться.

Каково же максимально возможное число таких кластеров? У нас может быть столько кластеров, сколько точек в массиве данных. Например, 50 точек данных в массиве данных позволяют создать до 50 кластеров. Если количество кластеров совпадает с количеством точек данных, ВКСК равно 0, потому что центроид каждого кластера будет точно там, где точка данных.

Теперь, когда мы знаем, что значение ВКСК обратно пропорционально числу кластеров, мы можем изучить скорость изменения и получить наше оптимальное число. Нанесем эти значения ВКСК на график (рис. 6.32).

Здесь мы видим, что после трех и пяти кластеров кривая ВКСК имеет излом. Чтобы определить оптимальное количество кластеров, все, что нам нужно сделать, – найти самый большой излом на графике; эта точка известна как «локоть». В случае выше было бы три кластера. Поэтому оптимальным количеством кластеров действительно будет К = 3.

Самое большое преимущество k-средних заключается в том, что их можно применять к массивам данных любого размера. Время исполнения растет линейно с увеличением количества точек данных. Это не относится к другим алгоритмам, таким как иерархическая кластеризация (см. ниже), где время исполнения пропорционально квадрату числа точек данных. Разница не будет заметна на 10 или даже 100 записях, но представьте себе кластеризацию в 10 млн точек. Возможно, одним из самых больших недостатков k-средних является то, что даже при использовании метода локтя может быть трудно найти оптимальное количество кластеров.

Иерархическая кластеризация

Как и в случае с k-средними, мы будем использовать иерархическую кластеризацию, когда хотим сегментировать клиентов, но не знаем, сколько должно получиться групп или как наши данные могут быть разделены на части. В то же время, несмотря на то что оба алгоритма преследуют одну и ту же цель – идентифицировать данные по кластерам, иерархическая кластеризация и k-средние основаны на принципиально разных концепциях, и поэтому результирующие кластеры, вероятно, будут разными. Это еще одна причина узнать об обоих методах.