Как я могу проверить, насколько важна моя кластеризация двоичных данных?


12

Я делаю анализ корзины покупок, мой набор данных - это набор векторов транзакций с товарами, которые покупаются.

Применяя к транзакциям k-means, я всегда получаю некоторый результат. Случайная матрица, вероятно, также показала бы некоторые кластеры.

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

Ответы:


14

Что касается анализа корзины покупок, я думаю, что главная цель - выделить наиболее часто встречающиеся комбинации продуктов, покупаемых покупателями. association rulesПредставляют собой наиболее естественные методологии здесь ( на самом деле они на самом деле были разработаны для этой цели). Анализ комбинаций продуктов, купленных клиентами, и количества повторений этих комбинаций приводит к правилу типа «если условие, то результат» с соответствующим измерением интереса. Вы также можете рассмотреть Log-linear models, чтобы исследовать связи между рассматриваемыми переменными.

Что касается кластеризации, вот некоторая информация, которая может пригодиться:

Сначала посмотрим Variable clustering. Кластеризация переменных используется для оценки коллинеарности, избыточности и для разделения переменных на кластеры, которые могут быть оценены как одна переменная, что приводит к сокращению данных. Ищите varclusфункцию (пакет Hmisc в R)

Оценка кластерной устойчивости: функция clusterboot{R package fpc}

Статистика на основе расстояния для проверки кластера: function cluster.stats{R package fpc}

Как уже упоминалось в mbq, используйте ширину силуэта для оценки наилучшего количества кластеров. Смотрите это . Что касается ширины силуэта, см. Также функцию optsil .

Оцените количество кластеров в наборе данных с помощью статистики разрыва

Для расчета показателей различий и мер расстояния см. Dsvdis и vegdist

Алгоритм EM-кластеризации может решить, сколько кластеров создать путем перекрестной проверки (если вы не можете указать априори, сколько кластеров генерировать). Хотя алгоритм EM гарантированно сходится к максимуму, он является локальным максимумом и может не совпадать с глобальным максимумом. Для большей вероятности получения глобального максимума вся процедура должна повторяться несколько раз с разными начальными предположениями для значений параметров. Общая величина логарифмического правдоподобия может быть использована для сравнения различных полученных окончательных конфигураций: просто выберите самый большой из локальных максимумов . Вы можете найти реализацию EM кластера в проекте с открытым исходным кодом WEKA

Это тоже интересная ссылка.

Также ищите здесь дляFinding the Right Number of Clusters in k-Means and EM Clustering: v-Fold Cross-Validation

Наконец, вы можете изучить результаты кластеризации, используя clusterfly


8

Это метод, использующий метод Монте-Карло, чтобы показать, является ли результат правильным.

Наша нулевая гипотеза H_0 состоит в том, что наш набор данных не имеет интересной кластеризации. Наша альтернативная гипотеза H_1 состоит в том, что наш набор данных содержит интересную кластеризацию.

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

Определим в качестве нашей тестовой статистики ошибку кластеризации (квадрат расстояния в кластере), T от Π_0. Значение для нашего исходного набора данных - t .

Мы ничего не знаем об этом распределении, за исключением того, что мы можем извлечь образцы из него. Что делает его хорошим кандидатом на Монте-Карло.

Теперь мы рисуем n (iid) случайных выборок из Π_0 и вычисляем эмпирическое p- значение по формуле p_emp = 1 / (n + 1) * (Σ_i = 1-n I (t_i> = t) + 1)

Случайная выборка может быть сделана путем рандомизации подкачки. Проще говоря, выполняется поиск квадрата по двум противоположным углам a 1, а по двум другим углам a 0. Затем углы переворачиваются. Это сохраняет поля столбца и строки. Процедура повторяется достаточно много раз, пока набор данных не будет достаточно рандомизирован (это займет несколько экспериментов). Более подробную информацию об этом можно найти в оценке результатов интеллектуального анализа данных с помощью рандомизации свопов, выполненной Gionis et. и др.

Один из способов сделать это - определить распределение ваших данных и принять ошибку кластеризации в качестве тестовой статистики t.

Например, если мы рассматриваем все наборы данных с одинаковыми полями строк и столбцов в качестве нашего распределения данных, то мы можем взять n случайных матриц Xi из этого распределения и вычислить для них ошибку кластеризации. Тогда мы можем рассчитать эмпирическое р-значение по формуле


4

Есть что-то вроде силуэта , который в некоторой степени определяет статистику, которая определяет качество кластера (например, он используется при оптимизации k). Теперь возможный вариант Монте-Карло будет выглядеть следующим образом: вы генерируете много случайных наборов данных, похожих на ваш исходный (например, путём перемешивания значений между строками в каждом столбце), кластеризуетесь и получаете распределение среднего силуэта, которое затем можно использовать для проверки значимости. силуэта в реальных данных. Тем не менее я админ, что я никогда не пробовал эту идею.


1
Это напоминает мне плакат, который я видел на конференции Human Brain Mapping 2010. Том Николс использовал параметрическую загрузку для оценки стабильности копенетической корреляции и силуэта в иерархической кластеризации, но см. Его постер: j.mp/9yXObA .
ЧЛ

@chl Спасибо; действительно недавно я видел подобное в своей лаборатории; в результате кластеры не были значительными, хотя: - /

Я согласен, что это звучит как начальная загрузка.
Васс

(К вашему сведению: интерпретация значения силуэта ). Также обратите внимание, что значение силуэта не определено для кластера k = 1, поэтому мы не можем сравнить гипотезу k = 1 (т. Е. Набор данных не кластеризован) с k> 1 (набор данных кластеризован) с использованием значения силуэта.
Франк Дернонкур
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.