代码拉取完成,页面将自动刷新
#Apriori
关联分析是一宗在大规模数据集中寻找又去关系的任务。
这些关系可以有两种形式:频繁项集或者关联规则。频繁项集是指经常出现在一块的物品的集合,而关联规则则暗示着两种物品之间可能存在的很强的关系(即如果出现物品A,则大概率会出现物品B)。
关联分析的目标包括两项:发现频繁项集和发现关联规则。首先,利用Apriori算法找到所有的频繁项集,然后根据频繁项集来发现关联规则。
%Run apriori-test.py
step-0:创建一个用于测试的简单数据集dataSet
dataSet: [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
step-1:将数据集中全部记录所包含的不同项作为单元素集合添加至列表C1
C1: [frozenset({1}), frozenset({2}), frozenset({3}), frozenset({4}), frozenset({5})]
step-2:将数据集dataSet列表中的元素转化为集合
D: [{1, 3, 4}, {2, 3, 5}, {1, 2, 3, 5}, {2, 5}]
step-3:对数据集D中的集合进行扫描,计算列表C1集合中的支持度,并将支持度大于最小支持度的集合存入频繁项集列表L1
L1: [frozenset({1}), frozenset({3}), frozenset({2}), frozenset({5})]
suppData0: {frozenset({4}): 0.25, frozenset({5}): 0.75, frozenset({2}): 0.75, frozenset({3}): 0.75, frozenset({1}): 0.5}
step-4:利用apriori算法发现频繁项集
L: [[frozenset({1}), frozenset({3}), frozenset({2}), frozenset({5})], [frozenset({3, 5}), frozenset({1, 3}), frozenset({2, 5}), frozenset({2, 3})], [frozenset({2, 3, 5})], []]
suppData: {frozenset({5}): 0.75, frozenset({3}): 0.75, frozenset({2, 3, 5}): 0.5, frozenset({1, 2}): 0.25, frozenset({1, 5}): 0.25, frozenset({3, 5}): 0.5, frozenset({4}): 0.25, frozenset({2, 3}): 0.5, frozenset({2, 5}): 0.75, frozenset({1}): 0.5, frozenset({1, 3}): 0.5, frozenset({2}): 0.75}
step-5:从频繁项集中挖掘关联规则
frozenset({5}) --> frozenset({3}) conf: 0.6666666666666666
frozenset({3}) --> frozenset({5}) conf: 0.6666666666666666
frozenset({3}) --> frozenset({1}) conf: 0.6666666666666666
frozenset({1}) --> frozenset({3}) conf: 1.0
frozenset({5}) --> frozenset({2}) conf: 1.0
frozenset({2}) --> frozenset({5}) conf: 1.0
frozenset({3}) --> frozenset({2}) conf: 0.6666666666666666
frozenset({2}) --> frozenset({3}) conf: 0.6666666666666666
frozenset({5}) --> frozenset({2, 3}) conf: 0.6666666666666666
frozenset({3}) --> frozenset({2, 5}) conf: 0.6666666666666666
frozenset({2}) --> frozenset({3, 5}) conf: 0.6666666666666666
rules: [(frozenset({5}), frozenset({3}), 0.6666666666666666), (frozenset({3}), frozenset({5}), 0.6666666666666666), (frozenset({3}), frozenset({1}), 0.6666666666666666), (frozenset({1}), frozenset({3}), 1.0), (frozenset({5}), frozenset({2}), 1.0), (frozenset({2}), frozenset({5}), 1.0), (frozenset({3}), frozenset({2}), 0.6666666666666666), (frozenset({2}), frozenset({3}), 0.6666666666666666), (frozenset({5}), frozenset({2, 3}), 0.6666666666666666), (frozenset({3}), frozenset({2, 5}), 0.6666666666666666), (frozenset({2}), frozenset({3, 5}), 0.6666666666666666)]
示例:发现毒蘑菇的相似毒蘑菇的相似特征
在结果中搜索包含有毒特征值2的频繁项集:
frozenset({'2', '93'})
frozenset({'85', '2'})
frozenset({'2', '36'})
frozenset({'2', '59'})
frozenset({'2', '34'})
frozenset({'2', '28'})
frozenset({'2', '23'})
frozenset({'2', '63'})
frozenset({'2', '67'})
frozenset({'53', '2'})
frozenset({'2', '90'})
frozenset({'2', '39'})
frozenset({'2', '86'})
frozenset({'2', '76'})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。