2016-06-08 55 views
0

我开始在机器学习项目的工作,前几天,我有以下情况:频繁项集最好的算法和图书馆

我行程的一个数据库(的行程目的地的集合是在选择时一起旅行的一部分),我想确定一个目的地是否将作为其他选定目的地的旅行的一部分被选择。下面是考虑到A,B,C,d为目的地的示例:

A, B -> C 
A, D, C -> B 

我认为这是一个推荐系统的问题,我学技术接近的溶液。

我试过使用WEKA的Apriori和FPGrowth,但由于我有91个项目和12,000个事务(因此,这是一个包含91列和12,000行TRUE和FALSE值的ARFF文件)并且该程序永远不会结束,也不会消耗超过5 GB的RAM(我等待了运行在Core i7最后一代和12 GB RAM PC上的算法需要30小时)。此外,我没有看到任何选择只选择值为TRUE作为暗示的规则(我需要这个,因为我想看看是否有人前往X,因为其他人前往Y.

那么,有没有其他的技术或方法可以用来实现我期望的结果?我想要输出一个带有“规则”或者“暗示”另一个集合的项目集的文件的项目,而 “推荐” 的概率

例:!

A, B -> C ; 90% 
verbose: "People who travel to Rome and Florence travel to Milan with a probability (or other measure) of 90%" 

感谢

回答

1

Apriori算法的实现似乎不正确。尝试使用Apriori算法的另一个实现或检查当前的实现。为了生成目标之间的关联规则,Apriori或更快的FP-Growth算法就好了。也许这有助于我们达成一般理解:R - association rules - apriori

0

实际上,Weka中的实现效率很低。您可以检查提供模式挖掘算法的高效实现的SPMF data mining library in Java,。它实际上有100多种算法,包括Apriori,FPGrowth和其他许多算法。我会建议使用FPGrowth这是非常快速和高效的内存。但你也可以检查其他算法。顺便说一下,我是图书馆的创始人。