Python使用Apriori算法查找关系密切的演员组合
时间:12-31来源:作者:点击数:
Apriori算法基本概念:
- 关联规则:可以表示为一个蕴含式R:X==>Y,其中X&Y为空集。关联规则的含义是,如果X发生,那么Y很可能也会发生。
- 关联分析或者关联规则学习:从大规模数据中寻找物品之间隐含的关系,从而实现某种意义上的预测。例如,捡到鼠标垫的幸运者3个月内是否有可能购买笔记本电脑;正在浏览某商品的用户还可能对什么商品感兴趣;一个特别爱吃炒花生的人喜欢喝酒的可能性有多大。
- 项集:包含若干物品或项目的集合。
- 频繁项集:经常一起出现的物品的集合。如果某个项集是频繁的,那么它的所有子集都是频繁的;如果某个项集不是频繁的,那么它的所有超集都不是频繁的。这一点是避免项集数量过多的重要基础,使得快速计算频繁项集成为可能。
- 支持度:一个项集的支持度是指包含该项集的记录数量在整个数据集中所占的比例。对于某条关联规则A==>B,支持度是指项集A|B的支持度,也就是同时包含A和B的记录的数量与记录总数量的比。
- 置信度:用来表示某条规则可信度的大小,用来检验一个推测是否靠谱。对于某条关联规则A==>B,置信度是指项集A|B的支持度与项集A的支持度的比值。
- 如果某条关联规则不满足最小置信度要求,那么该规则的所有子集也不会满足最小置信度。根据这一点可以减少要测试的规则数量。
- 强关联规则:同时满足最小支持度和最小置信度的关联规则。
- 根据不同的支持度和置信度阈值设置,关联规则分析的结果会有所不同。
问题描述:
已知一些演员参演电影的信息,如下图所示,获取这些存储在Excel文件中的数据,查找关系较好的演员二人组合,也就是频繁2项集。
参考代码(使用Apriori算法的频繁项集搜索方法):
运行结果(可以调整代码倒数第三行的参数0.4,观察对结果的影响):