Подтвердить что ты не робот

Использование метода частых заданий для построения правил ассоциации?

Я новичок в этой области, а также терминологию, поэтому, пожалуйста, не стесняйтесь предлагать, если я где-то ошибаюсь. У меня есть два набора данных:

Набор данных 1:

A B C 0 E
A 0 C 0 0
A 0 C D E
A 0 C 0 E

То, как я это интерпретирую, в какой-то момент времени (A, B, C, E) происходило вместе, а также (A, C), (A, C, D, E) и т.д.

Набор данных 2:

5A 1B 5C  0 2E
4A  0 5C  0  0
2A  0 1C 4D 4E
3A  0 4C  0 3E

То, как я это интерпретирую, находится в какой-то момент времени, произошло 5 случаев появления A, 1 B, 5 случаев C и 2 появления E и т.д.

Я пытаюсь найти, какие элементы встречаются вместе и, если возможно, также выяснить причину и следствие для этого. Для этого я не понимаю, как использовать оба набора данных (или если их достаточно). Было бы неплохо иметь хороший учебник по этому вопросу, но мой основной вопрос: какой набор данных использовать и как действовать в (i) создании частых наборов элементов и (ii) создания правил ассоциации между ними.

Может ли кто-нибудь указать мне на практические уроки/примеры (желательно на Python) или хотя бы объяснить краткие слова о том, как подойти к этой проблеме?

4b9b3361

Ответ 1

Некоторые теоретические факты об ассоциативных правилах:

  • Правила ассоциации - это тип неориентированного интеллектуального анализа данных, который находит шаблоны в данных, где цель не указана заранее. Независимо от того, имеют ли образцы смысл, человеческая интерпретация.
  • Целью правил ассоциации является обнаружение отношений или ассоциаций между конкретными значениями категориальных переменных в больших наборах.
  • И правила могут быть поняты как "70% клиентов, которые покупают вино и сыр, также покупают виноград".

Чтобы найти правила ассоциации, вы можете использовать алгоритм априори. Уже существует много реализаций python, хотя большинство из них неэффективны для практического использования:

или используйте библиотеку данных Orange, у которой хорошая библиотека для правил ассоциации.

Пример использования:

'''
save first example as item.basket with format
A, B, C, E
A, C
A, C, D, E
A, C, E
open ipython same directory as saved file or use os module
>>> import os
>>> os.chdir("c:/orange")
'''
import orange

items = orange.ExampleTable("item")
#play with support argument to filter out rules
rules = orange.AssociationRulesSparseInducer(items, support = 0.1) 
for r in rules:
    print "%5.3f %5.3f %s" % (r.support, r.confidence, r)

Чтобы узнать больше об ассоциативных правилах/частых деталях, тогда мой выбор книг:

Нет короткого пути.

Ответ 3

Если у вас есть количество для каждого элемента, вы можете подумать о "высокоуровневом наборе полезных ископаемых". Это проблема с обработкой деталей, но адаптирована для случая, когда элементы могут иметь количество в каждой транзакции, а также каждый элемент может иметь вес.

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