问题标签 [apriori]

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 投票
2 回答
2568 浏览

r - R: apriori error about not able to coerce NA's to nsparseMatrix

I am experimenting with the apriori algorithm in the arules package.

This is what I've done: I loaded a view from SQL Server into R. Since that data is not in transactions form (to use in apriori), I had to convert it:

data <- sapply(orders, as.factor)

Then I entered the apriori function:

apriori(data, parameter = list (support=0.005, confidence=0.5))

I get this error:

Error in t(as(from, "ngCMatrix")) : error in evaluating the argument 'x' in selecting a method for function 't': Error in asMethod(object) : cannot coerce 'NA's to "nsparseMatrix"

I checked with a query and I don't even have any attribute that is NULL/NA.

I don't understand what the error means. Does someone know what the problem is and how to solve this?

0 投票
1 回答
1307 浏览

machine-learning - 对每个属性具有大量值的分类数据进行关联规则挖掘

我正在努力挖掘数据集的关联规则,该数据集有很多二进制属性,但也有很多分类属性。将分类转换为二进制在理论上是可能的,但不切实际。我正在寻找一种技术来克服这个问题。

汽车规格数据示例,要执行关联规则挖掘,汽车颜色属性应该是二进制的,而在颜色的情况下,我们有很多颜色要转换为二进制(我的数据集是保险索赔及其比这个例子差得多)。

0 投票
1 回答
222 浏览

xml - Apriori算法挖掘XML文档

我正在尝试通过 Apriori 算法从 XML 文档中挖掘关联规则。这样做有两种通用方法:1) 将 XML 映射到关系格式并应用经典 Apriori,2) 直接挖掘 XML。我想使用后者,但有几个问题。

经过研究,我发现了两个不完整的解决方案:

SO中的这篇文章提供了生成k-itemset的解决方案

本文提出用XQuery模拟Apriori(提供的代码不完整)

请让我知道您对如何做到这一点的想法和建议(对于这两种方法)?

更新:

根据上述论文的另一个版本,数据集是这样的:

那么,函数如下

为了计算规则文档,他们引入了这个表达式:

现在,对我来说最大的挑战是将这些功能集成在一起工作。

0 投票
3 回答
20849 浏览

r - 如何仅获取 arules 中特定列的 LHS 和 RHS 项目?

在 apriori 函数中,我希望结果只包含 LHSHouseOwnerFlag=0HouseOwnerFlag=1. RHS 应该只包含来自该列的属性Product。例如:

部分答案在这个问题中得到解决: R arules, mine only rules from specific column

所以现在我使用以下内容:
rules <- apriori(sales, parameter=list(support =0.01, confidence =0.8, minlen=2), appearance = list(lhs=c("HouseOwnerFlag=0", "HouseOwnerFlag=1")))

然后我从另一个 SO 问题中使用它来确保只有 Product 列在 RHS 上:
inspect( subset( rules, subset = rhs %pin% "Product=" ) )

结果是这样的:

所以显然 LHS 能够包含所有可能的列,而不是HouseOwnerFlag像我指定的那样。从其他 stackoverflow 问题中,我看到我可以放入default="rhs"apriori 函数,如下所示:
rules <- apriori(sales, parameter=list(support =0.001, confidence =0.5, minlen=2), appearance = list(lhs=c("HouseOwnerFlag=0", "HouseOwnerFlag=1"), default="rhs"))

