1 Star 5 Fork 1

ZHIHONGTANG / Apriori

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#Apriori

关联分析

关联分析是一宗在大规模数据集中寻找又去关系的任务。

这些关系可以有两种形式:频繁项集或者关联规则。频繁项集是指经常出现在一块的物品的集合,而关联规则则暗示着两种物品之间可能存在的很强的关系(即如果出现物品A,则大概率会出现物品B)。

关联分析的目标包括两项:发现频繁项集和发现关联规则。首先,利用Apriori算法找到所有的频繁项集,然后根据频繁项集来发现关联规则。

Apriori算法

  • 优点:易编码实现。
  • 缺点:在大数据集上可能较慢。
  • 适用数据类型:数值型或者标称型数据。

程序apriori-test.py的运行结果:

%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'})

空文件

简介

运用Python2.7.12,使用Apriori算法进行关联分析 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/tangzhihong/Apriori.git
git@gitee.com:tangzhihong/Apriori.git
tangzhihong
Apriori
Apriori
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891