如何从头开始实施关联规则分析或购物篮分析?

How to implement Associative Rules Analysis or Market Basket Analysis from scratch?

我试图浏览大量文章,试图了解将关联分析(可能是购物篮分析)纳入我的系统的第一步应该是什么。他们都深入算法的实现,但没有人首先谈到如何存储数据。 如果有人能给我一些入门指南或文章 link,我将非常感激。

我要实现的第一件事是跟踪用户点击并根据跟踪数据提供建议。 例如。用户点击了 link A,随后点击了 link B 和 link C。我可以通过一些关联的元数据(用户、用户组织、用户角色等)跟踪此 activity

我不希望它仅限于 links。将来,我想在系统中添加一些类似的用例,并想让它变得智能。例如。如果用户为字段 A 和 B 设置特定值,很可能 he/she 将为字段 C 设置值 <bla>

我的系统一天可能会生成几千个这样的数据点(例如用户点击、字段选择等)。

以下是我的问题:

  1. 我应该如何存储我的数据? Go SQL or No SQL(我简单地查看了 Mongo 数据库,它看起来很有希望)

  2. 我应该使用什么工具来执行关联分析?有没有我可以使用的开源工具?

  1. 视情况而定。你的数据适合 NoSql 数据库吗?要回答这个问题,最好阅读 CAP 定理及其案例研究:https://en.wikipedia.org/wiki/CAP_theorem or http://robertgreiner.com/2014/06/cap-theorem-explained/ .有时您需要一致性(取决于您的数据)和可用性 => 因此最好使用关系数据库,例如 Mysql(尝试阅读案例研究并分析您的数据以选择最佳工具)

  2. 有大量的开源库,但我认为最好先阅读一些概念和算法。尝试搜索 AprioriECLATFP-GROWTH 算法并了解它们的概念。然后你可以选择一个工具或自己编写代码。一些有用的工具(取决于您的编程语言):

Python: https://github.com/asaini/Apriori, https://github.com/enaeseth/python-fp-growth, https://github.com/enaeseth/python-fp-growth/blob/master/fp_growth.py

PHP: https://github.com/sigidhanafi/fp-growth-php

JAVA: https://github.com/goodinges/FP-Growth-Java, http://www.philippe-fournier-viger.com/spmf/

您也可以使用 Spark:https://spark.apache.org/docs/1.1.1/mllib-guide.html