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


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

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

有没有一种方法可以可视化所有可能的电梯,以帮助展示产品推荐?Thx

#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标准图,也许您想在每个模型上运行arules::inspect并存储输出?然后,您可以根据需要创建自定义打印。

library(arules)
id <- c("1","1","1","2","2","2","3","3","3")
obj <- c("a", "b", "j", "a", "g","c", "a","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.1, 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)

最新更新