R правила ассоциации априори — подавляют группировку элементов

#r #dataframe #arules

#r #фрейм данных #правила

Вопрос:

Я использую apriori функцию из arules пакета для выполнения анализа на предмет ассоциации элементов. После принудительного преобразования результатов в datframe я замечаю, что в некоторых случаях выходные данные могут быть сгруппированы следующим образом:

  LHS                 RHS        Support        Confidence      Lift        Count
{Item1, Item2}      {Item3}      .84             0.99          12.3          6
  

Есть ли способ заставить функцию выполнять анализ только между двумя элементами в каждой транзакции и получать соответствующую поддержку, уверенность и т.д.? Другими словами, могу ли я принудительно apriori разделить приведенный выше результат на что-то вроде:

  LHS           RHS        Support        Confidence      Lift       Count
{Item1}      {Item3}        a                b            c           d
{Item2}      {Item3}        e                f            g           h
  

Комментарии:

1. Два результата, которые вы показываете, не эквивалентны. Первый вариант (с {Item1, Item2}) означает, что если присутствуют оба элемента 1 и Item2, то, скорее всего, будет присутствовать элемент 3, вторая (двухстрочная) версия будет означать, что если присутствует элемент 1 или элемент 2, то, скорее всего, будет присутствовать элемент 3. Вы пытаетесь преобразовать полученные вами правила или вы хотите заставить apriori предоставлять только правила с одним элементом в LHS?

2. @G5W Я знаю, что мог бы передать maxlen параметр в apriori , но, если я не ошибаюсь, это больше работает как фильтр после завершения анализа. Я предполагаю, что то, о чем я спрашиваю, больше относится к стороне преобразования правил, которая может apriori определить правило только для 2 элементов, даже если оно может определить правило для этих 2 одинаковых элементов вместе с другими, потенциально?

Ответ №1:

maxlen в apriori не действует как фильтр после интеллектуального анализа данных. apriori создает часто используемые наборы элементов, начинающиеся с длины 1, затем 2, 3, … и maxlen останавливает процесс интеллектуального анализа данных.

minlen с другой стороны, это фильтр, потому что сначала должны быть найдены все более короткие наборы элементов.

Если вы спрашиваете, можете ли вы определить поддержку и уверенность в

 {Item1} -> {Item3}
{Item2} -> {Item3}
  

просто используя поддержку и уверенность

 {Item1, Item2} -> {Item3}
  

тогда ответ отрицательный. Однако из свойства apriori мы знаем, по крайней мере, следующее:

 supp({Item1} -> {Item3}) >= supp({Item1, Item2} -> {Item3})
supp({Item2} -> {Item3}) >= supp({Item1, Item2} -> {Item3})