如何计算java中支持的置信度

时间:2013-03-07 02:02:44

标签: java data-mining apriori

现在我正在开发一个程序,该程序会列出评分电影的用户列表并计算对所有电影的支持。我为我的节目提供了我想要计算的最多电影数量,最低支持率和最低置信度。

目前,我的程序会计算对所有单部电影的支持,并将符合支持最低要求的电影打印到具有支持值的文件中。

然后从满足最低支持的单部电影继续,并计算也满足最低支持的电影对,并将这些统计数据打印到新文件。

这种情况一直持续到没有更多的电影配对/集合达到最低支持率或达到最大电影数量。

最大电影数是一个整数。例如,如果我将它设置为3,它将仅计算对单个电影,2个电影对和3个电影集的支持,并将所有单个,对和集合打印,并将它们各自的支持打印回每个文件。

我的一个输出文件的示例如下所示......

    99 195 347,0.21314952279957583
    99 343 347,0.24284199363732767
    99 343 361,0.23329798515376457
    99 347 361,0.23223753976670203
    343 347 361,0.20254506892895016

这是三部电影的集合,空格分隔后跟一个“,”然后是支持值。单个电影和电影对文件看起来完全相同,但在逗号之前只有1(或2)个电影ID。

注意:我有一个电影ID(数字)到电影名称的映射,以便稍后打印。

我的问题......根据我的情况,有没有办法让我计算所有可能规则的可信度,并打印/保存那些符合最低置信度%的规则?

1 个答案:

答案 0 :(得分:0)

嗯,你尝试了什么?

整个互联网上都有APRIORI伪代码,还有数百种实现。大多数人未能有效实施的部分是将候选人数量保持在最低限度的规则 - 您不希望尝试3或更大规模的所有组合。它需要太长时间,并且无法完成所有组合。

Apriori的关键是下一轮候选人的产生和修剪。

另一方面,置信度定义非常简单。

计算规则,然后通过完整项目集和仅头部的支持来计算置信度。显然你已经获得了支持,所以计算信心应该是你的数据库支持值的两次查找。