提到数据挖掘,我们的第一个反应是之前的啤酒和尿布的故事听说过,这个故事是一个典型的数据挖掘关联规则。篮分析的传统线性回归之间的主要差别的差别,对于离散数据的相关性分析;
常见的关联规则:
关联规则:牛奶=>卵子【支撑=2%,置信度=60%】
支持度:分析中的所有事务的2%同一时候购买了牛奶和鸡蛋,需设定域值,来限定规则的产生。
置信度:购买了牛奶的筒子有60%也购买了鸡蛋,需设定域值,来限定规则的产生。
最小支持度阈值和最小置信度阈值:由挖掘者或领域专家设定。
与关联分析相关的专业术语包含:
项集:项(商品)的集合
k-项集:k个项组成的项集
频繁项集:满足最小支持度的项集。频繁k-项集一般记为Lk
强关联规则:满足最小支持度阈值和最小置信度阈值的规则
接下来以两步法为例。揭秘下关联分析的做法:
例如以下有9个购物篮(T100-T900):两步法先找出全部的频繁项集;第二步再由频繁项集产生强关联规则。
算法步骤:
Step1:扫描D,对每一个候选项计数,生成候选1-项集C1。并算出每项的关联度计数(即该项出现的频数);
Step2:定义最小支持度阀值为2(即剔除频数低于2的项),记剩余的项集为L1。
Step3:由L1 两两配对生成新的2-项集C2。
Step4:扫描D。对C2里每一个项计数,定义最小支持度阀值为2(即剔除频数低于2的项),记剩余的项集为2-项集L2;
Step5:由L2 两两配对生成新的3-项集C3。
……如此循环,直至出现最大的n-项集结束。
以上述样例为例,图解步骤例如以下:
如图为例,我们计算频繁项集{I1,I2,I5}。能够发现I1^I2=>I5,因为{I1,I2,I5}出现了2次。{I1,I2}出现了4次,故置信度为2/4=50%
类似能够算出:
利用R进行购物篮分析,R中关联分析函数为arules,我们採用内置的Groceries的数据集(例如以下)。
Inspect(Groceries)
详细的R语言实现例如以下:
library(arules)
data(Groceries)
frequentsets=eclat(Groceries,parameter=list(support=0.05,maxlen=10))
inspect(sort(frequentsets,by="support")[1:10]) #依据支持度对求得的频繁项集排序
结果例如以下:可见全部的关联规则的排名:
接下来以阀值挑选我们的须要的关联项:
rules=apriori(Groceries,parameter=list(support=0.01,confidence=0.5))
inspect(rules)
由此可见购物篮就完毕,当中lift是相关度指标,lift=1表示L和R独立,lift越大表明L和R在同一购物篮绝非偶尔现象,更加支持我们的购物篮决策。
版权声明:本文博主原创文章,博客,未经同意不得转载。