# ---数据分析师---

#  &#x1F538;关联规则的提出与应用
## 关联与关联规则
- **自然界中某种事物发生时其他事物也会发生，则这种联系称之为关联。**
- **反映事件之间依赖或关联的知识称为关联规则。**

规则形式举例：  
萧敬腾开演唱会@下雨  
Body @ Head 【support,confidence】

## 关联规则的提出  
  - 20世纪90年代沃尔玛超市管理员分析销售数据时，发现了一个很奇怪的现象“啤酒和尿布”两样毫无相关性的数据会经常出现在同一各购物车里。美国学者通过Aprior算法（分析购物篮中的商品集合，找出商品之间关联关系的关联算法，并根据商品之间的关系，找出客户的购买行为）分析了真实情况。
  - 了解到新生儿母亲在家照看孩子，就让年轻的父亲去超市购买孩子需要的尿布。这些父亲会选择既有尿布又有自己喜欢的啤酒的超市，从而能提高买东西的效率。所以说这两样商品齐全的超市会更受年轻父亲喜爱。更有早发现该规律的超市，将啤酒和尿布摆在相邻位置，更加节省了年轻父亲买东西的时间，也就间接提升了超市营业额。

## 关联规则挖掘的作用
- **通过发现顾客放入购物篮中的不同商品之间的联系，分析顾客的购买习惯**
 - 那些物品经常被顾客购买？
 - 同义词购买中，那些商品经常会被一起购买？
 - 一般用户的购买过程中是否存在一定的购买时间序列？

- **具体应用：利润最大化**
 - 商品货架设计：更加适合客户的购物路径
 - 货存安排：实现超市的零库存管理
 - 用户分类：提供个性化的服务

## 关联规则已广泛应用

- 个性化商铺搜索
- 基于顾客全网购买历史记录的**猜您喜欢**
- 商品列表的个性化排序
- 经常与本商品一起购买的商铺
- 基于顾客全网浏览历史的**猜您喜欢**
- 浏览过本商品的顾客最终购买了

## 电信业务中的应用示例

- **分析用户定制的数据业务**
 - 购物篮 = 用户每月使用的所有数据业务
 - 项  目 = 单项数据业务（彩信、手机邮箱等）
 - 分析目的 ： 发现数据业务经常被同时使用，有助于关联销售及套餐制定

- **分析用户使用的第三方应用**
 - 购物篮 = 用户每月的访问记录
 - 项   目 = 单个第三方应用（微信、支付宝、微博）
 - 分析目的：发现用户使用习惯，引导流量经营

#  &#x1F538;关联规则评价指标
## **支持度**
支持度（SUPPORT)：规则X -> Y在交易集合中的支持度是交易集中包含X和Y的交易数与交易数之比，记为SUPPORT（X -> Y），即SUPPORT（X -> Y）= |{T:X∩Y⊆T，T∈D}|/|D|，它是概率P（X∩Y）
S = （同时购买X和Y的交易数）/ （总交易数）

## **置信度**
置信度（CONFIDENCE），规则X -> Y在交易集中的置信度是指包含X和Y的交易数与包含X的交易数之比，记为CONFIDENCE（X -> Y）即  
CONFIDENCE（X -> Y）= |{T:X∩Y⊆T，T∈D}|/|{T:X⊆T，T∈D}|他是概率P（X|Y）  
C = （同时购买X和Y的交易数）/ （购买商铺X的交易数）

## **支持度、置信度的解释**
- 例如：
  - 5G-> VoNR (S=30%,C=70%)   
- 同时开通5G和VoNR的用户占总体的30%，开通5G的用户有70%使用了VoNR

## **置信度高就一定有用吗 ？**
某类疾病轻症患者进行中药治疗，得到如下规则

吃中药 -> 治愈 （S=45%，C=90%）

|*| 吃中药|喝白开水|合计|
|:-:| :--:| :--:|:-:|
|治愈| 90| 95|185|
|死亡| 100|100 |200|

## 关联规则的提速度（Lift）
提升的大于1才有意义，意味着X的出现对Y的出现有促进作用。规则提升度越大越好  
L x->y = C x->y/Sy ={ |T（X∩Y）|/|T(X)|}/{|T(Y)|/|T|}
Lift(吃中药 -> 治愈) = 90% /92.5% < 1

#  &#x1F538;关联规则经典算法--Apriori

![Apriori.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1653447789991/XSIxwji5f.png align="left")

## **关联规则挖掘的优缺点**
- **优点**
 - 它可以产生清晰有用的结果
 - 它支持间接数据挖掘
 - 可以处理变长的数据
 - 它的计算的消耗量是可以预见的

- **缺点**
 - 当问题变大时，计算量增长得厉害
 - 难以决定正确的数据
 - 容易忽略稀有的数据

#  &#x1F538; **关联规则举例**

|订单编号| 购买商品|
|:-:| :--:| 
|1| 牛奶、面包、尿不湿、啤酒、榴莲| 
|2| 可乐、面包、尿不湿、啤酒、牛仔裤|
|3| 牛奶、尿不湿、啤酒、鸡蛋、咖啡|
|4| 面包、牛奶、尿不湿、啤酒、睡衣|
|5| 面包、牛奶、尿不湿、可乐、鸡翅|

**01）支持度**
- 支持度 (Support)：指某个商品组合出现的次数与总次数之间的比例。  
- 在这个例子中，我们可以看到“牛奶”出现了 4 次，那么这 5 笔订单中“牛奶”的支持度就是 4/5=0.8。
- 同样“牛奶 + 面包”出现了 3 次，那么这 5 笔订单中“牛奶 + 面包”的支持度就是 3/5=0.6
- 这样理解起来是不是非常简单了呢，大家可以动动手计算下 '尿不湿+啤酒'的支持度是多少  

**02）置信度**
- 置信度 (Confidence)：指的就是当你购买了商品 A，会有多大的概率购买商品 B
- 置信度（牛奶→啤酒）= 3/4=0.75，代表如果你购买了牛奶，有多大的概率会购买啤酒
- 置信度（啤酒→牛奶）= 3/4=0.75，代表如果你购买了啤酒，有多大的概率会购买牛奶？
- 置信度（啤酒→尿不湿）= 4/4=1.0，代表如果你购买了啤酒，有多大的概率会买尿不湿
- 由上面的例子可以看出，置信度是个条件概念，就是说在 A 发生的情况下，B 发生的概率是多少。

**03）提升度**
- 提升度 (Lift)：我们在做商品推荐或者策略的时候，重点考虑的是提升度，因为提升度代表的是商品 A 的出现，对商品 B 的出现概率提升的程度。
- 提升度 (A→B) = 置信度 (A→B)/ 支持度 (B)
- 所以提升度有三种可能：
- 提升度 (A→B)>1：代表有提升；
- 提升度 (A→B)=1：代表有没有提升，也没有下降；
- 提升度 (A→B)<1：代表有下降。
- 提升度 (啤酒→尿不湿) =置信度 (啤酒→尿不湿）/支持度 (尿不湿)=1.0/0.8=1.25
- 可见啤酒对尿不湿是有提升的，提升度为1.25，其实可以简单理解为：在全集的情况下，尿不湿的概率为0.8，而在包含啤酒这个子集中，尿不湿的概率为1，因此，子集的限定，提高了尿不湿的概率。

**04）频繁项集**
- 频繁项集(frequent itemset) ：就是支持度大于等于最小支持度 (Min Support) 阈值的项集，所以小于最小值支持度的项目就是非频繁项集，而大于等于最小支持度的的项集就是频繁项集。项集可以是单个商品，也可以是组合


--END--









