我正在尝试使用Sparklyr构建一个关联规则算法,并且一直在关注这个博客,它解释得很好。
然而,在他们适应FPGrowth算法之后,有一个部分,作者从返回的”FPGrowthModel对象”中提取规则,但我无法重现以提取我的规则。
我遇到困难的部分是这段代码:
rules = FPGmodel %>% invoke("associationRules")
请问有人能解释FPGmodel是从哪里来的吗?
我的代码如下所示,我没有看到可以从中提取规则的FPGmodel对象,任何帮助将不胜感激。
# CACHE HIVE TABLE INTO SPARKtbl_cache(sc, 'claims', force = TRUE)med_tbl <- tbl(sc, 'claims')# SELECT VARIABLES OF INTERESTmed_tbl <- med_tbl %>% select(proc_desc,alt_claim_id)# REMOVE DUPLICATED ROWSmed_tbl <- dplyr::distinct(med_tbl)med_tbl <- med_tbl %>% group_by(alt_claim_id)# AGGREGATING CLAIMS BY CLAIM IDmed_agg <- med_tbl %>% group_by(alt_claim_id) %>% summarise(procedures = collect_list(proc_desc))# CREATE UNIQUE STRING TO IDENTIFY THE MACHINE LEARNING ESTIMATORuid = sparklyr:::random_string("fpgrowth_")# INVOKE THE FPGrowth JAVA CLASS jobj = invoke_new(sc, "org.apache.spark.ml.fpm.FPGrowth", uid) jobj %>% invoke("setItemsCol", "procedures") %>% invoke("setMinConfidence", 0.03) %>% invoke("setMinSupport", 0.01) %>% invoke("fit", spark_dataframe(med_agg))
回答:
您链接的博客文章已经过时了将近两年。自从2b0994c
为o.a.s.ml.fpm.FPGrowth
提供了原生包装器
df <- copy_to(sc, tibble(items=c("a b c", "a b", "c f g", "b c"))) %>% mutate(items = split(items, "\\\\s+")fp_growth_model <- ml_fpgrowth(df)
antecedent consequent confidence lift <list> <list> <dbl> <dbl>1 <list [1]> <list [1]> 1 1.33