我编写了数据挖掘先验算法,它在小型测试数据上运行良好,但在更大的数据集上运行它时遇到问题。
我正在尝试生成经常一起购买的物品的规则。
我的小测试数据是 5 笔交易和 10 种产品。
我的大测试数据是 1100 万笔交易和大约 2700 种产品。
问题:最小支持和过滤非频繁项。假设我们对频率为 60% 或更高的项目感兴趣。
frequency = 0.60;
当我Min-support
以 60% 的频率计算一个小数据集时,算法将删除所有购买次数少于 3 次的商品。Min-support = numberOfTransactions * frequency;
但是当我尝试对大型数据集做同样的事情时,算法将在第一次迭代后过滤几乎所有项目集,只有几个项目能够满足这样的平面。
所以我开始把那架飞机越来越低,运行算法很多次。但甚至没有 5% 的人给出预期的结果。我必须将频率百分比降低到 0.0005 才能获得至少 50% 的第一次迭代中涉及的项目。
您如何看待目前的情况,因为它是人工生成的,因此可能是数据问题?(微软冒险作品版)或者是我的代码或最小支持计算问题?
也许您可以提供任何其他解决方案或更好的方法来做到这一点?
谢谢!