生鲜购物篮模型

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 = "	")
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 = "	")
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')
原文地址:https://www.cnblogs.com/ilxx1988/p/4112733.html