Участник:Артем Карпухин/Алгоритм CLOPE кластеризации категориальных данных: различия между версиями
Строка 36: | Строка 36: | ||
<math>Occ(i,C) </math> - количество вхождений объекта <math> i</math> в кластер <math> C</math> ; | <math>Occ(i,C) </math> - количество вхождений объекта <math> i</math> в кластер <math> C</math> ; | ||
− | <math>S(C) </math> = | + | <math>S(C) </math> = \sum_i<math>\in</math>D(C)</math>; |
=== Вычислительное ядро алгоритма === | === Вычислительное ядро алгоритма === |
Версия 01:47, 16 октября 2016
Алгоритм CLOPE | |
Последовательный алгоритм | |
Последовательная сложность | [math]O(N*K*A)[/math] |
Объём входных данных | [math]N*A[/math] |
Объём выходных данных | [math]2N[/math] |
Параллельный алгоритм | |
Высота ярусно-параллельной формы | [math]O( \log (N*K*A))[/math] |
Ширина ярусно-параллельной формы | [math]O(N*K*A)[/math] |
Основные авторы описания: А.В.Карпухин, А.А.Желтков
Содержание
- 1 Свойства и структура алгоритма
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Схема реализации последовательного алгоритма
- 1.6 Последовательная сложность алгоритма
- 1.7 Информационный граф
- 1.8 Ресурс параллелизма алгоритма
- 1.9 Входные и выходные данные алгоритма
- 1.10 Свойства алгоритма
- 2 Программная реализация алгоритма
- 2.1 Особенности реализации последовательного алгоритма
- 2.2 Локальность данных и вычислений
- 2.3 Возможные способы и особенности параллельной реализации алгоритма
- 2.4 Масштабируемость алгоритма и его реализации
- 2.5 Динамические характеристики и эффективность реализации алгоритма
- 2.6 Выводы для классов архитектур
- 2.7 Существующие реализации алгоритма
- 3 Литература
1 Свойства и структура алгоритма
1.1 Общее описание алгоритма
Алгоритм CLOPE (Clustering with sLOPE) - неиерархический итеративный метод кластерного анализа, предназначенный для обработки больших наборов категориальных данных. Алгоритм был предложен группой исследователей из Шанхайского университета (Yiling Yang, Xudong Guan, Jinyuan You) в статье "CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data" [1] на конференции SIGKDD (Special Interest Group on Knowledge Discovery and Data Mining) в 2002 году.
Алгоритм CLOPE в изначальной формулировке является алгоритмом кластеризации транзакционных данных (под транзакцией понимается некоторый произвольный набор объектов конечной длины). Основной идеей данного метода является использование глобального критерия оптимизации на основе максимизации функции стоимости применительно к задачам кластеризации.
Во время выполнения алгоритма в оперативной памяти требуется хранить относительно малое количество информации о каждом кластере и производится минимальное число проходов по набору данных. При использовании метода CLOPE количество кластеров подбирается автоматически и зависит от коэффициента отталкивания - параметра, определяющего уровень сходства транзакций внутри кластера. Коэффициент отталкивания задается пользователем: чем больше данный параметр, тем ниже уровень сходства транзакций и, как следствие, большее количество кластеров будет создано.
https://basegroup.ru/community/articles/clope http://www.fundamental-research.ru/ru/article/view?id=33381 http://www.olap.ru/home.asp?artId=155 Задачи кластеризации больших массивов категорийных данных весьма актуальна для систем анализа данных.
1.2 Математическое описание алгоритма
Пусть имеется база транзакций [math]D[/math], состоящая из множества транзакций [math]\{t_{1},t_{2},...,t_{n}\}[/math]. Каждая транзакция есть набор объектов [math]\{i_1,...,i_m\} [/math].
Множество кластеров [math]\{C_1,...,C_k\} [/math] есть разбиение множества [math]\{t_1,...t_n\} [/math], такое, что [math]C_1...C_k[/math] = [math]\{t_1,...,t_n\}[/math] и [math]C_i[/math] [math]\ne[/math] [math]\oslash[/math] [math]\land[/math] [math]C_i[/math] [math]\cap[/math]
[math]C_j[/math] = [math]\ne[/math], для [math]1[/math] [math]\le[/math] [math]i[/math], [math] j[/math] [math] \le[/math] [math] k[/math]. Каждый элемент [math] C_i[/math] называется кластером , где [math] n[/math] - количество транзакций, [math]m [/math] - количество объектов в базе транзакций, [math]k [/math] - число кластеров.
Характеристики кластера [math]C [/math] :
[math]D(C) [/math] - множество уникальных объектов;
[math]Occ(i,C) [/math] - количество вхождений объекта [math] i[/math] в кластер [math] C[/math] ;
[math]S(C) [/math] = \sum_i[math]\in[/math]D(C)</math>;
1.3 Вычислительное ядро алгоритма
1.4 Макроструктура алгоритма
1.5 Схема реализации последовательного алгоритма
1.6 Последовательная сложность алгоритма
1.7 Информационный граф
1.8 Ресурс параллелизма алгоритма
1.9 Входные и выходные данные алгоритма
1.10 Свойства алгоритма
2 Программная реализация алгоритма
2.1 Особенности реализации последовательного алгоритма
2.2 Локальность данных и вычислений
2.3 Возможные способы и особенности параллельной реализации алгоритма
2.4 Масштабируемость алгоритма и его реализации
2.5 Динамические характеристики и эффективность реализации алгоритма
2.6 Выводы для классов архитектур
2.7 Существующие реализации алгоритма
3 Литература
<references \>
- ↑ Y.Yang, X.Guan J.You. CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data