Построение модели и алгоритма кластеризации в интеллектуальном анализе данных

Информационные технологии Вестник Нижегородского университета им. Н.И. Лобачевского, 2012, № 2 (1), с. 198-202

УДК 519.682.5

ПОСТРОЕНИЕ МОДЕЛИ И АЛГОРИТМА КЛАСТЕРИЗАЦИИ В ИНТЕЛЛЕКТУАЛЬНОМ АНАЛИЗЕ ДАННЫХ

© 2012 г. А.С. Суркова, С.С. Буденков

Нижегородский государственный технический университет им. Р.Е. Алексеева

ansurkova@yandex.ru

Поступила в редакцию 08.12.2011

Рассмотрена модель представления данных в виде множества соответствия (сходства). На основе матрицы сходства предложен алгоритм иерархической кластеризации текстовой информации и объединения в группы тематически близких данных, продемонстрирована его работа на конкретных примерах.

Ключевые слова: интеллектуальный анализ данных, web mining, кластеры, иерархическая кластеризация, бинарные деревья.

В процессе развития информационных технологий, а также систем сбора и хранения данных все острее встает проблема анализа больших объемов информации. Другой не менее важной задачей является задача наглядного и компактного представления данных. Эти проблемы решаются в рамках междисциплинарной области знаний - интеллектуального анализа данных (Data Mining) [1].

На сегодняшний день все большую актуальность приобретает анализ данных, получаемых из интернета, так называемый Web Mining. Основная цель Web Mining — это сбор данных (парсинг) с последующим сохранением в нужном формате [2]. При этом необходимо учитывать, что информация в вебе представлена в виде специальных форматов, таких, как язык разметки HTML, RSS, Atom, SOAP и др. Вебстраницы могут иметь дополнительную метаинформацию, а также информацию о структуре документа.

В Web Mining можно выделить два основных направления: Web Content Mining и Web Usage Mining, и, соответственно, два вида задач, которые ставятся перед системами Web Mining [2]. Web Content Mining означает автоматизированный поиск информации из различных источников в интернете. Второе направление более приспособлено, Web Usage Mining подразумевает обнаружение закономерностей в действиях посетителя сайтов, а также сбор статистики и последующий ее анализ.

В статье рассмотрен один из методов решения задачи Web Content Mining, а именно алгоритм иерархической кластеризации данных из интернет-источников. Кластерный анализ, принципы которого использовались при построении алгоритма, не требует априорных предположе-

ний об исходных данных, не накладывает ограничений на представление исследуемых объектов, позволяет анализировать показатели различных типов данных. В отличие от задач классификации решение задач кластеризации основывается на сравнении самих объектов и установлении их схожести по определенным характеристикам. Разработанный алгоритм был применен к реальному примеру объединения блогов, содержащих семантически близкие записи.

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

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

Основной входной информацией для алгоритма кластеризации является метрика. При кластеризации текстов часто используется евклидово расстояние. Изменение метрики зачастую может сильно повлиять на результаты кластеризации [3]. Таким образом, метрика - очень важный инструмент, с помощью которого можно изменять результаты кластеризации. Стоит отметить, что плоская кластеризация порождает совокупность кластеров, не имеющих явных взаимосвязей. Иерархическая кластеризация создает иерархию кластеров.

В общем случае задача плоской кластеризации заключается в следующем. Дано:

1. Множество элементов D = {^1, d2, ..., dN};

2. Желательное количество кластеров Ю,

3. Целевая функция, оценивающая качество кластеризации.

