1

我参加了数据挖掘课程,我们必须apriori algorithm在带有文本(即字符串)的数据集上运行。

['acornSquash', 'cottageCheese', 'laundryDetergent', 'oatmeal', 'onions', 'pizza', 'tomatoes', 'yogurt']
['bread', 'cinnamon', 'grapefruit', 'juiceBoxes', 'mayo', 'pastaSauce', 'pepper', 'waterBottles', 'yogurt']

我可以获得任何代码或帮助来运行先验算法吗?

提前致谢

4

1 回答 1

2

下面的链接包含基本 apriori 实现的源代码。

https://github.com/ak94/Apriori/

浏览自述文件​​。

通过基本实现我的意思是说,它没有实现任何有效的算法,如基于哈希的技术、分区技术、采样、事务减少或动态项集计数。

该代码每次都会扫描整个数据集。但它的内存效率很高,因为它总是从文件中读取输入而不是存储在内存中。

由于您目前正在学习本课程,因此我假设此代码将是您想自己编写的第一个代码。

要阅读有关先验算法的更多信息,我建议您阅读http://www3.cs.stonybrook.edu/~cse634/lecture_notes/07apriori.pdf

阅读、理解并尝试自己实施。

现在,让我们谈谈如何实现。当您浏览我发布的链接中的代码时,它在数字上实现,即它的输入文件包含作为数字而不是文本的项目集(如您的情况)

您可以简单地做的是,编写一个程序来将每个文本映射到一个特定的数字。

例如

假设您的数据集包含

[ 'oatmeal', 'onions', 'pizza', 'tomatoes', 'yogurt']
[ 'tomatoes', 'pepper', 'waterBottles', 'yogurt']

所以它看起来像

1 2 3 4 5 -1

4 6 7 5 -1

(-1 表示特定事务的结束,如代码中所示)

然后您将此输入文件用于您的代码(与链接中的相同或您自己的不同语言)

在程序执行后得到频繁项集后,您可以使用之前使用的map将其转换回来。

于 2014-11-18T11:07:27.980 回答