【问题标题】:"Zero frequent items" when using the eclat to mine frequent itemsets使用 eclat 挖掘频繁项集时的“零频繁项”
【发布时间】:2018-11-06 05:28:42
【问题描述】:

所以我想根据一起购买的物品,并根据 wiki for eclat 找到模式和“集群”:

Eclat 算法用于执行项集挖掘。项集挖掘让我们可以在数据中找到频繁的模式,比如如果消费者买了牛奶,他也买了面包。这种类型的模式称为关联规则,并在许多应用领域中使用。

虽然,当我在 R 中使用 eclat 时,当通过 tidLists 检索结果时,我得到“零频繁项”和“NULL”。任何人都可以看到我做错了什么?

完整数据集:https://pastebin.com/8GbjnHK2

每一行都是一个事务,列中包含不同的项目。快速捕捉数据:

3060615;;;;;;;;;;;;;;;
3060612;3060616;;;;;;;;;;;;;;
3020703;;;;;;;;;;;;;;;
3002469;;;;;;;;;;;;;;;
3062800;;;;;;;;;;;;;;;
3061943;3061965;;;;;;;;;;;;;;

代码

trans = read.transactions("Transactions.csv", format = "basket", sep = ";")

f <- eclat(trans, parameter = list(supp = 0.1, maxlen = 17, tidLists = TRUE))

dim(tidLists(f))

as(tidLists(f), "list")

会不会是数据结构的原因?在这种情况下,我应该如何改变它?此外,我该怎么做才能获得建议的项目集?我无法从 wiki 中弄清楚。

编辑:按照@hpesoj626 的建议,我使用 0.004 进行 supp。但似乎该功能是对订单/用户而不是项目进行分组。我不知道如何导出数据,所以这里是 tidLists 的图片:

【问题讨论】:

  • 您对哪个部分有问题?使用下载的8GbjnHK2.txt 文件,我收到错误Warning message: In readLines(file, encoding = encoding) : incomplete final line found on '8GbjnHK2.txt'dataset &lt;- read.transactions("8GbjnHK2.txt", sep = ";", rm.duplicates = TRUE)。这是你的问题吗?
  • 不,我通过继续 txt 中的最后一行和字符来修复该部分。只需按 Enter 键,最后会有一个空行并保存。问题是我没有从 eclat 函数中得到任何结果。
  • 啊,我明白了。也许你需要调整你的支持?对于supp = 0.004,我得到180 15840 对于dim(tidLists(f))
  • 感谢它的工作。但它似乎是对订单而不是项目进行分组。你知道为什么吗?
  • 你是什么意思它是分组订单而不是项目?

标签: r data-mining


【解决方案1】:

问题是您将支持设置得太高。尝试调整supp,比如supp = .001,我们得到了

dim(tidLists(f))

# [1]   928 15840

对于您的数据集,最高支持为 0.08239,低于 0.1。这就是您使用 supp = 0.1 没有得到任何结果的原因。

inspect(head(sort(f, by = "support"), 10))

#      items             support count
# [1]  {3060620}         0.08239 1305 
# [2]  {3060619}         0.07260 1150 
# [3]  {3061124}         0.05688  901 
# [4]  {3060618}         0.05663  897 
# [5]  {4027039}         0.04975  788 
# [6]  {3060617}         0.04564  723 
# [7]  {3061697}         0.04306  682 
# [8]  {3060619,3060620} 0.03087  489 
# [9]  {3039715}         0.02727  432 
# [10] {3045117}         0.02708  429 

【讨论】:

  • 我认为你的意思是 0.001 支持,在你的第一行。
猜你喜欢
  • 2014-01-25
  • 2014-02-11
  • 2011-10-26
  • 2011-03-04
  • 2016-05-02
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多