Производительность узла Анализ покупательских корзин
Данный узел или опция доступны, только если они включены в лицензии PolyAnalyst Server.

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

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

Алгоритм также выполняет поиск составных товаров (групп). Допустим, товар А прочно ассоциируется с товарами В и С, но между товарами В и С очень слабая связь. В таком случае алгоритм выполнит операцию, похожую на сложение товаров (булеву ИЛИ операцию в случае булевых атрибутов) атрибутов B и C. Будет проверена выраженность ассоциации товара А и составного (сложного) товара ВС.

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

Допустим, был обнаружен кластер товаров А, В и С. Далее система производит оценку устойчивости каждого из трех правил: "если покупаются A и B, то покупается и С", "если покупаются A и C, то покупается и B", "если покупаются C и B, то покупается и А". Данные правила носят вероятностный характер, поэтому они должны оцениваться по трем критериям: поддержка, достоверность и улучшение.

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

Количество строк и колонок в исходной таблице данных теоретически ограничено лишь тем, сколько данных PolyAnalyst сможет сохранить. На практике, при условии использования стандартного оборудования, средней загруженности сервера и конфигурации памяти, максимальное количество товаров (а следовательно, колонок) — около 10000; максимальное количество строк (отдельных транзакций) — около 10 миллионов. Объем свободного пространства жесткого диска не имеет большого значения. Основные ограничители — объем доступной виртуальной памяти, а также скорость работы процессора. Другие факторы, включая нагрузку сервера (общее количество пользователей и программ на одном компьютере), также повлияют на время обработки.

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

Для алгоритма анализа покупательской корзины необходимо, как минимум, 100 записей; максимальное же количество записей составляет 3 миллиона. Максимальное количество колонок — 20000. Помните, что при использовании данного алгоритма в Транзакционном анализе покупательских корзин, где каждый купленный товар представлен в виде отдельной записи, максимальное количество записей — 100000000.

Масштабируемость с количеством записей линейная, а с количеством колонок — O(M \(^{2}\)). Для 30 колонок и 10000 записей при частоте процессора 1.5 ГГц общее время обработки данных составит около 5 секунд.