FPGrowth/Association 使用 Sparklyr 的规则
FPGrowth/Association Rules using Sparklyr
我正在尝试使用 Sparklyr 构建关联规则算法,并且一直在关注这个blog,它的解释非常好。
但是,在它们适合 FPGrowth 算法之后有一个部分,作者从返回的 "FPGrowthModel object" 中提取规则,但我无法重现以提取我的规则。
我纠结的部分是这段代码:
rules = FPGmodel %>% invoke("associationRules")
谁能解释一下 FPG 模型的来源?
我的代码如下所示,我没有看到可以从中提取规则的 FPGmodel 对象,我们将不胜感激。
# CACHE HIVE TABLE INTO SPARK
tbl_cache(sc, 'claims', force = TRUE)
med_tbl <- tbl(sc, 'claims')
# SELECT VARIABLES OF INTEREST
med_tbl <- med_tbl %>% select(proc_desc,alt_claim_id)
# REMOVE DUPLICATED ROWS
med_tbl <- dplyr::distinct(med_tbl)
med_tbl <- med_tbl %>% group_by(alt_claim_id)
# AGGREGATING CLAIMS BY CLAIM ID
med_agg <- med_tbl %>%
group_by(alt_claim_id) %>%
summarise(procedures = collect_list(proc_desc))
# CREATE UNIQUE STRING TO IDENTIFY THE MACHINE LEARNING ESTIMATOR
uid = 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))
您链接的博客 post 已经过时将近两年了。由于 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
我正在尝试使用 Sparklyr 构建关联规则算法,并且一直在关注这个blog,它的解释非常好。
但是,在它们适合 FPGrowth 算法之后有一个部分,作者从返回的 "FPGrowthModel object" 中提取规则,但我无法重现以提取我的规则。
我纠结的部分是这段代码:
rules = FPGmodel %>% invoke("associationRules")
谁能解释一下 FPG 模型的来源?
我的代码如下所示,我没有看到可以从中提取规则的 FPGmodel 对象,我们将不胜感激。
# CACHE HIVE TABLE INTO SPARK
tbl_cache(sc, 'claims', force = TRUE)
med_tbl <- tbl(sc, 'claims')
# SELECT VARIABLES OF INTEREST
med_tbl <- med_tbl %>% select(proc_desc,alt_claim_id)
# REMOVE DUPLICATED ROWS
med_tbl <- dplyr::distinct(med_tbl)
med_tbl <- med_tbl %>% group_by(alt_claim_id)
# AGGREGATING CLAIMS BY CLAIM ID
med_agg <- med_tbl %>%
group_by(alt_claim_id) %>%
summarise(procedures = collect_list(proc_desc))
# CREATE UNIQUE STRING TO IDENTIFY THE MACHINE LEARNING ESTIMATOR
uid = 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))
您链接的博客 post 已经过时将近两年了。由于 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