Кластеризация транзакций
Пример решения задачи на базе аналитической low-code платформы Loginom:
- Скачать бесплатно Loginom Community Edition
- Скачать бесплатно пакет, реализующий описанный сценарий
В основе кластеризации транзакций лежит алгоритм CLOPE, применение которого позволяет обрабатывать огромные массивы транзакционных данных: чеки в супермаркетах, логи посещений веб-ресурсов и другие. Задача состоит в получении такого разбиения всего множества транзакций, чтобы похожие транзакции оказались в одном кластере, а отличающиеся друг от друга — в разных кластерах.
Задача демо-примера состоит в том, чтобы выявить кластеры, описывающие съедобные и ядовитые грибы.
Исходный набор данных включает в себя 8124 записи с описанием 22 характеристик грибов, 4208 грибов являются съедобными, 3916 — несъедобными. Количество уникальных характеристик — 116.
Исходные данные
Таблица «Грибы»:
Имя поля | Метка поля |
---|---|
Класс | |
Форма шапки | |
Поверхность шляпки | |
Цвет шляпки | |
Синие пятна | |
Запах | |
Форма крепления гименофора к ножке | |
Частота гименофора | |
Размер гименофора | |
Цвет гименофора | |
Форма ножки | |
Корень ножки | |
Поверхность ножки выше кольца | |
Поверхность ножки ниже кольца | |
Цвет ножки выше кольца | |
Цвет ножки ниже кольца | |
Тип покрывала | |
Цвет покрывала | |
Количество колец | |
Остатки частного покрывала | |
Цвет спор | |
Частота грибницы | |
Место обитания |
Алгоритм
- Импорт исходных данных;
- Приведение входного набора к транзакционному виду;
- Настройка узла Кластеризация транзакций;
- Анализ результатов.
Сценарий

Входной набор данных
Узел позволяет импортировать табличные данные из текстового файла для последующей обработки в Loginom. В Сценарии он используется для импорта таблицы «Грибы». Все параметры задаются в соответствии с описанием входных данных.
Подготовка данных для Кластеризации
Набор данных, который получили в результате импорта не пригоден для использования в узле Кластеризация транзакций — его нужно привести к транзакционному виду.

Для удобства чтения сценария объединим узлы в Подмодель.
Добавление номера строки
В Калькулятор добавим следующие поля для расчета номера строки:
Имя поля | Метка поля | Описание |
---|---|---|
ID | Идентификатор определяется как номер текущей записи входного набора данных плюс 1. Единица прибавляется для того, чтобы идентификаторы начинались с 1, а не 0. |
Таким образом, для каждой строки входного набора будет присвоен уникальный идентификатор.
Свертка столбцов
С помощью Свертки столбцов переносим все характеристики в одно поле, где информационным полем выбираем номер строки ID, а транспонируемыми полями — все 23 параметра.
Формирование свойства
В Калькулятор добавим следующее выражение для формирования свойства:
Имя поля | Метка поля | Описание |
---|---|---|
Свойство | Свойство определяется объединением поля с названиями характеристик «DisplayNames» и их значениями «Values» для того, чтобы все значения характеристик были уникальны, а также для более простой интерпретации результатов |
Таким образом, получим запись вида «Класс — ядовитый».

Кластеризация транзакций
На странице Мастера настройки входных полей необходимо установить назначение для полей:
Имя поля | Метка поля | Вид данных | Назначение |
---|---|---|---|
ID | Транзакция | ||
Свойство | Элемент | ||
Метки | Не задано | ||
Значения | Не задано |
Остальные настройки оставляем по умолчанию.
Данные для Куба
Объединим наборы данных для соотнесения полученных кластеров и характеристик грибов. Для этого в Мастере настройки Слияния выберем тип операции «Левое соединение», в качестве связующего поля применим «ID».
Интерпретация
Для представления результатов используются следующие визуализаторы, которые можно сформировать в группы и отображать на панели Отчетов (Навигация->Отчеты):

Всего получилось 24 кластера. Рассмотрим отдельно каждый отчет.
Куб представляет собой сводную таблицу по результатам кластеризации, которая отражает распределение классов — съедобный и ядовитый по кластерам и позволяет оценить получившееся разбиение. Критерием качества работы алгоритма служит количество «грязных» кластеров, т.е. таких, в которых присутствуют как съедобные, так и несъедобные грибы. Чем меньше таких кластеров, тем лучше.
Из Куба видно, что в результате кластеризации не получилось ни одного «грязного» кластера, что говорит о качественном разбиении.

Таблица отражает информацию о параметрах разбиения и позволяет оценить кластеры по различным характеристикам: Количество транзакций (N), Ширина кластера (W), Мощность кластера (S). Можно выбрать наиболее мощные кластеры, для этого отсортируем по убыванию поле «S» таблицы.
