library("arules")
library("stringr")
food_o3_df <- read.csv("C:/Users/Jennifer/Desktop/生鲜购物篮模型/fresh.csv")
names(food_o3_df) <- tolower(names(food_o3_df))
head(food_o3_df)
c3 <- read.table(file = "clipboard", header = TRUE, stringsAsFactors = FALSE, sep = "\t")
names(c3) <- tolower(names(c3))
save(food_o3_df, file = "food_o3.Rdata")
save(c3, file = "c3.Rdata")
load("food_o3.Rdata")
load("c3.Rdata")
# R数据读取为transactionis类型
food_o3_ds <- as(split(food_o3_df$categ_lvl3_id, food_o3_df$parnt_ordr_id), "transactions")
head(food_o3_ds)
# save(food_o3_ds, file = "transactions_rdata/food_o3_ds.Rdata")
# 购物篮模型
food_o3_rules <- apriori(food_o3_ds, parameter = list(supp = 0.02, #支持度
conf = 0.5, #置信度
minlen = 2, #最小数
target = "rules"))
head(food_o3_rules)
# 查看规则
head(inspect(food_o3_rules))
# 将规则转成中文
food_o3_outrule <- as(food_o3_rules,'data.frame')
temp <- unlist(food_o3_outrule$rules)
number <- unique(unlist(str_extract_all(temp,"[0-9]+")))
for (i in 1:length(number)){
temp <- str_replace_all(temp, number[i], c3$categ_lvl3_name[c3$categ_lvl3_id == number[i]])
}
temp
food_o3_outrule[,1] <- temp
food_o3_outrule
# 将规则切分开
newname <- str_split(food_o3_outrule[,1], " => ")
newname <- t(sapply(newname,function(x) str_replace_all(x, "\\{|\\}", "")))
food_o3_outrule[,5:6] <- newname
# 导出成csv
write.csv(food_o3_outrule,file='C:/Users/Jennifer/Desktop/rules.csv')
library("arules")
library("stringr")
food_om_df <- read.csv("C:/Users/Jennifer/Desktop/生鲜购物篮模型/brandid.csv")
names(food_om_df) <- tolower(names(food_om_df))
# SQL
# select mg_brand_id, replace(mg_brand_name, chr(39),' ') as mg_brand_name from dw.v_dim_mg_brand_cur
# where mg_brand_id > 0;
mg <- read.table(file = "clipboard", header = TRUE, stringsAsFactors = FALSE, sep = "\t")
names(mg) <- tolower(names(mg))
save(food_om_df, file = "df_rdata/food_om_df.Rdata")
# save(mg, file = "mg.Rdata")
load("food_om_df.Rdata")
load("mg.Rdata")
food_om_df <- unique(food_om_df)
# R数据读取为transactionis类型
food_om_ds <- as(split(food_om_df$mg_brand_id, food_om_df$parnt_ordr_id), "transactions")
# CSV数据读取为transactionis类型
#ds = read.transactions('some.csv', format = "single", sep = ",", cols = c("PARNT_ORDR_ID", "CATEG_LVL3_ID"))
# save(food_om_ds, file = "transactions_rdata/food_om_ds.Rdata")
# 购物篮模型
food_om_rules <- apriori(food_om_ds, parameter = list(supp = 0.01, #支持度
conf = 0.3, #置信度
minlen = 2, #最小数
target = "rules"))
# 查看规则
inspect(food_om_rules, rhs in unique())
# 将规则转成中文
food_om_outrule <- as(food_om_rules,'data.frame')
temp <- unlist(food_om_outrule$rules)
number <- unique(unlist(str_extract_all(temp,"[0-9]+")))
for (i in 1:length(number)){
temp <- str_replace_all(temp, number[i], mg$mg_brand_name[mg$mg_brand_id == number[i]])
}
temp
food_om_outrule[,1] <- temp
food_om_outrule
# 将规则切分开
newname <- str_split(food_om_outrule[,1], " => ")
newname <- t(sapply(newname,function(x) str_replace_all(x, "\\{|\\}", "")))
food_om_outrule[,5:6] <- newname
# 导出成csv
write.csv(food_om_outrule,file='C:/Users/Jennifer/Desktop/生鲜购物篮模型/food_om_rules.csv')