问题标签 [fpgrowth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
94 浏览

apache-spark - Pyspark Fpgrowth - 是否可以只返回关闭的频繁项集?

计算频繁项集的 Pyspark Fpgrowth 算法会返回大量冗余子集。是否可以只返回关闭的频繁项集?

仅供参考:封闭的频繁项集- 没有相同支持(相同频率)的超集的集合。

频率项目集:

在此处输入图像描述

  • [0],并且[1]具有相同的频率,[1 0]并且它们是冗余的-如果我们知道频率,[1 0]我们知道其子集的频率将相同(通常,至少相同,但在这种情况下完全相同)
  • [2 0][2 1]并且[2][2 1 0]具有相同频率的子集并且也是冗余的
  • 应该只有两个条目:[1 0][2 1 0]

如果数据很大,则修复这需要比函数更多的时间fpGrowth.fit()

  • model.freqItemsets.select("*").toPandas()需要很多时间,主要是因为检索所有那些冗余子集
  • 删除那些冗余规则的后处理也需要很多时间

有一个已解决的问题表明此问题已在 spark 中处理(可能仅在内部?): https ://issues.apache.org/jira/browse/SPARK-6143 但我在 sparks FPGrowth API 中找不到任何相关内容

0 投票
0 回答
33 浏览

r - 如何在R中的rCBA包中使用fpgrowth算法中的结果参数?

我传递给 fpgrowth 方法的交易中的项目列的形式为

在这里,我试图找到在交易中经常在一起的产品。

虽然这里的示例具有以下用于交易项目的键值形式

此示例继续在后续参数中使用“物种”

由于我是 R 的新手,我不知道如何将我的交易转换为这种格式,以及我应该把什么作为结果。

0 投票
0 回答
80 浏览

r - dimnames(x) <- dn 中的错误:“dimnames”[2] 的长度不等于使用 rCBA::fpgrowth 的数组范围错误

我有以下数据集,我想使用 FP 增长为其生成关联规则

按照此处文档中的示例,我在生成规则之前执行了以下步骤。

一点阅读使我发现该错误与具有有效列名的结果参数有关。但是“product_B”是我数据中的有效列名

0 投票
1 回答
564 浏览

python - TypeError: apriori() 得到了一个意外的关键字参数“mini_support”

这是关于先验与 FP 增长算法的教程,这里的问题是在先验中计算最小支持我得到了这个错误。我该如何解决这个问题?

0 投票
0 回答
50 浏览

python - 如何获取 Apriori 算法和 FP 增长算法的执行时间

我需要比较 apriori 和 fp 增长算法,所以我需要测量执行时间,然后在图中将其可视化。

任何指导将不胜感激。谢谢你。

0 投票
0 回答
39 浏览

python - 为什么我的 FP 增长代码没有返回正确的前缀路径集?

我正在实现 FP 增长算法,目前我可以从一组事务中建立一个 FP 树。下一步是挖掘前缀路径并从中构建树。这是我的节点类:

类中有更多用于创建树的函数,但这些函数与我当前的问题并不相关(我认为)。每个节点都有一个父节点,一些节点有子节点,树被存储为代表根节点的对象。每个节点的子节点存储在与节点关联的字典中,其键是项目的名称,值是节点对象。

我有以下函数适用于单节点实例以查找前缀路径(基本上是父节点,然后是父节点的父节点,依此类推,直到根节点):

这适用于以下类型的输入:

返回

我想我应该注意到我正在使用这个数据集,来自 Han 等人的数据挖掘:概念和技术:

到目前为止,一切都很好。但是当我尝试在整个树中查找长度大于 1 的所有前缀路径时,总是会出错。我要做的是编写一个函数,该函数接受根节点并返回树中所有节点的所有前缀路径的字典或列表。我已经尝试了几次,有几种方式:

这将返回:

另一个尝试:

返回

我不确定自己做错了什么,而且无论我花多长时间思考这个问题,我最终都会以稍微不同(并且仍然错误)的方式做同样的事情。

递归调用很可能是问题所在,自从我不得不使用递归以来已经有一段时间了。遍历这棵树并收集前缀路径的正确方法是什么?

编辑:澄清一下,FP 增长是频繁的模式增长,如下所述:https ://scholar.google.com/scholar_url?url=https://web.iitd.ac.in/~bspanda/fptree.pdf&hl=en&sa =X&ei=Wt1aYbjZHdWR6rQPoZm​​ruAk&scisig=AAGBfm2FZzJEsEwGApOtUPol2gdVBtQ38Q&oi=学者

部分解决方案:我实现了以下代码:

这将为初始 FP 树返回正确的前缀路径字典,这很棒。但是,一旦我进入必须从通过挖掘前缀路径创建的树中找到前缀路径的步骤,我就会遇到问题。这是项目“5”的前缀路径生成树之一:

这是我们所期望的,并且到目前为止看起来不错。但是当我尝试在它上面运行我的前缀查找功能时:

我得到这个废话:

现在我真的很困惑,因为即使在那棵树中也没有“4”项。这些物品是从哪里来的?为什么我的函数在这棵树上的行为不像在初始 FP 树上那样?

0 投票
2 回答
43 浏览

r - 比较组间的年费率

我正在努力比较一段时间内两个百分比之间的“死亡率”。我的目标是获得每组的年费率。

我的值已经以百分比(startend值)表示,代表了几年森林总覆盖率中 mych 森林的损失情况(干扰、烧毁、砍伐等)。例如,第一年是 1%,最后一年 20% 是森林总损失的累积值。

我遵循了复合年增长率( CARG ) 的计算,考虑了第一年、去年和总年数的值。

这是我的两组虚拟数据,例如。死亡率取决于树种:

为了计算 CAGR,我使用了这个函数:

给予:

然而,16-17%的CARG率似乎非常高!我预计每年大约 1-3%。请问,我的公式有什么问题?是因为原始值(开始,结束)已经是百分比吗?或者,是因为end的累积值start

谢谢你的想法!

0 投票
0 回答
43 浏览

apache-spark - 如何在网站上提供 PySpark FPGrowth 关联规则?

在生产中服务关联规则的最佳实践是什么?

我使用 FPGrowth 算法的 pyspark 实现来开发关联规则。我想使用这些转换方法根据购物车中的商品向网站用户展示免费产品。

我最初的想法是设置一个调用转换方法的预测 api,但是代码块可能需要很长时间才能运行。

转换方法不是用于实时服务吗?在生产中服务我的关联规则的最佳方式是什么?

0 投票
0 回答
19 浏览

python - 将关联规则学习的输出与数据帧的索引匹配

我有一个dataframe这样的:

我将上述dataframe内容放入fpgrowth算法中

我得到了类似的结果

我想将此结果与初始的 column1 匹配dataframe

所以我想知道规则ffff来自df3df4

我试图将首字母dataframe变成一个dictionary表格,但这不起作用

有任何想法吗?

0 投票
0 回答
14 浏览

scala - Spark MLlib FPGrowth 不适用于频繁项目集中的 40 多个项目

当Frequent Itemset 中的频繁项小于25 时,Spark FPGrowth 可以很好地处理数百万个事务(记录)。超过25 会遇到计算限制(执行程序计算时间不断增长)。对于频繁项集中的 40 多个项目,该过程永远不会返回。

为了重现,我们创建了一个包含 3 个具有相同项目(其中 40 个)的交易的简单数据集,并在 0.9 支持下运行 FPgrowth,该过程永远不会完成。运行在具有 4 核、32GB 和非常小的输入数据集的本地模式下。

以下是我们用来缩小问题范围的示例数据:

在此处输入图像描述

虽然计算随着频繁项集中的每个项目而增长 (2^n -1),但它肯定应该能够处理频繁项集中的 40 个或更多项目。

这是 FPGrowth 实现的限制吗,我是否缺少任何调整参数?谢谢你。