zoukankan      html  css  js  c++  java
  • 生鲜购物篮模型

    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')
  • 相关阅读:
    ASP.NET常用技巧方法代码断
    130道ASP.NET面试题
    ASP.NET 数据绑定常用代码及其性能分析
    asp.net C# 时间格式大全
    ASP.NET 日期 时间 年 月 日 时 分 秒 格式及转换
    经典算法,每个语言都出现的算法
    Asp.net 后台添加CSS、JS、Meta标签
    ASP.NET 窗体间传值实现方法详解
    asp.net 常用的几种调用存储过程的方法
    codeforces 868C
  • 原文地址:https://www.cnblogs.com/ilxx1988/p/4112733.html
Copyright © 2011-2022 走看看