Кластерный анализ: исправление наблюдений с отрицательной шириной силуэта

Я пытаюсь найти шаблоны в наборе данных (~ 1000 серий), содержащем данные временных рядов с годовой частотой. Некоторые образцы данных:

         V1     V2     V3     V4     V5     V6     V7     V8     V9    V10    V11    V12    V13    V14    V15    V16    V17    V18
1 1.0000 0.6154 0.0000 0.0769 0.0000 0.0000 0.0000 0.2308 0.6923 0.6923 0.6923 0.6923 0.6923 0.3846 0.3846 0.0769 0.0769 0.0769
2 1.0000 0.8354 0.5274 0.4451 0.4604 0.4634 0.4543 0.2195 0.0976 0.1159 0.0793 0.0000 0.0152 0.0305 0.0305 0.0335 0.0915 0.0152
3 0.9524 0.8571 0.2381 0.1429 0.6667 1.0000 1.0000 0.1905 0.4286 0.3810 0.3810 0.5714 0.0952 0.1905 0.0000 0.0000 0.0952 0.8571
4 0.9200 1.0000 0.6000 0.4000 0.0000 0.4200 0.3600 0.4400 0.4200 0.3200 0.4800 0.6400 0.5200 0.5200 0.5200 0.5400 0.4800 0.7800
5 0.8372 1.0000 0.7209 0.7907 0.6279 0.6047 0.6047 0.6279 0.5349 0.4419 0.4419 0.2791 0.4419 0.2326 0.1860 0.1860 0.1860 0.0000
6 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.6154 0.6154 0.6154 0.6154 1.0000

Обратите внимание, что данные нормализованы, потому что я хочу сгруппировать таймсерии на основе похожих форм. Я предположил, что кластерный анализ будет подходящим анализом, и попытался сгруппировать временные ряды с помощью следующей функции:

a ‹- factoextra :: eclust (Normalized_df, FUNcluster =" kmeans ", nstart = 25, k.max = 5)

Однако у меня есть пара наблюдений с отрицательной шириной силуэта. Есть ли способ исправить эти назначения? Например, если значение sil_width отрицательное, то поместите наблюдение в соседний кластер. Пример можно найти ниже.

cluster neighbor    sil_width
    1       1        3 -0.001258464
    2       1        3 -0.004661913
    3       1        4 -0.010083277
    4       1        4 -0.012569472
    5       1        3 -0.012793575
    6       1        4 -0.013089868
    7       1        5 -0.013346165

Мотивация состоит в том, чтобы исправить эти наблюдения, чтобы увеличить среднюю ширину силуэта кластеров.

Любая помощь приветствуется!


person Liri    schedule 17.07.2018    source источник


Ответы (1)


Перемещение точек с отрицательным силуэтом в другой кластер, скорее всего, уменьшит силуэт других точек в этом кластере. не очевидно, как улучшить результаты, и а) лучшее решение может содержать отрицательные значения Silhouette, и б) может быть невозможно найти решение только с положительными ценности. И последнее, но не менее важное: c) это больше не будет результатом кластеризации k-средних - некоторые точки больше не будут присвоены ближайшему среднему.

Основная причина в том, что оценки в каждом кластере одинаковы. Перемещение одной точки в другой кластер меняет все их оценки.

person Has QUIT--Anony-Mousse    schedule 17.07.2018