概念介绍
关联分析又称关联挖掘:发现存在于大量数据集中的关联性或相关性,进行智能推荐。
事务
相当于用户的篮子,篮子里面可能是1项集,也可能是4项集。
项集
篮子里所有的物品构成一个集合。在关联分析中,包含0个或者多个项的集合被称为项集(itemset)。
频繁项集
满足最小支持阈值的所有项集
支持度(support)
- 项集X的支持度:s(X)=σ(X)/N
- 规则X==>Y表示前提项目X对结果项目Y的支持度,也就是前提项目X和结果项目Y同时出现的概率
- support(X—>Y)=P(XY)
置信度(confidence)
- 置信度衡量前提项目X发生情况下,结果项目Y发生的条件概率
- 置信度是衡量关联规则是否具有可信度的指标,置信度须达到一定水平(通常为0.5),利用最小置信度为门槛去除正确概率较低的关联规则。
- cofidence(X—>Y)=P(Y|X)=P(XY)/P(X)
提升度(lift)
- 增益衡量用于比较置信度与结果项目Y单独发生时两者概率间的大小
- Lift(X—>Y)=P(Y|X)/P(Y)=P(XY)/(P(X)P(Y))
【下面的这些不常用- -】
杠杆率
- Leverage:P(A,B)-P(A)P(B)
- 如果Leverage=0,则A,B独立。Leverage越大,A和B的关联越密切
信念率
- Conviction=P(A)P(!B)/P(A,!B)
- 其中,!B表示B没有发生
- Conviction也是来衡量A,B的独立性。Conviction越大,A和B越关联。
频繁项集算法步骤
- 算法初始通过单遍扫描数据集,确定每个项的支持度,得到所有频繁1项集的集合
- 用上一步迭代发现的频繁(k-1)项集,产生新的候选k项集
- 对候选项的支持度计数
- 计算候选项的支持度计数,删除支持度计数小于阈值的所有候选项集
- 当没有新的频繁项集产生时,算法结束。
代码实现
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
data=pd.read_csv("E:\\investment.csv")
data.head
原始数据长这个样子,我们要把它转成onehot形式