Можете ли вы помочь мне понять, отсортированы ли правила по какому-либо критерию?
tl; dr : они располагаются в порядке возрастания по длине, а затем покак элементы в последующем впервые появляются в ваших транзакциях.
Подробное объяснение: Apriori по умолчанию является алгоритмом шириной (по уровню).На этапе майнинга сначала обнаруживаются все частые наборы предметов длиной 1, затем все частые наборы предметов длиной 2, затем 3 и т. Д.Это означает, что в конечном итоге порядок определяется порядком кандидатов из одного элемента.С помощью Apyori элементы добавляются в список [Python], когда они впервые встречаются в транзакциях (см. Метод add_transaction () класса TransactionManager здесь ).
Генерация правил работает аналогичнов отношении последовательностей, которые соответствуют минимальным порогам достоверности / подъема.Например, для частого набора элементов {a, b, c, d} мы рассмотрим правила (то есть ассоциации, которые удовлетворяли нашим критериям интереса), которые имеют только один элемент в последующем (например, {a, c, d} -> {b}, затем {a, b, d} -> {c}), за которыми следуют интересные правила с двумя пунктами в последовательном (например, {a, d} -> {b, c}).
Какой самый эффективный способ сортировки правил, например, по лифту?
К сожалению, результат приведенного выше объяснения означает, что на самом деле не существует отличного способа сделать этопо умолчанию.Тем не менее, есть ряд модифицированных версий Apriori и других алгоритмов ARL, которые могут помочь с этим.Однако, насколько мне известно, никто из них не сделал это для проектов Python с открытым исходным кодом.Похоже, что методика top-k - это то, что вы можете искать.Один из подходов можно найти в этой статье .Если этого недостаточно или слишком много усилий для вашего проекта, вы можете рассмотреть другие подходы.
Если вам не нужно исчерпывающе анализировать все типы ассоциаций, я бы посоветовал взглянуть на совместную фильтрацию.