问题标签 [market-basket-analysis]

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 投票
1 回答
2049 浏览

r - 正确将数据帧转换为 R 中规则的事务

我必须在 R 中执行关联规则,我在这里找到了示例 http://www.salemmarafi.com/code/market-basket-analysis-with-r/ 在此示例中他们使用data(Groceries) 但他们提供了原始数据集 Groceries.csv

我加载这些数据

所以我必须将其转换为 arule 要求的交易

让我们检查数据(杂货)

和我从原始 csv 转换的数据

我们在数据中看到(杂货)

在我的反式数据中

即我从 Groceries.csv 获得 7011 列,同时在嵌入式示例中(169 列)

为什么会这样?此文件如何正确转换。我必须理解它,因为,我无法处理我的文件

我尝试找到类似的主题,但这两个帖子对我没有帮助 How to prep transaction data into basket for arules R (arules) Convert dataframe into transactions and remove NA

0 投票
4 回答
341 浏览

r - 如何将市场篮子项目划分为集群?

我有一个数据集如下:(我举了一个简单的例子,但真实的数据集要大得多)

其中 V1, V2,V3...Vn 是项目,1,2,3,4...1000 是事务。我想将这些项目划分为 k 个集群,以便在每个集群中,我拥有在同一事务中最常一起出现的项目。为了确定每对项目一起出现的次数,我尝试了交叉表,我得到了以下结果:

对于这个小例子,如果我想创建 2 个集群(k=2),使得一个集群必须包含 2 个项目(以保持集群之间的平衡),我将得到:

集群 1={V1,V4}

集群 2={V2,V3}

因为:

1) V1 出现频率更高,V4 (V1,V4)=3 > (V1,V3) > (V1,V2) 和 V4 相同。

2) V2 出现频率更高,V2 (V2,V3)=5 > (V2,V4) > (V2, V1) 和 V3 相同。

我怎样才能用 R 和更大的数据集做这个分区?

0 投票
1 回答
741 浏览

r - R 编程:在 apply() 函数和 kmeans() 函数中出现错误

我正在使用 R 进行市场篮子分析,这样做我正在计算肘部方法的 WSS,然后kmeans()也使用函数。我使用了一个标准化数据帧 pc1,然后我们计算了 PCA,然后在代码中我们有以下命令:-

然后在运行此程序时,我在带有apply()函数的代码的第 6 行收到以下错误:-

获取错误(as.character(FUN),模式=“功能”,环境=环境):
找不到模式“功能”的对象“2013-12-09”

在下一行我得到: -

第二个错误显然是由于聚类的数量大于不同的点,但它是否与前一个错误有关?

任何形式的帮助将不胜感激。此外,如果有人知道一个好的网站或 pdf 链接来了解 PCA 和肘部测试(就市场篮子和示例而言)也会有所帮助。

0 投票
0 回答
59 浏览

r - 如何使用 R 创建大小相等的集群?

我想将 marketbasket 产品划分为平衡的集群(具有相同大小的集群)。我尝试了 K-means 和 PAM,但我无法找到使每个集群中的元素(产品)数量相同的方法。例如,如果我有 N 个产品和 k 个集群,我希望在每个集群中有 N/K 个元素(假设 N 可以被 k 整除)。有什么建议么 ?谢谢 !

这是一个示例:我有以下数据集:

它是一个矩阵,其中行(40 行)代表产品,列是交易(100 列)。然后我应用了 PAM:

其中 700109,70014... 是我的产品,簇数为 k=4。如您所见,cluster1 包含 34 个元素,而 cluster2、cluster3 和 cluster4 各包含 2 个元素。所以他们不平衡!我想要一个结果,使得四个集群中的每一个都包含 10 个元素(因为我在这个例子中拿了 40 个产品)。

0 投票
1 回答
149 浏览

python - DREAM - 神经网络不收敛 - 上下损失

我正在使用这个 DREAM 进行下一个篮子预测: https ://github.com/LaceyChen17/DREAM

它非常简单直接,运行一些调整(常量的小错误)但我的损失在我尝试训练它之后很疯狂。

我正在尝试使用建议的数据集(来自 instacart)来模拟其输出: https ://www.instacart.com/datasets/grocery-shopping-2017

但数据似乎并没有收敛。我试图将 LR 从 0.1 更改为 0.001,调整 CLIP 或 dropout,但没有任何积极的结果。我的损失不断下降,然后像疯了一样再次上升。

我试图研究这个网络,在我第一次运行它之后,我想从那里开始工作,但现在我似乎无法调试它的问题。

这是我的配置示例:

有什么见解吗?

0 投票
1 回答
278 浏览

python - 在 Python 中使用 ML 按购买对用户进行分组