然后在检查时(没有子集部分,只是inspect(rules),规则(7)比以前少得多,但它确实只包含HouseOwnerFlag在 LHS 中:

但是,在 RHS 中,RHS 中的 Product 列中没有任何内容。所以它对它没有用inspectsubset因为它当然会返回null。我用不同的支持号码对其进行了多次测试,以试验产品是否会出现,但 7 条相同的规则保持不变。

所以我的问题是,如何同时指定 LHS(HouseOwnerFlag)和 RHS(产品)?我究竟做错了什么?

编辑:您可以通过从https://www.dropbox.com/s/tax5xalac5xgxtf/testdf.txt?dl=0下载此测试数据集来重现此问题,请 注意,我只从一个巨大的数据集中获取了前 20 行,所以不幸的是,此处的输出不会与我上面显示的示例具有相同的产品名称。但问题仍然是一样的。我希望能够仅获得HouseOwnerFlag=0和/或HouseOwnerFlag=1在 LHS 和ProductRHS 上的列。

0 投票
1 回答
66 浏览

xml - 为 Apriori 算法准备 XML 数据

Apriori算法一般以矩阵形式接收输入,如下:

同时,我的输入是一般形式的 XML 数据:

如何将此类数据转换为算法可接受的合适形式?任何建议。

谢谢

0 投票
1 回答
183 浏览

associations - 查询由 weka apriori 算法创建的关联规则

aprori 算法产生大量规则,有没有办法查询/过滤生成的规则集,例如查找具有特定项目出现在先行词中的规则,或具有特定大小的规则?

0 投票
1 回答
51 浏览

sql-server - 在 SQL Server 中插入查询

我有这张桌子TAB

我想获取单个 id 一起出现的 trans 的计数,例如,'1 有 90 和 99','2 有 90 和 99' 在整个表中,所以计数为 2。这类似于 Apriori 算法第三步。

我试过这个,但没有奏效-

我对 Trans- 90 和 99 的预期答案是

翻译1 | 反式2 | 支持 - - - - - -

90 | 99 | 1

我也想把它插入到一个新表中。

0 投票
2 回答
371 浏览

r - 在 R/Excel 中将多行数据转换为单行

我正在为 Market Basket Analysis 处理交易数据,该数据具有以下提到的表格格式:

我想转换数据的布局,以便先验算法可以工作,将数据作为单个事务数据。因此,出于此目的,我想将数据转换为以下格式:

  1. 谁能帮助我在 R 或 Excel 中转换这些数据?

  2. 这些数据是否适用于在 R 中运行先验算法(希望它会起作用)?

0 投票
3 回答
2804 浏览

r - R修剪挖掘规则 - 先验

我对在 R 中使用 apriori 获得的规则有疑问。

在数据输入、转换等之后,我输入了命令

规则 <- apriori(orders, parameter = list(supp = 0.01, conf = 0.5, maxlen=2))

我得到了我的规则。例如:

我的回答是:有没有办法修剪我不感兴趣的规则?在这种情况下,我只想查看第一条和第三条规则,以避免使用两条规则连接两个项目的“循环”规则。

谢谢!

0 投票
1 回答
1226 浏览

r - R源代码中的Apriori算法

我正在尝试用 R 代码编写先验算法。首先,我想计算列表中每个项目的频率。我的初始代码如下:

我的结果是:

但是,我希望它被安排为(也许在矩阵或数组中重新列出,然后我可以进一步使用它):

每个项目显示频率计数和字母顺序。有没有办法实现它?我尝试了 cbind、apply、relist,但还没有找到解决方案。谢谢

更新:

现在我的结果为:

然后如何从扫描原始列表中设置“I1,I2”,...,“I2,I3”的组合?

UpDATE:我尝试如下组合,它输出一个矩阵。

进一步修改为:

我的结果是:

接下来是从原始“a_list”中计算上述项目集的频率。也许最好输出为

为了与原始列表进行比较。

如何从原始 a_list 中获取此矩阵中项集的频率?先验算法要求扫描不小于最小支持度的所有项集,从1维(即a_list中的“I1”、“I2”、...、“I5”)到2维(即。“I1,I2”“I1 ,I3" "I2,I3" 在这种情况下),然后在适用的情况下打开(例如 "I1,I2,I3")。

更新:现在我可以单独找到具有特定模式的匹配项,例如 ("I1","I2") 或 ("I1","I3")。

结果:

一次性匹配“结果”中的所有模式(我在上面的示例中手动输入模式,但需要从“结果”中提取)的问题仍有待解决。并以以下形式输出它们: