参考博客 :





一、 Apriori 算法过程

【数据挖掘】关联规则挖掘 Apriori 算法 ( Apriori 算法过程 | Apriori 算法示例 )_Apriori

原始数据集 D \rm D D ,

1 1 1 项集 C 1 \rm C_1 C1 , 2 2 2 项集 C 2 \rm C_2 C2 , ⋯ \cdots , k \rm k k 项集 C k \rm C_k Ck , 这些项集都是候选项集 ,


根据 原始数据集 D \rm D D , 创造 1 1 1 项集 C 1 \rm C_1 C1 , 然后对 C 1 \rm C_1 C1 执行 数据集扫描函数 , 找到其中的 频繁 1 1 1 项集 L 1 \rm L_1 L1 ,

根据 频繁 1 1 1 项集 L 1 \rm L_1 L1 , 创造 2 2 2 项集 C 2 \rm C_2 C2 , 然后对 C 2 \rm C_2 C2 执行 数据集扫描函数 , 找到其中的 频繁 2 2 2 项集 L 2 \rm L_2 L2 ,

⋮ \vdots

根据 频繁 k − 1 \rm k-1 k1 项集 L k − 1 \rm L_{k-1} Lk1 , 创造 k \rm k k 项集 C k \rm C_k Ck , 然后对 C k \rm C_k Ck 执行 数据集扫描函数 , 找到其中的 频繁 k \rm k k 项集 L k \rm L_k Lk ,





二、 Apriori 算法示例


事物编号 事物 ( 商品 )
001 001 001 奶粉 , 莴苣
002 002 002 莴苣 , 尿布 , 啤酒 , 甜菜
003 003 003 奶粉 , 尿布 , 啤酒 , 橙汁
004 004 004 奶粉 , 莴苣 , 尿布 , 啤酒
005 005 005 奶粉 , 莴苣 , 尿布 , 橙汁

最小支持度阈值为 m i n s u p = 0.6 \rm minsup= 0.6 minsup=0.6


根据 原始数据集 D \rm D D , 创造 1 1 1 项集 C 1 \rm C_1 C1 , 然后对 C 1 \rm C_1 C1 执行 数据集扫描函数 , 找到其中的 频繁 1 1 1 项集 L 1 \rm L_1 L1 ,

1 1 1 项集 { 奶 粉 } \{ 奶粉 \} {} 支持度 0.8 0.8 0.8
1 1 1 项集 { 莴 苣 } \{ 莴苣 \} {} 支持度 0.8 0.8 0.8
1 1 1 项集 { 尿 布 } \{ 尿布 \} {尿} 支持度 0.8 0.8 0.8
1 1 1 项集 { 啤 酒 } \{ 啤酒 \} {} 支持度 0.6 0.6 0.6
1 1 1 项集 { 甜 菜 } \{ 甜菜 \} {} 支持度 0.2 0.2 0.2
1 1 1 项集 { 诚 挚 } \{ 诚挚 \} {} 支持度 0.4 0.4 0.4

1 1 1 项集中只有 { 奶 粉 } \{ 奶粉 \} {} , { 莴 苣 } \{ 莴苣 \} {} , { 尿 布 } \{ 尿布 \} {尿} , { 啤 酒 } \{ 啤酒 \} {} 是频繁 1 1 1 项集 ;


根据 频繁 1 1 1 项集 L 1 \rm L_1 L1 , 创造 2 2 2 项集 C 2 \rm C_2 C2 , 然后对 C 2 \rm C_2 C2 执行 数据集扫描函数 , 找到其中的 频繁 2 2 2 项集 L 2 \rm L_2 L2 ,

2 2 2 项集 { 奶 粉 , 莴 苣 } \{ 奶粉 , 莴苣 \} {,} 支持度 0.6 0.6 0.6
2 2 2 项集 { 莴 苣 , 尿 布 } \{ 莴苣 , 尿布 \} {,尿} 支持度 0.6 0.6 0.6
2 2 2 项集 { 莴 苣 , 啤 酒 } \{ 莴苣 , 啤酒 \} {,} 支持度 0.4 0.4 0.4
2 2 2 项集 { 尿 布 , 啤 酒 } \{ 尿布 , 啤酒 \} {尿,} 支持度 0.8 0.8 0.8
2 2 2 项集 { 奶 粉 , 尿 布 } \{ 奶粉 , 尿布 \} {,尿} 支持度 0.6 0.6 0.6
2 2 2 项集 { 奶 粉 , 啤 酒 } \{ 奶粉 , 啤酒 \} {,} 支持度 0.4 0.4 0.4

2 2 2 项集中只有 { 奶 粉 , 尿 布 } \{ 奶粉 , 尿布 \} {,尿} , { 尿 布 , 啤 酒 } \{ 尿布 , 啤酒 \} {尿,} , { 莴 苣 , 尿 布 } \{ 莴苣 , 尿布 \} {,尿} , { 奶 粉 , 莴 苣 } \{ 奶粉 , 莴苣 \} {,} 是 频繁 2 2 2 项集 ;


根据 频繁 2 2 2 项集 L 1 \rm L_1 L1 , 创造 3 3 3 项集 C 3 \rm C_3 C3 , 然后对 C 3 \rm C_3 C3 执行 数据集扫描函数 , 找到其中的 频繁 3 3 3 项集 L 3 \rm L_3 L3 ,

3 3 3 项集 { 奶 粉 , 莴 苣 , 尿 布 } \{ 奶粉 , 莴苣 , 尿布 \} {,,尿} 支持度 0.4 0.4 0.4
3 3 3 项集 { 奶 粉 , 莴 苣 , 啤 酒 } \{ 奶粉 , 莴苣 , 啤酒 \} {,,} 支持度 0.2 0.2 0.2
3 3 3 项集 { 莴 苣 , 尿 布 , 啤 酒 } \{ 莴苣 , 尿布 , 啤酒 \} {,尿,} 支持度 0.4 0.4 0.4
3 3 3 项集 { 奶 粉 , 尿 布 , 啤 酒 } \{ 奶粉 , 尿布 , 啤酒 \} {,尿,} 支持度 0.4 0.4 0.4

3 3 3 项集中没有频繁项集 ;