1

现在我正在开发一个程序,该程序获取对电影评分的用户列表并计算对所有电影的支持。我给我的程序一个我想计算的电影的最大数量、一个支持最小值和一个置信度最小值。

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

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

这种情况一直持续到不再有满足最小支持或达到最大电影数量的电影对/集。

电影的最大数量是一个简单的整数。例如,如果我将其设置为 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(编号)到电影名称的映射,以便稍后打印。

我的问题......根据我所拥有的,有没有办法让我计算所有可能规则的置信度并打印/保存满足最低置信度百分比的规则?

4

1 回答 1

0

嗯,你试过什么?

互联网上到处都是 APRIORI 伪代码,也有数百种实现。大多数人未能有效实施的部分是将候选人数量保持在最低限度的规则——你不想尝试所有大小为 3 或更大的组合。完成所有组合花费的时间太长而且毫无价值。

Apriori 的关键是下一轮候选者的生成和修剪。

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

计算一个规则,然后仅通过整个项目集和头部的支持来计算置信度。显然您已经获得了支持,因此计算置信度应该是对您的支持值数据库的两次查找。

于 2013-03-07T16:58:41.677 回答