Кластерный анализ модели. Зачем вообще это всё

У нас много показателей (фич/факторов/индикторов). Мы хотим:

  1. понять, какие из них похожи и дублируют друг друга;
  2. выбрать минимальный, но информативный набор для прогноза;
  3. объяснить, почему оставили/убрали каждый показатель.

Для этого мы смотрим на три независимые проекции/кластеризации - PCA, UMAP и t-SNE - и собираем сводную оценку важности.


Варианты кластеризации: зачем три и чем отличаются

1) PCA (Principal Component Analysis)

  • Что делает: раскладывает признаки на «скрытые факторы» (главные компоненты).
  • Как читать: если у нескольких признаков одинаковый pca_component, они “живут” в одном факторе → вероятно, частично дублируют друг друга. Все главные компоненты нумеруются с 1 и далее. Самый сильный компонент с номером 1, самый слабый (маловлияющий) с самым большим номером.
  • Плюсы: быстро, стабильно, хорошо ловит линейные связи.
  • Минусы: может не увидеть сложные нелинейные отношения.

2) UMAP

  • Что делает: раскладывает признаки по похожести их временных профилей, учитывая нелинейные связи.
  • Как читать: близкие точки = похожие траектории во времени, кластеры - группы “одинаково ведущих себя” признаков.
  • Особая метка: umap_cluster_id = -1 - это «шум»: алгоритм не смог уверенно отнести показатель ни к одному кластеру (редкий/особенный).

3) t-SNE

  • Что делает: ещё один «нелинейный» взгляд на похожесть профилей.
  • Как читать: как у UMAP. Хорош для визуального выявления «островков» похожих показателей.
  • Примечание: на очень маленьком числе признаков t-SNE может вести себя капризно.

Почему три? Если один метод ошибётся или не заметит структуру, два других подстрахуют. Совпадение групп во всех трёх - сильный сигнал.


Что означают колонки/метрики

Идентификаторы и описания

  • indr_id - ID показателя.
  • alias - человекочитаемый код показателя, указывается на элементах графиков.
  • name - имя/описание покзателя, показывается в тултипе.

PCA-метрики

  • pca_component - номер фактора, где показатель «сильнее всего» проявляется. Признаки с одинаковым номером часто дублируют друг друга. Чем меньше номер, тем сильнее влияния признака на всю модель.
  • pca_loading - сила и направление связи с этим фактором. Чем |значение| больше, тем показатель “типичнее” для фактора.
  • pca_cluster_id - номер кластера признаков в PCA-пространстве.
  • pca_cluster_representative (0/1) - “представитель” кластера (самый типичный). Т.е. он отражает поведение всех остальных признаков кластера.
  • pca_coords = {x,y} - координаты для графика (по 1-й и 2-й компонентам).

UMAP-метрики

  • umap_coords = {x,y} - координаты на плоскости (для графика).
  • umap_cluster_id - номер кластера (−1 = шум/особняк).
  • umap_cluster_representative - представитель кластера (0/1). Т.е. он отражает поведение всех остальных признаков кластера.

t-SNE-метрики

  • tsne_coords = {x,y} - координаты на плоскости (для графика).
  • tsne_cluster_id - номер кластера (−1 = шум/особняк).
  • tsne_cluster_representative - представитель кластера (0/1). Т.е. он отражает поведение всех остальных признаков кластера.

Сводная важность и решение

  • importance_score - состав метрик, на основании которых делаются выводы:

    • score_pca - вклад признака по PCA (0..1);
    • rep_umap, rep_tsne - флаги «представитель кластера» по UMAP/t-SNE (усиливают важность);
    • weights - веса, с которыми собираем итог;
    • combined - итоговый балл (0..1), чем выше - тем нужнее показатель.
  • reduction_decision - 1: оставить; 0: кандидат к удалению. (Учитываем и «родителей» в графе связей - их не удаляем.)
  • reduction_reason - текстовое объяснение «почему так» (топ-факторы: на каком PC высокая загрузка, представитель кластера ли он и т. п.).

Зачем нужны графики и как их читать

Общая идея

Мы рисуем 3 интерактивных рассеяния (скаттера) - по PCA, UMAP, t-SNE. Каждая точка - показатель. Близкие точки - похожие показатели.

Единые правила отображения

  • Цвет = номер кластера (для −1 - серый).
  • Размер = важность (importance_score.combined).
  • Прозрачность: если reduction_decision = 0, делаем точку полупрозрачной - это кандидат к удалению.
  • Контур/иконка: если *_cluster_representative = 1, рисуем обводку/значок - это “эталон” кластера.
  • Подсказка (hover): показываем alias, name, indr_id, короткое описание, важность, решение, «топ-факторы» из reduction_reason.

Как пошагово анализировать

  1. Сначала PCA-панель. Посмотрите, какие признаки попали в один и тот же pca_component и/или PCA-кластер. Это “группы общего фактора”.

    • Вывод: из каждой такой группы можно оставить 1–2 «представителя».
  2. Сверьте UMAP и t-SNE. Совпадают ли группы? Если да - очень вероятно, что это действительно взаимозаменяемые показатели. Если нет - признак может вести себя похоже лишь в линейном смысле (PCA), а во времени - иначе.

  3. Ищите «особняков». В UMAP/t-SNE метка -1 (серый) = «особенные» ряды. Часто они полезны как уникальные сигналы и их не стоит удалять бездумно.

  4. Смотрите на размер точки. Крупные точки = высокая итоговая важность → это кандидаты «оставить».

  5. Читай обоснование. В reduction_reason написано человеческими словами: “PCA: высокая загрузка в PC3 (0.41), UMAP: представитель кластера 2, t-SNE: непериферийный”

    • это готовый текст для отчёта.
  6. Фильтры упрощают жизнь. Включите фильтр “показывать только kept/representatives” - это даст быстрый список «ядра» признаков.


Частые вопросы

Q: Почему у разных признаков одинаковый pca_component? A: Нормально. Они «живут» в одном факторе и часто дублируют друг друга.

Q: Что значит cluster_id = −1 в UMAP/t-SNE? A: Алгоритм отнёс признак к «шуму» - он не похож ни на один кластер. Это не плохо: такой показатель может давать уникальную информацию.

Q: Почему кластеризация разная у PCA и UMAP/t-SNE? A: PCA ловит линейные факторы; UMAP/t-SNE - нелинейную схожесть в динамике. Разное = дополнительная перспектива.

Q: Можно ли по графику решать, что удалить? A: Да, но всегда сверяйтесь со сводной важностью, причинно-следственными связями (влиящие признаки не удаляются) и с предметной логикой (важность для бизнеса).


Какие выводы можно делать

  • Неприкасаемые признаки: признаки, которые обозначены, как целевые или как импульсные удалить невозможно, так как они необходимы для моделирования прогнозов на последующих шагах.
  • Сокращение признаков: в каждой группе оставьте 1–2 представителя (крупные точки в кластере).
  • Выявление дублей: близкие точки с одинаковым поведением → можно смело урезать до одного.
  • Поиск уникальных сигналов: одиночные серые точки (−1) часто ценны - сохраняйте, если у них есть смысл.
  • Обоснование решений: сводная важность + «топ-факторы» дают объяснимость «почему оставили/удалили».

Короткий чек-лист перед финальным решением

  •  Совпадает ли кластеры в двух и более методах?
  •  Представители кластеров отмечены и логически понятны?
  •  Крупные по важности точки не попали в «удаление» случайно (проверьте причины)?
  •  Нет ли «родителей» среди кандидатов на удаление?
  •  Уникальные (−1) ряды - проверены и осознанно оставлены/удалены?