我试着阅读了许多文章,试图了解将关联分析(可能是市场篮子分析)纳入我的系统的第一步应该是什么。他们都深入研究了算法的实现,但没有人首先讨论如何存储数据。如果有人能给我一些起点或文章链接,我会非常感激。
我想实现的第一件事是跟踪用户点击,并根据跟踪的数据提供建议。例如,用户点击了链接A,然后点击了链接B和链接C。我可以用一些相关的元数据(用户、用户组织、用户角色等)跟踪此活动。
我不希望它仅限于链接。将来,我想在系统中添加一些类似的用例,并使其智能化。例如,如果用户为字段A和B设置特定值,他/她很可能会为字段C设置值<bla>
。
我的系统可能在一天内生成数千个这样的数据点(例如用户点击、字段选择等)
以下是我的问题:
-
我应该如何存储数据?执行SQL或不执行SQL(我简要研究了Mongo DB,它看起来很有前景)
-
我应该使用什么工具来执行关联分析?有什么开源工具我可以使用吗?
-
这取决于。您的数据适合NoSql数据库吗?要回答这个问题,最好阅读CAP定理及其案例研究:https://en.wikipedia.org/wiki/CAP_theorem或http://robertgreiner.com/2014/06/cap-theorem-explained/.有些时候,您需要一致性(取决于您的数据)和可用性=>,因此最好使用Mysql等关系数据库(尝试阅读案例研究并分析您的数据以选择最佳工具)
-
有大量的开源库,但在我看来,最好先读一些概念和算法。尝试搜索Apriori、ECLAT和FP-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