step by step.
目录
要看具体章节复习汇总请见👇
自己辛苦总结的,点个赞鼓励一下啦~
关联规则挖掘问题可以分为两个子问题:
第一步是找出事务数据库中所有大于等于用户指定的最小支持度的数据项集;
第二步是利用频繁项集生成所需要的关联规则,根据用户设定的最小置信度进行取舍,最后得到强关联规则。
核心:识别/发现 所有频繁项目集。
1. 基本概念
项:数据库中不可分割的最小单位信息。
👉 如:啤酒
项集:项的集合。
具体信息 👉 如:{啤酒,尿布,奶粉}
事务:例如顾客的订单。
项集的频数:支持度计数:包括项集的事务数。
关联规则:反映X中的项目出现时,Y中的项目也出现的规律。
X=>Y
注 👉 X和Y交集为空
支持度:同时包含X和Y的交易数与所有交易数之比。
support(X=>Y) = support(XUY) = P(XY)
置信度:交易集中包含X和Y的交易数与所有交易数与包含X的交易数之比。
confidence(X=>Y) = support(XUY)/support(X) = P(Y|X)
最小支持度:min_sup 描述了关联规则的最低重要程度。
最小置信度:min_con 描述了关联规则的最低可靠性。
强关联规则:(用户定义的)support(X=>Y) >= min_sup且confidence(X=>Y) >= min_con。
频繁项集:
项目集空间理论:频繁项目集的子集仍是频繁项目集;非频繁项目集的超集就是非频繁项目集。
2. Apriori算法
(1)基本思想
(2)产生频繁项集的过程
连接 + 剪枝
a. 连接步
b. 剪枝步
(3) 主要步骤
算法流程:(自己总结的,可能不严谨)
👇
(4) 例题详解
a. 例题1
解:
∴频繁项集为以上所求的L1,L2,L3。
b. 例题2
解:
c. 例题3
解:
这里涉及到关联规则的选取(根据最小置信度,即>最小置信度,则选上。)
d. 例题4
解:
(5)算法流程(自己写的 可能不是很规范 但是也可以理解)
输入数据库D,最小支持度阈值
👇
生成C1表
👇
for循环遍历D所有的事务,统计各项集出现过的次数
👇
提取出C1中支持度计数小于最小支持度的项集并扔掉,生成新的L1
👇
连接,L1∞L1,生成C2
👇
for循环遍历D所有的事务,统计各项集出现过的次数
👇
提取出C2中支持度计数小于最小支持度的项集并扔掉,生成新的L2
👇
……
👇
直到无新的频繁集产生,end
(6)Apriori算法特点
a. 迭代算法
b. 数据采用水平组织方式
c. 采用Apriori优化方法
d. 适合事务数据库的关联规则挖掘
e. 适合稀疏数据集(频繁项目长度较小)
(7)Apriori缺点
a. 需要很大I/O负载,需要多次扫描事务数据库
b. 产生庞大候选集
c. 频繁项目长度越大,运算时间显著增加
若有错请留言。