Так, Валера, давай подумаем...
Цитата: RazVal Ты объединяешь в одну группу позиции, у которых коэффициент совместимости продаж - больше всех остальных. После этого заново пересчитываешь эти коэффициенты для всех пар, а объединённые позиции воспринимаешь уже как одну.
Да, на каждом уровне кластеризации формируется список совместно продаваемых товаров и на основе этого списка выделяются кластеры. Дело в том, что все товары из этого списка объединяются в кластера, т.к. в этот список изначально попадают пары с характеристиками не ниже заданных (коэффициент совместности, количество продаж). Т.е. сначала формируются все кластеры одного уровня, а потом мы заменяем в исходном массиве старые названия номенклатуры на названия вновь образовавшихся кластеров. После этого из исходного массива удаляются одинаковые строки и анализ проводится только по уникальным строкам. Затем формируется список уникальной номенклатуры, которая встречается в исходном массиве. Для каждой позиции из списка уникальной номенклатуры проводится анализ совместных продаж, в анализе участвуют только те документы, в которых эта позиция продавалась.
Цитата: RazVal Однако коэффициенты нужно считать только для пар, в которых участвует эта новая объединённая позиция. Я предлагаю не пересчитывать заново все те коэффициенты, которые после пересчёта заведомо не изменятся, а пересчитывать только те, которые образовались после последнего объединения позиций в группу совместимости.
Да, на следующем уровне кластеризации логично не проводить анализ по позициям уникальной номенклатуры из исходного массива, для которых не было изменений ни в одном документе продажи из тех, в которых они продавались (выделить эти документы тоже время). Вот только я думаю, что таких документов и позиций будет крайне мало, и это скорее всего те позиции, которые продавались единично в отдельных документах и по результату анализа не попали ни в один кластер. Единственный случай, когда это может дать существенную экономию времени, это когда пользователь изначально задал заведомо большие параметры (коэффициент совместности, количество продаж) и тогда часть документов реально можно отбросить, вот только первый наиболее длительный уровень кластеризации проводить необходимо всегда в полном объеме.
Валера, правильно ли я тебя понял и логичны ли мои рассуждения?