R 特定日期后购买的产品分析
我一直在尝试对一段时间后购买的产品进行序列分析,例如客户在7天后购买的产品组合以及购买此类组合的客户比例,我尝试了arulesSequence软件包,但我的数据结构与软件包不符,我在列中有用户id、购买日期、产品id和产品名称,我搜索了很多,但没有明确的方法R 特定日期后购买的产品分析,r,sequence,arules,R,Sequence,Arules,我一直在尝试对一段时间后购买的产品进行序列分析,例如客户在7天后购买的产品组合以及购买此类组合的客户比例,我尝试了arulesSequence软件包,但我的数据结构与软件包不符,我在列中有用户id、购买日期、产品id和产品名称,我搜索了很多,但没有明确的方法 Dayy UID leaf_category_name leaf_category_id 5/1/2018 47 Cubes 38860 5/1/2018 2
Dayy UID leaf_category_name leaf_category_id
5/1/2018 47 Cubes 38860
5/1/2018 272 Pastas & Noodles 34616
5/1/2018 1827 Flavours & Spices 34619
5/1/2018 3505 Feature Phones 1506
这是我拥有的数据类型,UID代表用户id,leaf category是用简单的术语购买的产品。
我有2049278行的巨大数据集
我试过的代码-
library(Matrix)
library(arules)
library(arulesSequences)
library(arulesViz)
#splitting data into transactions
transactions <- as(split(data$leaf_category_id, data$UID), "transactions")
frequent_sequences <- cspade(transactions, parameter=list(support=0.5))
我想看看特定日期后购买产品的顺序。
有人能帮我吗
谢谢路径很好,但是,没有您的数据,我们可以使用著名的数据集作为示例,例如杂货店(在您的情况下,您可以在所需数据之后再对数据进行子集):
然后您可以看到关联规则:
association <- apriori (Groceries, parameter = list(supp = 0.001, conf = 0.5))
inspect(head(association_conf))
lhs rhs support confidence lift count
[1] {rice,sugar} => {whole milk} 0.001220132 1 3.913649 12
[2] {canned fish,hygiene articles} => {whole milk} 0.001118454 1 3.913649 11
[3] {root vegetables,butter,rice} => {whole milk} 0.001016777 1 3.913649 10
[4] {root vegetables,whipped/sour cream,flour} => {whole milk} 0.001728521 1 3.913649 17
[5] {butter,soft cheese,domestic eggs} => {whole milk} 0.001016777 1 3.913649 10
[6] {citrus fruit,root vegetables,soft cheese} => {other vegetables} 0.001016777 1 5.168156 10
association{全脂牛奶}0.001220132 1 3.913649 12
[2] {鱼罐头,卫生用品}=>{全脂牛奶}0.001118454 1 3.913649 11
[3] {根类蔬菜、黄油、大米}=>{全脂牛奶}0.001016777 1 3.913649 10
[4] {根类蔬菜、生奶油/酸奶油、面粉}=>{全脂牛奶}0.001728521 1 3.913649 17
[5] {黄油、软奶酪、家庭鸡蛋}=>{全脂牛奶}0.001016777 1 3.913649 10
[6] {柑橘类水果、根类蔬菜、软奶酪}=>{其他蔬菜}0.001016777 1 5.168156 10
您可以在最后一列中看到计数,每个规则显示了多少次:可以将其读取为“多少行”,如果每行是客户,则为客户数。但是,如果您想要例如计数=4或计数3(伪代码),您必须考虑您对多少客户意味着什么。在这种情况下,您必须评估您的数据。
编辑
最后,您可以看一看,正如您所说,还有cspade算法可以帮助您。请分享您的数据示例和您尝试过的代码。请看这里的更多信息,这个问题的重点不够。没有数据。没有密码。没有算法@董:谢谢你的建议,我已经编辑了所需的内容。谢谢你的回答,但我已经做了你分享的分析,arules给出了一起购买的产品,不考虑时间间隔,在完成了apriori算法后,我还想查看特定时间范围内的产品组合,例如,如果我今天购买手机,我可能会在一周后购买手机套,我正在寻找这样的产品分析,这些产品可以在特定的购买时间段后上市。您可以按特定日期(从2018年1月1日到2018年1月8日)对数据进行子集,在每个子集的时间为每个客户创建“篮子”,然后对每个子集应用apriori,或者你认为这不是一种正确的方法吗?我想对每周的数据进行分析,我有4个月的交易,如果我有7天的子集,它会给我很多小子集,总体上可能是错误的,我有没有办法使用像arulesSequence这样的软件包,它可以一次应用于整个数据?使用
lubridate()
软件包,您可以使用函数week()
每周自动执行。但是我不明白你说的“总体”是什么意思,如果你每周都需要分析,我想可以跳过整个分析。最后不是,我只能建议你每周应用apriori。我的意思是,我的全部数据是,应用你的数据子集的想法,假设第一周我购买的大米和糖的组合是0.05信心,第二周我获得的组合是0.6信心,依此类推,但最后我必须展示我分析的综合结果,然后我将如何准确地展示结果,比如我会以0.05的置信度说,我可以说它们是一起购买的,还是以0.6的置信度?所以,我一直在寻找一种算法,它可以让我在所有的周内购买的产品组合都有信心、支持和提升。
library(arules)
data(Groceries)
# here you can see the product with the biggest support
frequentproducts <- eclat (Groceries, parameter = list(supp = 0.07, maxlen = 15))
inspect(frequentItems)
items support count
[1] {other vegetables,whole milk} 0.07483477 736
[2] {whole milk} 0.25551601 2513
[3] {other vegetables} 0.19349263 1903
[4] {rolls/buns} 0.18393493 1809
[5] {yogurt} 0.13950178 1372
[6] {soda} 0.17437722 1715
[7] {root vegetables} 0.10899847 1072
[8] {tropical fruit} 0.10493137 1032
[9] {bottled water} 0.11052364 1087
[10] {sausage} 0.09395018 924
[11] {shopping bags} 0.09852567 969
[12] {citrus fruit} 0.08276563 814
[13] {pastry} 0.08896797 875
[14] {pip fruit} 0.07564820 744
[15] {whipped/sour cream} 0.07168277 705
[16] {fruit/vegetable juice} 0.07229283 711
[17] {newspapers} 0.07981698 785
[18] {bottled beer} 0.08052872 792
[19] {canned beer} 0.07768175 764
itemFrequencyPlot(Groceries, topN=5, type="absolute")
association <- apriori (Groceries, parameter = list(supp = 0.001, conf = 0.5))
inspect(head(association_conf))
lhs rhs support confidence lift count
[1] {rice,sugar} => {whole milk} 0.001220132 1 3.913649 12
[2] {canned fish,hygiene articles} => {whole milk} 0.001118454 1 3.913649 11
[3] {root vegetables,butter,rice} => {whole milk} 0.001016777 1 3.913649 10
[4] {root vegetables,whipped/sour cream,flour} => {whole milk} 0.001728521 1 3.913649 17
[5] {butter,soft cheese,domestic eggs} => {whole milk} 0.001016777 1 3.913649 10
[6] {citrus fruit,root vegetables,soft cheese} => {other vegetables} 0.001016777 1 5.168156 10