Почему Apriori работает быстрее, чем FP-Growth в этой реализации? - PullRequest
0 голосов
/ 18 июня 2019

Я использую пакеты FP-Growth и Apriori Кристиана Борлже, чтобы находить часто встречающиеся наборы предметов и правила ассоциации.Согласно его статье , fp-growth работает лучше, чем apriori во всех случаях.

Запуск FP-Growth на моей машине в CSV-файле размером ~ 36 МБ (~ 500 000 строк) показывает:

from fim import apriori, fpgrowth
s = time.time()
fp = fpgrowth(tracts, target='r', supp=0.0065, zmin=2, report="C,S") # tracts is a list of lists
e = time.time()
print(e - s)

41.10438871383667

Принимая во внимание, что Apriori приводит к:

s = time.time()
ap = apriori(tracts, target='r', supp=0.0065, zmin=2, report="C,S")
e = time.time()
print(e - s)

34.50810647010803

Чего мне не хватает в реализации?

1 Ответ

1 голос
/ 18 июня 2019

Нет гарантии, что один из них всегда лучше другого. Например, Apriori может быть очень быстрым, если ни один предмет не удовлетворяет минимальной поддержке. Когда ваши самые длинные наборы - 2 набора, вполне наивная версия может подойти. Априорная обрезка, а также fptree начинают светиться только тогда, когда вы выбираете (более интересные!) Более длинные наборы элементов, для которых может потребоваться выбрать параметр с низкой поддержкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...