【问题标题】:Data mining: Apriori issue. Min-support数据挖掘:先验问题。最小支撑
【发布时间】:2013-01-29 11:42:57
【问题描述】:

我编写了数据挖掘先验算法,它适用于小型测试数据,但我无法在更大的数据集上运行它。

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

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

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

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

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

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

所以我开始不断降低那架飞机,运行算法多次。但甚至没有 5% 给出预期的结果。我不得不将频率百分比降低到 0.0005,以使其至少有 50% 参与第一次迭代。

您认为目前的情况是数据问题,因为它是人工生成的? (微软冒险作品版) 还是我的代码或最小支持计算问题?

也许您可以提供任何其他解决方案或更好的方法?

谢谢!

【问题讨论】:

    标签: algorithm data-mining apriori


    【解决方案1】:

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

    如果您有很多不同的项目,而每次交易的项目很少,那么项目同时发生的机会就很低。

    您是否验证结果,是修剪不正确,还是算法正确,您的参数是否错误?

    你能真正命名一个经过 Apriori 修剪但不应该修剪的项集吗?

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2015-09-12
        • 2011-07-28
        • 2011-07-25
        • 2012-08-04
        • 2015-11-14
        • 2015-05-22
        • 2014-10-08
        • 1970-01-01
        • 2011-02-07
        相关资源
        最近更新 更多