Вариант параллельного выполнения алгоритма FCM–кластеризации
Ознакомление с объектами кластеризации, которыми являются электронные текстовые документы. Рассмотрение этапов выполнения алгоритма нечеткой кластеризации. Изучение и анализ диаграммы вариантов использования для пользователя исследуемого приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 18.01.2018 |
Размер файла | 976,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Ульяновский государственный технический университет
Вариант параллельного выполнения алгоритма FCM-кластеризации
Островский А.А.
e-mail: a.ostrovsky@ulstu.ru
Введение
Огромные объёмы информации зачастую приводят к тому, что количество объектов, выдаваемых по запросу пользователя, очень велико. Однако, в большинстве случаев, ее можно сделать доступными для восприятия, если уметь разбивать источники информации на тематические группы. Такой процесс группировки данных осуществляется с помощью кластеризации. Рассмотрим один из таких методов - FCM и его модификацию для параллельного выполнения.
1. Алгоритм FCM
Целью FCM (Fuzzy Classifier Means) - алгоритма кластеризации является автоматическая классификация множества объектов, которые задаются векторами признаков в пространстве признаков. Другими словами, такой алгоритм определяет кластеры и соответственно классифицирует объекты. Кластеры представляются нечеткими множествами, и, кроме того, границы между кластерами также являются нечеткими.
FCM-алгоритм предполагает, что объекты принадлежат всем кластерам с определенной функцией принадлежности. Степень принадлежности определяется расстоянием от объекта до соответствующих кластерных центров. Данный алгоритм итерационно вычисляет центры кластеров и новые степени принадлежности объектов.
Алгоритм основан на минимизации целевой функции:
, (1)
где: N - количество документов; С - количество кластеров; uij - степень принадлежности объекта i кластеру j; m - любое действительное число, большее 1, xi - i-ый объект набора объектов; cj - j-ый кластер набора кластеров; | xi - cj | - норма, характеризующая расстояние от центра кластера j до объекта i.
Объектами кластеризации являются электронные текстовые документы. Задачей FCM - алгоритма является разбиение этого набора на заданное количество кластеров. Для каждого документа составлен частотный портрет входящих в него значимых терминов. Эти частотные портреты и являются векторами признаков объектов (электронных документов) кластеризации.
Алгоритм нечеткой кластеризации выполняется по шагам.
Шаг 1. Инициализация.
Задаются параметры кластеризации и инициализируется первоначальная матрица принадлежности электронных документов кластерам. Выбираются значения следующих параметров:
1. экспоненциальный вес (m);
2. мера расстояний - . Мера расстояний характеризует степень близости документа кластеру. Как правило, выбирается евклидова норма:
=,(2)
где q - количество значимых термов набора документов; xji - количество терма j в i-ом документе; vjk - значение, соответствующее терму j в k-ом кластере;
3. уровень точности е;
4. количество итераций алгоритма.
После выбора параметров генерируется случайным образом первоначальная матрица принадлежности объектов кластерам.
Шаг 2. Вычисление центров кластеров.
Каждому j-ому терму всех документов ставиться в соответствие действительное число, вычисляемое следующим образом:
, (3)
где cj - значение j-ого терма кластера; N - количество документов; xi - значение терма j i-го документа; uij - степень принадлежности документа i кластеру j.
Шаг 3. Формирование новой матрицы принадлежности.
Формируется новая матрица принадлежности с учетом вычисленных на предыдущем шаге центров кластеров:
(4)
где uij - степень принадлежности объекта i кластеру j, cj - вектор центра j - го кластера, cj - вектор центра l - го кластера.
При этом, если для некоторого кластера j и некоторого объекта i, =0, тогда полагаем, что степень принадлежности uij равна 1, а для всех остальных кластеров степень принадлежности этого документа равна нулю.
Шаг 4. Вычисление целевой функции.
Вычисляется значение целевой функции, и полученное значение сравнивается со значением на предыдущей итерации. Если разность не превышает заданного в параметрах кластеризации значения е, считаем, что кластеризация завершена. В противном случае переходим ко второму шагу алгоритма.
2. Примерная оценка сложности алгоритма
Для обоснования распараллеливания алгоритма выполним примерную оценку ее временной сложности.
Если записать структуру циклов для выполнения этапа вычисления центров кластеров по формуле (3) на псевдокоде, получим:
Для каждого кластера{
Для каждого терма кластера{
Для каждого объекта{
}
}
}
Время выполнения линейно зависит от количества кластеров, количества термов и количества объектов. Для разбиения массива данных из 100 документов, 1000 уникальных термов на 10 кластеров потребуется 10·1000·100=1·106 итераций. Для разбиения на 15 кластеров для этого же набора объектов потребуется уже 15·1000·100=1.5·106 . Количество итераций возрастает линейно.
Структура циклов для этапа вычисления матрицы принадлежности по формуле (4):
для каждого объекта {
для каждого кластера {
для каждого кластера {
для каждого терма{
}
}
}
}
Как видно из этого кода, время его выполнения линейно зависит от количества объектов и термов и имеет квадратичную зависимость от числа кластеров. Для выполнения этого этапа необходимы вложенные циклы до третьего уровня. Таким образом, например, для разбиения массива данных из 100 документов, 1000 уникальных термов на 10 кластеров потребуется 1000·10·10·100=1·107 итераций. Для разбиения на 15 кластеров для этого же набора объектов потребуется уже 1000·15·15·100=2.25·107 . Количество итераций возрастает более чем в 2 раза.
И, наконец, вычисление целевой функции по формуле (1):
Для каждого кластера{
Для каждого ресурса{
Для каждого терма{
}
}
}
Время выполнения линейно зависит от количества кластеров, количества объектов.
Как видно из приведенных выше формул в каждом из этапов присутствуют вложенные циклы до 3-го - 4-го уровня вложенности.
Для больших массивов данных при запуске алгоритма на компьютере с многоядерном процессором или на вычислительном кластере имеет смысл выполнять эти итерации в отдельных потоках, сокращая тем самым временную сложность алгоритма. Один из вариантов распределения этих итераций по потокам приведен ниже.
3. Алгоритм параллельного выполнения FCM-кластеризации
На рис.1 изображен алгоритм параллельного выполнения FCM - кластеризации.
Рис. 1. Алгоритм параллельного выполнения FCM алгоритма
Как известно, на создание и запуска потока системе требуется довольно много ресурсов, что также будет «тормозить» выполнение основной задачи. Во избежание этого в начале выполнения алгоритма создается пул потоков фиксированного размера. Размер этого пула (количество потоков) задает сам пользователь приложения. Самым оптимальным будет размер равный количеству доступных ядер или процессоров на компьютере или в вычислительном кластере.
Каждый этап алгоритма делится на потоки. Пул потоков позволяет не заботиться о количестве одновременно запускаемых задач. Если в настоящий момент нет свободных для выполнения задачи потоков, то они ожидают в очереди. Для подтверждения целесообразности распараллеливания данного алгоритма был проведен небольшой эксперимент.
4. Эксперимент
Исходные данные:
Документов: 265
Уникальных термов: 4713
Кластеров: 10
Итераций: 50
Компьютер: Intel 2.4 ГГц 2х ядерный
Таблица 1. Результаты экспериментов
Число потоков |
Время, мин Linux |
Время, мин WinXP |
|
1 |
~72 |
~74 |
|
2 |
~32 |
~42 |
|
3 |
~32 |
~42 |
|
10 |
~32 |
~42 |
Как видно из результатов эксперимента последовательное выполнение занимает около 72 мин в ОС Linux и около 74 в Windows XP. При этом параллельное выполнение в Linux сокращает время более чем в 2 раза.
5. Реализация
В качестве входных данных кластеризатор использует набор ресурсов с термами и весами этих термов в документе. На выходе должно быть построено дерево кластеров.
Кластеризатор реализован на JAVA. Ниже представлена диаграмма вариантов использования для пользователя приложения.
Рис. 2. Диаграмма вариантов использования
Рассмотрим только основные возможности приложения.
6. Кластеризатор
После установления соединения с БД пользователь может начать новую кластеризацию документов, выбором соответствующего пункта меню «Кластеризация». кластеризация электронный текстовый
Информация о документах и термах загружается из БД MSSQL. После загрузки ресурсов формируется набор уникальных термов, из термов загруженных ресурсов, который будет характеризовать центры кластеров. Затем пользователь выбирает параметры кластеризации, на основе которых происходит формирование первоначальной матрицы принадлежности ресурсов кластерам.
Рис. 3. Параметры FCM модели кластеризации
Кроме стандартных параметров алгоритма FCM, также пользователь может задать параметры формирования имен кластеров, способ формирования дерева кластеров и число потоков, которое будет выделено для выполнения алгоритма.
Метод FCM не является иерархическим. Для иерархической кластеризации требуется участие пользователя. Если одного уровня кластеризации недостаточно, то после его завершения пользователь сам выбирает кластеры, которые требуется кластеризовать дальше. Для каждой кластеризации также задаются параметры. Программа позволяет выполнять одновременно несколько процессов кластеризаций на одном уровне иерархии. Каждая модель запускается в отдельном потоке.
Пользователю также предоставляется возможность самому редактировать сформированное дерево кластеров (добавлять кластеры, перемещать ресурсы).
7. Визуализатор
Для наблюдения за процессом кластеризации, а также для анализа результатов реализован визуализатор кластеризации. Он отображает динамику изменения разбиения. Имеет следующие возможности:
l просмотр изменяющегося дерева кластеров;
Рис. 4. Дерево кластеров и документов
l просмотр изменения матрицы принадлежности ресурсов кластерам;
Рис. 5. Матрица принадлежности модели кластеризации
l просмотр изменения центров каждого кластера, и степеней принадлежности ресурсов;
Рис. 6. Информация о кластере
l текущие параметры процесса;
Рис. 7. Параметры процесса кластеризации
Визуализатор доступен для каждого запущенного потока кластеризации.
8. Сохранение результатов
Приложение позволяет сохранять результаты экспериментов в БД и формировать подробный XML отчет о проделанных экспериментах. Ниже представлена схема БД для результатов разбиений и окно выбора параметров формирования XML отчета.
Рис. 8. Схема БД для результатов кластеризации
Рис. 9. Параметры формирования XML отчета о кластеризации
9. Поиск документов
Для поиска документов в уже сформированном кластеризатором наборе кластеров реализована поисковая система. Поиск осуществляется по ключевым словам документов.
Результатом поиска является список документов с описанием количества включения искомого слова и перечислением кластеров, к которым относиться этот документ в процентном отношении.
Литература
1. Ярушкина Н. Г. Основы теории нечетких и гибридных систем.- М.: Финансы и статистика, 2004. - 320 с.
2. A Tutorial on Clustering Algorithms. http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/index.html
Размещено на Allbest.ru
...Подобные документы
Сущность и понятие кластеризации, ее цель, задачи, алгоритмы; использование искусственных нейронных сетей для кластеризации данных. Сеть Кохонена, самоорганизующиеся нейронные сети: структура, архитектура; моделирование кластеризации данных в MATLAB NNT.
дипломная работа [3,1 M], добавлен 21.03.2011Особенности кластеризации социальных сетей, методы распознавания сообществ. Особенности локального прореживания графа. Разработка рекомендаций по выбору метода кластеризации для выделенных классов задач. Оптимизация процесса дальнейшей обработки данных.
курсовая работа [1,8 M], добавлен 30.06.2017Характеристика методов нечеткого моделирования и изучение системы кластеризации в пакетах прикладных программ. Разработка и реализация алгоритма для оптимизации базы правил нечеткого классификатора с помощью генетического алгоритма аппроксимации функции.
дипломная работа [1,9 M], добавлен 21.06.2014Ознакомление с элементами топологии базы геоданных. Исследование и характеристика особенностей кластерной обработки. Изучение алгоритмов, использующихся при проверке и кластеризации. Анализ процесса использования пространственных отношений объектов.
презентация [749,3 K], добавлен 18.10.2017Описание предметной области автоматизации. Программа обследования и план-график выполнения работ на предпроектной стадии. Метод группового принятия решения с помощью кластеризации экспертных оценок альтернатив. Построение диаграммы потоков данных DFD.
дипломная работа [375,8 K], добавлен 07.12.2014Анализ проблем, возникающих при применении методов и алгоритмов кластеризации. Основные алгоритмы разбиения на кластеры. Программа RapidMiner как среда для машинного обучения и анализа данных. Оценка качества кластеризации с помощью методов Data Mining.
курсовая работа [3,9 M], добавлен 22.10.2012Основы для проведения кластеризации. Использование Data Mining как способа "обнаружения знаний в базах данных". Выбор алгоритмов кластеризации. Получение данных из хранилища базы данных дистанционного практикума. Кластеризация студентов и задач.
курсовая работа [728,4 K], добавлен 10.07.2017Исследование производительности труда методом компонентного и кластерного анализов. Выбор значащих главных компонент. Формирование кластеров. Построение дендрограммы и диаграммы рассеивания. Правила кластеризации в пространстве исходных признаков.
лабораторная работа [998,9 K], добавлен 25.11.2014Классификация задач Data Mining. Задача кластеризации и поиска ассоциативных правил. Определению класса объекта по его свойствам и характеристикам. Нахождение частых зависимостей между объектами или событиями. Оперативно-аналитическая обработка данных.
контрольная работа [26,1 K], добавлен 13.01.2013Показатели эффективности параллельного алгоритма: ускорение, эффективность использования процессоров, стоимость вычислений. Оценка максимально достижимого параллелизма. Закон Амдала, Закон Густафсона. Анализ масштабируемости параллельного алгоритма.
презентация [493,0 K], добавлен 11.10.2014Элементы и переменные, используемые для составления записи в Паскале. Основные числовые типы языка Turbo Pascal. Составление блок-схемы приложения, программирование по ней программы для вычисления функции. Последовательность выполнения алгоритма.
лабораторная работа [256,9 K], добавлен 10.11.2015Оценка временной сложности алгоритма. Механизм сортировки пузырьком и вставками. Основные положения технологии параллельного программирования Ореn MР. Оценка временной сложности некоторых классов алгоритма с помощью параллельного программирования.
дипломная работа [1,7 M], добавлен 27.10.2017Классификация алгоритмов маршрутизации. Методы передачи данных. Характеристики коммуникационной составляющей длительности выполнения параллельного алгоритма. Преимущества и недостатки CTR. Оценки трудоемкости для различных топологий и кластеров.
презентация [875,8 K], добавлен 10.02.2014Разработка приложения, целью которого ставится преобразование черно-белых полутоновых изображений в цветные. Обзор методики обработки изображения, способов преобразования изображения с помощью нейронной сети. Описания кластеризации цветового пространства.
дипломная работа [6,3 M], добавлен 17.06.2012Знакомство с особенностями и этапами разработки приложения для платформы Android. Рассмотрение функций персонажа: бег, прыжок, взаимодействие с объектами. Анализ блок-схемы алгоритма генерации платформ. Способы настройки функционала рабочей области.
дипломная работа [3,4 M], добавлен 19.01.2017Разработка алгоритма выполнения операций умножения двоичных чисел в формате расширенной точности на сумматоре обратного кода. Преобразование входной строки в десятичное число. Разработка алгоритма арифметической операции. Тестирование программы-эмулятора.
курсовая работа [119,1 K], добавлен 24.06.2012Определение архитектуры реляционных СУБД. Рассмотрение кластеризации как основного способа минимизации числа дисковых операций ввода-вывода данных. Применение индексов для повышения производительности SQL-запросов. Процесс кэширования в базах данных.
курсовая работа [61,1 K], добавлен 15.07.2012Создание программного обеспечения для реализации алгоритма, позволяющего находить кратчайшее расстояние от одной из вершин графа до всех остальных, при условии, что ребра графа не имеют отрицательного веса. Примеры выполнения алгоритма Дейкстра.
курсовая работа [1,1 M], добавлен 11.01.2015Создание и реализация алгоритма решения транспортной задачи методом наименьших стоимостей. Схема алгоритма основной программы. Основные шаги алгоритма решения транспортной задачи. Инструкция по эксплуатации программы и обзор результатов ее выполнения.
курсовая работа [2,0 M], добавлен 12.02.2013Описание принципа работы генетического алгоритма, проверка его работы на функции согласно варианту на основе готовой программы. Основные параметры генетического алгоритма, его структура и содержание. Способы реализации алгоритма и его компонентов.
лабораторная работа [20,2 K], добавлен 03.12.2014