Необходимо определить соответствие у: D ^ {1, ..., Щ, при котором будет достигаться экстремум (минимум или максимум) целевой функции. Целевая функция определяется в терминах сходства или расстояния между элементами. Сходство элементов выражается в виде одной из функций тематического сходства или в значениях на одних и тех же осях векторного пространства [4]. Тематическое сходство выражается в виде косинусоидальной меры сходства или евклидова расстояния в векторном пространстве. Если же упор будет сделан на другое сходство элементов, то можно выбрать другое представление.

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

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

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

(бинарных деревьев). Переходя по дендрограмме начиная с ветвей, можно проследить процесс объединения на каждом шаге.

Основное предположение восходящей иерархической кластеризации заключается в том, что операция объединения является монотонной. То есть если 51, s2, ..., sK-1 - комбинационные меры сходства последовательных объединений в восходящей иерархической кластеризации, то выполняются неравенства s1 > s2 >...> > ^-1.

При иерархической кластеризации не нужно задавать количество кластеров заранее. Однако если необходимо получить непересекающиеся кластеры (как при плоской кластеризации), процесс объединения кластеров в определенный момент необходимо останавливать. В таких ситуациях говорят об отсечении иерархии в определенной точке [4]. Для определения точки отсечения существует несколько критериев.

• Отсечение на заранее указанном уровне сходства. Например, если задано минимальное комбинационное сходство кластеров, нужно провести сечение дендрограммы на этом уровне. В зависимости от этой величины в результате будет получено разное количество кластеров.

• Сечение дендрограммы в точке максимальной разницы между двумя последовательными комбинационными мерами сходства. В этом случае перепады являются признаком «естественной» кластеризации. Добавление еще одного кластера значительно ухудшает качество кластеризации.

• Заранее задается количество кластеров K и точка отсечения выбирается так, чтобы в итоге получилось ровно K кластеров.

Применение кластерного анализа в общем виде сводится к следующим этапам:

1. Отбор выборки объектов для кластеризации.

2. Определение множества переменных, по которым будут оцениваться объекты в выборке. При необходимости - нормализация значений переменных.

3. Вычисление значений меры сходства между объектами.

4. Применение метода кластерного анализа для создания групп сходных объектов (кластеров).

5. Представление результатов анализа.

После получения и анализа результатов возможна корректировка выбранной метрики и метода кластеризации до получения оптимального результата. Общая схема кластеризации представлена на рисунке 1.

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

Рис. 1. Основные этапы кластерного анализа

дения слов в кластеризируемые объекты. Для каждого кластеризируемого элемента строится вектор счетчиков слов размерности 1 х M, где M - объединение всех возможных слов в класте-ризируемых элементах. Если слово не входит в кластеризируемый элемент, счетчик равен нулю, иначе - числу вхождений. После этого все векторы объединяются в матрицу размера N х M , где N - число кластеризуемых элементов. Далее вычисляется матрица сходства, а на ее основе объединяются наиболее похожие друг на друга в текущий момент кластеры. На каждой новой итерации наиболее похожие кластеры объединяются, а строки и столбцы, соответствующие объединенному кластеру, вычисляются заново. Получившиеся таким образом разбиения хранятся в виде списка объединений. После этого вычисляется сходство кластера с объединением кластеров и т.д.

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

1. Анализ каналов для получения счетчиков слов. При использовании алгоритма иерархической кластеризации предполагается получать данные напрямую или с помощью RSS-каналов. RSS-канал - это простой XML-документ, содержащий информацию о канале и всех записях в нем. Нужно сформировать список каналов, с которыми можно работать.

2. Реализация функции, которая будет извлекать отдельные слова. В каналах формата RSS и Atom всегда имеются заголовок и список записей. В каждой записи обычно есть тег summary или description, внутри которого находится текст записи. Функция получения счетчиков слов передает содержимое этого тега функции, которая отфильтровывает HTML-разметку и выделяет слова, считая словом последовательность символов, ограниченную с двух сторон небуквенными символами. На выходе получается список слов.

3. Генерация списка слов, которые будут учтены в счетчиках для каждого канала. Поскольку различные служебные слова (предлоги «в», «на», союзы «и», «что» и т.п.) встречаются достаточно часто, а, например, специфические термины - редко, то нужно уменьшить общее

количество слов, оставляя только те, для которых процент вхождений лежит между нижним и верхним порогом. Обычно выбирают некоторые средние значения для нижнего и верхнего порогов (например, 15% и 50%) с возможностью их варьирования в процессе реализации алгоритма.

4. Создание матрицы счетчиков слов для каждого канала на основе списка слов и списка каналов. Загрузка всех каналов зачастую занимает довольно много времени, но в конечном итоге получается таблица, в которой столбцы соответствуют словам, а строки - каналам. Такой формат обеспечивает возможность применения полученных результатов в других алгоритмах интеллектуального анализа данных.

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

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

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

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

Рис. 2. Визуализация результатов кластеризации

нормализации данных был выбран коэффициент корреляции Пирсона, он способен скорректировать это расхождение. Коэффициент Пирсона равен 1, если два набора данных в точности совпадают, и близок к 0, если никакой связи между ними не наблюдается.

Каждый кластер в алгоритме иерархической кластеризации - это либо узел в дереве с двумя ветвями, либо конечный (листовый) узел, ассоциированный с конкретной строкой из набора данных (в данном случае - с блогом). Каждый кластер содержит также данные о своем положении; это либо строка данных для листовых узлов, либо объединенные данные двух ветвей для остальных узлов.

Алгоритм иерархической кластеризации начинает работу с создания группы кластеров, каждый из которых содержит ровно один исходный элемент. В главном цикле функция ищет два самых похожих элемента, вычисляя коэффициент корреляции между каждой парой кластеров. Наилучшая пара объединяется в новый кластер. Данными для нового кластера служит среднее арифметическое данных двух старых кластеров. Этот процесс повторяется, пока не останется только один кластер.

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

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

Фрагмент дендограммы, полученной в результате проведенной кластеризации интернет-блогов, представлен на рисунке 2. В рассмотренном примере был подвергнут кластеризации список из 26 блогов, которые отнесены сайтом http://www.feedzilla.com/ к двум разным категориям. Анализ полученной дендрограммы позволяет сказать, что кластеризация была произведена верно. Длина горизонтальных линий на дендрограмме зависит от семантической близости объектов: чем короче линии, тем ближе содержание объединяемых блогов.

В статье была рассмотрена модель представления данных из Интернета в виде множества соответствия (сходства). На основе этого множества был предложен алгоритм кластеризации текстовой информации.

Реализация рассмотренного алгоритма показала его эффективность при выделении темати-

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

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

Список литературы

1. Дюк В., Самойленко А. Data Mining: Учебный курс. СПб.: Изд-во «Питер», 2QQ1. З68 с.

2. Soumen Chakrabarti. Mining the Web: discovering knowledge from hypertext data. Morgan Kaufmann, 2QQS. З45 p.

3. Jain A., Murty M., Flynn P. Data Clustering: A Review // ACM Computing Surveys. 1999. Vol. З1. № З.

4. Christopher D. Manning, Prabhakar Raghavan and Hinrich Schutze. Introduction to Information Retrieval. Cambridge University Press, 2QQ8. Режим доступа: http://informationretrieval.org/.

BUILDING A MODEL AND A CLUSTERING ALGORITHM IN DATA MINING

A.S. Surkova, S. S. Budenkov

A data representation model is considered in the form of a set of correspondences (similarities). Based on a matrix of similarities, an algorithm for hierarchical clustering of text information and for grouping thematically similar data is proposed and its performance is demonstrated by concrete examples.

Keywords: data mining, web mining, clusters, hierarchical clustering, binary trees.