Участник:Андрей Туманов/Алгоритм кластеризации категориальных данных CLOPE: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 5: Строка 5:


=== Математическое описание алгоритма ===
=== Математическое описание алгоритма ===
Пусть имеется база транзакций <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 \cup \dots \cup C_k=\{t_1,...,t_n\}</math> и <math>C_i \ne \empty</math> и <math>C_i \cap C_j = \empty </math>, для <math>i \ge 1, k \ge j</math>. Каждый элемент <math>C_i</math> называется кластером, а <math>n, m, k</math> – количество транзакций, количество объектов в базе транзакций и число кластеров соответственно.
Каждый кластер <math>C</math> имеет следующие характеристики:
<math>D(C)</math> – множество уникальных объектов;
<math>Occ(i,C)</math> – количество вхождений (частота) объекта <math>i</math> в кластер <math>C</math>;
<math>S(C)= \sum_{i \in D(C)} Occ(i,C)= \sum_{t_i \in C}  \mid t_i  \mid , </math>
<math>W(C)=  \mid D(C) \mid ,H(C)=S(C)/W(C) </math>
Функция стоимости:
<math> Profit(C) = \frac{\sum^{k}_{i=1} G(C_i) \times \mid C_i \mid} {\sum^{k}_{i=1} \mid C_i \mid } = \frac{\sum^{k}_{i=1} \frac{S(C_i)}{W(C_i)^r} \times \mid C_i \mid} {\sum^{k}_{i=1} \mid C_i \mid }  </math>
<math>\mid C_i \mid</math>количество объектов в <math>i</math>-ом кластере, <math>k</math> – количество кластеров, <math>r</math> – коэффициент отталкивания <math>(0 < r \le 1)</math>
С помощью параметра <math>r</math> регулируется уровень сходства транзакций внутри кластера, и, как
следствие, финальное количество кластеров. Этот коэффициент подбирается пользователем. Чем больше <math>r</math>, тем ниже уровень сходства и тем больше кластеров будет сгенерировано.
Постановка задачи кластеризации алгоритмом CLOPE выглядит следующим образом:
для заданных <math>D</math> и <math>r</math> найти разбиение <math>C</math> такое, что:
<math>Profit(C) \longrightarrow max </math>.


=== Вычислительное ядро алгоритма ===
=== Вычислительное ядро алгоритма ===

Версия от 20:33, 24 октября 2016

Свойства и структура алгоритмов

Общее описание алгоритма

Математическое описание алгоритма

Пусть имеется база транзакций [math]\displaystyle{ D }[/math], состоящая из множества транзакций [math]\displaystyle{ \{t_1,t_2,...,t_n\} }[/math]. Каждая транзакция есть набор объектов [math]\displaystyle{ \{i_1,...,i_m\} }[/math]. Множество кластеров [math]\displaystyle{ \{C_1,...,C_k\} }[/math] есть разбиение множества [math]\displaystyle{ \{t_1,...,t_n\} }[/math], такое, что [math]\displaystyle{ C_1 \cup \dots \cup C_k=\{t_1,...,t_n\} }[/math] и [math]\displaystyle{ C_i \ne \empty }[/math] и [math]\displaystyle{ C_i \cap C_j = \empty }[/math], для [math]\displaystyle{ i \ge 1, k \ge j }[/math]. Каждый элемент [math]\displaystyle{ C_i }[/math] называется кластером, а [math]\displaystyle{ n, m, k }[/math] – количество транзакций, количество объектов в базе транзакций и число кластеров соответственно.

Каждый кластер [math]\displaystyle{ C }[/math] имеет следующие характеристики:

[math]\displaystyle{ D(C) }[/math] – множество уникальных объектов;

[math]\displaystyle{ Occ(i,C) }[/math] – количество вхождений (частота) объекта [math]\displaystyle{ i }[/math] в кластер [math]\displaystyle{ C }[/math];

[math]\displaystyle{ S(C)= \sum_{i \in D(C)} Occ(i,C)= \sum_{t_i \in C} \mid t_i \mid , }[/math]

[math]\displaystyle{ W(C)= \mid D(C) \mid ,H(C)=S(C)/W(C) }[/math]

Функция стоимости:

[math]\displaystyle{ Profit(C) = \frac{\sum^{k}_{i=1} G(C_i) \times \mid C_i \mid} {\sum^{k}_{i=1} \mid C_i \mid } = \frac{\sum^{k}_{i=1} \frac{S(C_i)}{W(C_i)^r} \times \mid C_i \mid} {\sum^{k}_{i=1} \mid C_i \mid } }[/math]

[math]\displaystyle{ \mid C_i \mid }[/math]количество объектов в [math]\displaystyle{ i }[/math]-ом кластере, [math]\displaystyle{ k }[/math] – количество кластеров, [math]\displaystyle{ r }[/math] – коэффициент отталкивания [math]\displaystyle{ (0 \lt r \le 1) }[/math]

С помощью параметра [math]\displaystyle{ r }[/math] регулируется уровень сходства транзакций внутри кластера, и, как следствие, финальное количество кластеров. Этот коэффициент подбирается пользователем. Чем больше [math]\displaystyle{ r }[/math], тем ниже уровень сходства и тем больше кластеров будет сгенерировано.

Постановка задачи кластеризации алгоритмом CLOPE выглядит следующим образом:

для заданных [math]\displaystyle{ D }[/math] и [math]\displaystyle{ r }[/math] найти разбиение [math]\displaystyle{ C }[/math] такое, что: [math]\displaystyle{ Profit(C) \longrightarrow max }[/math].

Вычислительное ядро алгоритма

Макроструктура алгоритма

Схема реализации последовательного алгоритма

Последовательная сложность алгоритма

Информационный граф

Ресурс параллелизма алгоритма

Входные и выходные данные алгоритма

Свойства алгоритма

Программная реализация алгоритма

Особенности реализации последовательного алгоритма

Локальность данных и вычислений

Возможные способы и особенности параллельной реализации алгоритма

Масштабируемость алгоритма и его реализации

Динамические характеристики и эффективность реализации алгоритма

Выводы для классов архитектур

Существующие реализации алгоритма

Литература

[1]