内容正文:
课程名称
第10章 Apriori算法
计划学时
4学时
内容分析
本章主要介绍关联分析算法简介、Apriori算法的工作原理、实战:Python编程发现频繁项集、实战:Python编程发现强关联规则
教学目标
与教学要求
要求学生了解关联分析算法的基本概念、掌握频繁项集生成的使用方法、掌握关联规则生成的使用方法
教学重点
实战:Python编程发现频繁项集、实战:Python编程发现强关联规则
教学难点
实战:Python编程发现频繁项集、实战:Python编程发现强关联规则
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(关联分析算法简介、Apriori算法的工作原理)
了解Python机器学习知识
1.介绍本书,引出本课时的主题
通过第9章的学习, 可以对 K-means 算法有了较为深入的了解, 本章将继续介绍无监督学习算法的有关内容———Apriori 算法。 Apriori 算法属于最为常见的关联分析算法, 主要用来发掘数据集中频繁出现的数据, 找到这些频繁出现的数据可以用于制定某些决策, 例如, 通过分析客户购买商品的习惯来调整超市的货架摆放规则, 从而提升超市商品的销量。
2.明确学习目标
(1) 能够掌握关联分析算法简介
(2) 能够掌握Apriori算法的工作原理
知识讲解
· 关联分析算法简介
关联分析算法也称为购物篮分析算法, 最早是为了发现超市销售数据库中不同商品之间的关联关系, 该算法用于反映一个事物与其他事物之间的关联性。 若多个事物之间存在着某种关联关系, 那么其中的一个事物就能通过其他事物预测到。
实际生活中, 超市里货架上商品的摆放位置是有规律可循的。 有些商品之间是相互关联的, 而有些商品之间是对立或竞争关系(负关联), 这些规律都隐藏在大量的历史购物清单数据中, 如果能够通过数据挖掘发现购物者的购物规则, 就可以快速识别顾客的购物习惯,当顾客购买了某个商品时为其推荐相关联的商品, 引导购物者消费, 提高购物者的购物体验和店铺中商品的销量。
· Apriori算法的工作原理
当数据量非常大时, 人们难以通过肉眼发掘数据集中的各频繁项集, Apriori 算法的出现可以提高发现频繁项集的效率。 接下来将详细地讲解 Apriori 算法的工作原理。
10.1节提到了通过分析客户经常同时购买的商品集合, 从而调整货架的商品摆放情况以增加商品的销量。为了便于讲解, 本节假设超市里只有4 种商品, 且分别命名为商品0、商品1、商品2 和商品3。 这些商品的组合存在以下可能: 顾客只购买了一种商品、 顾客购买了两种商品、顾客购买了三种商品或者顾客购买了全部4 种商品。 在进行关联分析时并不用分析某种商品被买了几件, 而是关注顾客购买了哪几种商品。 图10.1 显示了4种商品之间存在的所有可能组合形式。
图显示了4种商品之间存在的所有可能组合形式。
第二课时
(实战:Python编程发现频繁项集、实战:Python编程发现强关联规则)
回顾内容
1. 回顾上节内容,引出本课时主题。
上节已经介绍了关联分析算法简介、Apriori算法的工作原理,下面开始讲解实战:Python编程发现频繁项集和实战:Python编程发现强关联规则。从而引出本节的内容。
2.明确学习目标
(1) 能够掌握实战:Python编程发现频繁项集
(2) 能够掌握实战:Python编程发现强关联规则
知识讲解
· 实战:Python编程发现频繁项集
发现关联规则是指找出支持度大于或等于最小支持度, 且置信度大于或等于最小置信度的所有规则。 关联分析的目标有两个: 发现频繁项集和发现强关联规则。 首先需要找到频繁项集, 然后才能获得关联规则。 本节将只介绍发现频繁项集的相关内容,10.4节将介绍发现强关联规则的方法。
10.2节所介绍的 Apriori 原理是一种发现频繁项集的有效方法, 其实现流程如下所示。
(1) 迭代数据集, 确定每个项的支持度, 生成所有单个物品的项集列表。
(2) 使用上一次迭代发现的频繁项集, 产生新的候选项集。 通过 Apriori-gen() 函数可以实现生成候选项。
(3) 对候选项的支持度进行计数。
(4) 删去支持度计数小于最小支持度的候选项集。
(5) 当不再有新的频繁项集产生时结束。
在使用 Python 来实现关联分析算法之前, 需要创建一些辅助函数。 接下来将创建一个用于构建初始集合的函数和一个通过扫描数据集以寻找交易记录子集的函数。 想要实现发现频繁项集需要先构建相应的辅助函数, 具体实现方法代码参考教材10.3节。
· 实战:Python编程发现强关联规则
关联分析中关联规则的定义: 两个不相交的非空项集 X 、Y