微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R Prog- 市场篮子分析 - 如何在使用支持和置信环时可视化产品推荐?

如何解决R Prog- 市场篮子分析 - 如何在使用支持和置信环时可视化产品推荐?

grid <- expand.grid(support = seq(0.05,0.1,0.01),confidence = seq(0.05,0.01))

在此示例中,expand.grid 用于将支持指标从 0.05 增加到 0.10,增量为 0.01。置信度指标也是如此。 下面的代码 [来自 SO] 运行 apriori 算法以在满足上述支持度和置信度指标时找到提升。

有没有办法将所有可能的 Lifts 可视化以帮助显示产品推荐? 谢谢

#SO solution to loop through support,confidence
library(dplyr)
res <- 
grid %>% 
group_by(support,confidence) %>% 
do(model = apriori(
tr,parameter = list(support = .$support,confidence = .$confidence,maxlen=1)
)) %>% 
mutate(n_rules = length(model)) %>%
ungroup()

View(res$model)
warnings()

summary(res$model[res$confidence == 0.05 & res$support == 0.05][[1]])

解决方法

假设您已经看到了 arulesViz standard plots,也许您想在每个模型上运行 arules::inspect 并存储输出?然后,您可以根据需要创建自定义绘图。

library(arules)
id <- c("1","1","2","3","3")
obj <- c("a","b","j","a","g","c","k","c")
df <- data.frame(id,obj)
tr <- as(split(df$obj,df$id),"transactions")

grid <- expand.grid(support = seq(0.05,0.1,0.01),confidence = seq(0.05,0.01))

library(dplyr)
res <- 
  grid %>% 
  group_by(support,confidence) %>% 
  do(model = apriori(
    tr,parameter = list(support = .$support,confidence = .$confidence,maxlen=1)
  )) %>% 
  mutate(n_rules = length(model)) %>%
  ungroup()

一种选择是使用 purrr::map_dfr 创建一个包含所有 36 个模型的单个数据框

purrr::map_dfr(res$model,inspect)

或者,如果 arulesViz::plot 是您要查找的内容,您可以通过将 plot 映射到 res$model 将其应用于所有 36 个模型。可以使用 gridExtra 将 36 个图放入一个更大的图。默认情况下,这很忙,但通过一些自定义,它可能会满足您的需求。

library(arulesViz)
plot_list <- purrr::map(res$model,plot)
gridExtra::grid.arrange(grobs = plot_list)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。