数据挖掘:Apriori问题。最小支持

时间:2013-02-13 19:51:30

标签: algorithm data-mining apriori

我编写了数据挖掘apriori算法,它适用于小型测试数据,但我遇到了在更大的数据集上运行它的问题。

我正在尝试生成经常一起购买的商品规则。

我的小测试数据是5笔交易和10件产品。

我的大测试数据是1,100万笔交易和大约2700种产品。

问题:最小支持和过滤非频繁项目。 让我们想象一下,我们对频率为60%或更高的项目感兴趣。 frequency = 0.60;

当我为具有60%频率算法的小数据集计算Min-support时,将删除购买少于3次的所有项目。 Min-support = numberOfTransactions * frequency;

但是当我尝试为大型数据集做同样的事情时,算法将在第一次迭代后过滤几乎所有项目集,只有几个项目能够满足这样的平面。

所以我开始越来越低地降低该平面,运行算法多次。但即使是5%也没有给出预期的结果。我不得不将频率百分比降低到0.0005,以使其至少有50%的项目参与第一次迭代。

您如何看待当前的情况,可能是数据问题,因为它是人为生成的? (微软冒险作品版) 或者这是我的代码或min支持计算问题?

也许你可以提供任何其他解决方案或更好的方法来做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:0)

也许这就是您的数据的样子。

如果您有很多不同的商品,每笔交易的商品很少,则商品共存的可能性很低。

验证结果,修剪错误,算法是否正确以及参数不正确?

你真的可以命名Apriori修剪但不应该修剪的项目集吗?

问题是,是的,选择参数很难。不,apriori不能使用自适应阈值,因为这不符合单调性要求。您必须对所有项目集大小使用相同的阈值。

答案 1 :(得分:0)

实际上,这完全取决于您的数据。对于某些真实数据集,我必须将支持阈值设置为低于0.0002才能获得一些结果。对于其他一些数据集'我使用0.9。这实际上取决于您的数据。

顺便说一下,Apriori和FPGrowth存在变异,可以同时考虑多个最小支持,以便为不同的项目使用不同的阈值。例如,CFP-Growth或MIS-Apriori。还存在一些专门用于挖掘稀有项集或稀有关联规则的算法。如果您对此主题感兴趣,可以查看我的软件,其中提供了一些算法:http://www.philippe-fournier-viger.com/spmf/