Как получить LHS для прогнозирования по рекомендации, основанной на правилах ассоциации в R Recommenderlab?

Удивительный пакет R recommenderlab написанный Michael Hahsler, предоставляет модель рекомендации, основанную на правилах ассоциации, полученных из его другого пакета R arules,

Минимальный пример кода адаптирован из документации recommenderlab можно найти в другом посте здесь.

Изученная модель рекомендации AR может использоваться для прогнозирования / рекомендации с учетом идентификатора пользователя.

pred <- predict(rec, dat[1:5,])
 as(pred, "list")
   [[1]]
   [1] "whole milk"     "rolls/buns"     "tropical fruit"

   [[2]]
   [1] "whole milk"

   [[3]]
   character(0)

   [[4]]
   [1] "yogurt"        "whole milk"    "cream cheese " "soda"         

   [[5]]
   [1] "whole milk"

Я понял, что прогноз в основном состоит в том, чтобы сначала найти все соответствующие LHS из набора правил (R), добытого из набора обучающих данных. А затем порекомендуйте N уникальных RHS соответствующих правил с наивысшей оценкой поддержки / доверия / подъема.

Итак, мой вопрос: как вы получаете соответствующие правила LHS для прогнозирования?

Из исходного кода мы можем видеть

m <- is.subset(lhs(model$rule_base), newdata@data)
for(i in 1:nrow(newdata)) {
      recom <- head(unique(unlist(
        LIST(rhs(sort(model$rule_base[m[,i]], by=sort_measure)),
          decode=FALSE))), n)

      reclist[[i]] <- if(!is.null(recom)) recom else integer(0)
    }

Мне удалось получить доступ к rule_base от обученной модели через

rule_base <- getModel(rec)$rule_base

но тут возникает другая проблема, почему head(unique(unlist(LIST(rhs(sort(model$rule_base[m[,i]], by=sort_measure)), decode=FALSE))), n) но не первая группа rhs а затем объединить sort_measure и lhs перед сортировкой?

1 ответ

head(unique(unlist(LIST(rhs(sort(model$rule_base[m[,i]], by=sort_measure)), decode=FALSE))), n) принимает все правила с соответствующим LHS, сортирует их по мере, а затем возвращает n уникальные изделия RHS с наивысшей мерой.

Я предполагаю, что вы думаете об агрегировании меры, если в базе правил есть несколько правил сопоставления с одинаковой RHS. Я тоже думал об этом, но затем решил использовать стратегию первого матча. Основной причиной было то, как создаются правила ассоциации / частые наборы элементов. Для каждого более длинного правила вы найдете много более коротких правил с одинаковой RHS, и, таким образом, агрегирование меры путем сложения не имело для меня особого смысла.

Другие вопросы по тегам