我有一个购买数据集

由此,我想创建一些“集群”。从数据来看,用户 1 和用户 2 非常相似,用户 3 和用户 4 非常相似。

我不知道如何使用 Python 中的机器学习创建这种分析。

例如,我猜它可能是距离

所以我可以确定每个用户与其他用户的相似程度。

我想要的是根据他们的购买来确定各种用户是否属于某些组。例如,如果一些用户购买了许多与婴儿相关的物品,他们可能是新妈妈/父亲,而购买许多与软件相关的书籍的用户可能是 IT 专业人士/学生。

0 投票
1 回答
39 浏览

sql - 篮子分析错误

它给出了那个错误信息——

OLE DB 错误:OLE DB 或 ODBC 错误:“销售”附近的语法不正确。;42000。

怎么了??

0 投票
1 回答
69 浏览

r - R中市场篮子分析中的报价

我正在尝试在 R 中进行先验分析,但是由于我将在不同的环境中运行它,因此我必须在没有“read.transactions”功能的情况下执行此操作(因为这需要从文件中获取数据,而我不能这样做在这个例子中)。换句话说 - 我必须使用我已经拥有的列,而不涉及任何文件。所以,这是我写的一个例子来告诉你我的问题:

所以这里的问题是这个函数以错误的方式读取我的项目向量。这是一个输出:

所以基本上它所做的是而不是像这样制作项目列表:

它使 itemlist 像这样:

在我对这个主题的调查中,我了解到这里的一个问题是引号。只是为了尝试,我在 R 中使用“read.transactions”制作了这个例子,当我将“quote”参数标记为 FALSE 时,它开始正常工作。但是再来一次,因为我不能使用 read.transactions。我不知道如何处理这个问题。
当然这个数据只是一个例子,所以在我的真实数据中,我不能那么容易地改变它,我必须使用一些 R 代码来完成,而不是使用文件。
我认为我最好的想法是尝试

但我仍然无法让它工作。
将不胜感激任何帮助,我已经很绝望了。

0 投票
1 回答
982 浏览

mysql - 创建 MySQL 购物篮分析

对于我的数据类的最后一个项目,我尝试在 MySQL(使用 Workbench 6.3 CE 和 Server 5.7)中从一个包含 900,000 多个事务的数据库中创建一个购物篮分析。

这是我为得到我需要的东西而拼凑的一张桌子的草图(其中一些东西是供以后查询的)......

桌子:

列:


这是我拼凑起来尝试制作我自己的购物篮分析版本的查询:

我遇到的问题是查询将运行数小时、数小时和数小时,最终什么也没给我,或者在 Workbench 中可视化需要很长时间以致于它是无用的。

有没有人知道我在这里做错了什么,或者我应该做些什么来加快速度?提前致谢。

*编辑:这是您要求的额外上下文。*

完整的原始数据文件

到目前为止我创建的两个自定义表:

CREATE TABLE `sales` (\n `pos_trans_id` int(11) NOT NULL DEFAULT \'0\', \n `basketId` varchar(45) DEFAULT NULL, \n `productNumber` varchar(25) DEFAULT NULL, \n `productDescription` varchar(255) DEFAULT NULL, \n `categoryCode` varchar(25) DEFAULT NULL, \n `categoryDescription` varchar(255) DEFAULT \'0\', \n `subcategoryCode` varchar(25) DEFAULT NULL, \n `subcategoryDescription` varchar(255) DEFAULT \'0\', \n `quantity` int(11) DEFAULT NULL, \n `purchaseAmt` decimal(12,2) DEFAULT NULL, \n `dateOfSale` int(11) DEFAULT NULL \n) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE 'date' (\n `dateKey` int(11) NOT NULL, \n `dayOfTheMonth` int(2) DEFAULT NULL, \n `dayOfTheWeek` int(1) DEFAULT NULL, \n PRIMARY KEY (`dateKey`) \n) \n ENGINE=InnoDB DEFAULT CHARSET=latin1

0 投票
1 回答
446 浏览

r - 将项目数量合并到 Apriori 算法的事务中

我正在研究一个简单的推荐系统,我从使用 R 中的 arules 的先验算法开始。令我惊讶的是,当支持度大于 0.0001 时,我得到了 0 条规则,这对于支持度来说太低了。我发现造成这种情况的原因可能是每笔交易中的重复项目都被删除了。我试图通过将删除重复项设置为 false 来解决此问题:

但这没有用,我得到了以下信息

那么有没有办法解决这个问题,或者有没有更好的方法来考虑代码中每个事务中每个项目的数量?python或任何其他语言有更好的选择吗?如果有人可以帮助我解决这个问题,那就太好了。