CLARA с Gower для смешанного типа данных - PullRequest
0 голосов
/ 28 мая 2018

У меня довольно большие данные (11,4 миллиона записей и 9 переменных).Переменные являются смешанными, состоящими из порядкового, номинального и непрерывного типов данных.Соответственно, я выбираю метод Гауэра для вычисления матрицы различий для работы со смешанным типом данных.Однако размер данных слишком велик для вычисления.Затем я нахожу другой интересный метод под названием CLARA, который использует образец для вычисления кластеризации, а затем назначает кластер другим точкам данных.Проблема в том, что я не могу найти подходящую метрику для вычисления расстояния смешанного типа данных.Другими словами, нет опций Gower в clara in cluster package и clara_medoids in ClusterR package (это все, что я могу найти Клару в R).

Почему в CLARA нет опции Gower?Что я должен делать?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Получите исходный код CLARA.

Измените его и добавьте расстояние Gower.

Поскольку Gower использует некоторые зависящие от данных коэффициенты нормализации (и вы не можете позволить себе предварительно вычислить матрицу расстояний) вам нужно будет интегрировать это непосредственно в CLARA.

Запустите измененный CLARA.

Сделайте ваш исходный код общедоступным как открытый, чтобы другим не пришлось делать то же самое,Это также облегчит расширение CLARA с помощью дополнительных функций расстояния в будущем.

0 голосов
/ 28 мая 2018

CLARA описана в Kaufman and Rousseeuw (1990).

Характеристики этого алгоритма состоят в том, что он может работать со значительно большим набором данных из-за его линейной сложности как в памяти, так и в вычислительных требованиях.

Gower расстояние вычисляет матрицу различий, сложность памяти которой экспоненциально O (n ^ 2), что означает, что вы получите матрицу 11,4 миллиона строк и 11,4 миллиона столбцов.Понятно, что это невозможно.

Если вы хотите использовать расстояние gower, вы должны попытаться работать с меньшими подвыборками и использовать подход кластеризации снизу вверх.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...