Правило ассоциации в R: как выбрать правила на основе элемента?

Я использую пакет r arules для создания правил для набора данных транзакции. В наборе данных у меня более 500 транзакций с такими предметами, как яблоки, пиво и т. Д.

Я знаю, как сгенерировать правила и отсортировать их на основе поддержки или уверенности, но если я хочу смотреть только на правила, относящиеся к определенным элементам, как мне это сделать? Как будто мне нужны только правила, в которых есть яблоко.

Что-то типа:

inspect(rules[keyword='apple'])

person ELI    schedule 09.06.2018    source источник
comment
каждая транзакция представляет собой список строк, например ['яблоко', 'банан', 'груша' ...]   -  person ELI    schedule 09.06.2018


Ответы (1)


Вы можете сделать это с помощью subset.

inspect(subset(rules, subset = items %in% "apple"))

Поскольку вы не предоставляете свои данные, я приведу полный пример, используя данные из пакета arules.

library(arules)
data(Groceries)
rules <- apriori(Groceries, parameter = list(supp = 0.001, conf = 0.8))

Теперь выберите правила, в которых упоминается йогурт. Их слишком много, чтобы показать полный результат, поэтому я просто покажу первые три.

inspect(subset(rules, subset = items %in% "yogurt")[1:3])
    lhs                   rhs                    support confidence     lift count
[1] {yogurt,                                                                      
     cereals}          => {whole milk}       0.001728521  0.8095238 3.168192    17
[2] {yogurt,                                                                      
     rice}             => {other vegetables} 0.001931876  0.8260870 4.269346    19
[3] {other vegetables,                                                            
     yogurt,                                                                      
     specialty cheese} => {whole milk}       0.001321810  0.8125000 3.179840    13

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

inspect(subset(rules, subset = items %in% "yogurt")[20])
    lhs                                      rhs      support     confidence
[1] {other vegetables,butter milk,pastry} => {yogurt} 0.001220132 0.8       
    lift     count
[1] 5.734694 12  
person G5W    schedule 09.06.2018