购物篮算法的理解-基于R的应用

时间:2023-03-08 18:25:43

是无监督机器学习方法,用于知识发现,而非预测,无需事先对训练数据进行打标签,因为无监督学习没有训练这个步骤。缺点是很难对关联规则学习器进行模型评估,一般都可以通过肉眼观测结果是否合理。

一,概念术语

1,项集itermset

购物篮算法的理解-基于R的应用

如上每个{ }内的都称为一个项集,LHS,RHS成为左右项集,他们之间不能有重复值交集

2,支持度support

项集的支持度就是该项集出现的次数除以总的记录数(交易数),意义是要统计出频繁项集

3,置信度confidence

购物篮算法的理解-基于R的应用

关联规则 X -> Y 的置信度 计算公式

规则的置信度的意义在于项集{X,Y}同时出现的次数占项集{X}出现次数的比例。发生X的条件下,又发生Y的概率。条件概率

4,提升度 Lift

关联概率准比上原始概率得出,如果提升度很小的值说明关联出来的概率还不如原始概率跟高效,更有说服力,一般的提升度大于3认为会认为挖掘推荐更有意义。

二,生成规则

一般两步:

  • 第一步,找出频繁项集。n个item,可以产生2^n- 1 个项集(itemset)。所以,需要指定最小支持度,用于过滤掉非频繁项集。
  • 第二部,找出第一步的频繁项集中的规则。n个item,总共可以产生3^n - 2^(n+1) + 1条规则。所以,需要指定最小置信度,用于过滤掉弱规则。

第一步的计算量比第二部的计算量大。

三,Apriori算法

需要加载R里面arules,没有的话自行安装下

源数据groceries 数据集,每一行代表一笔交易所购买的产品(item)

数据转换:创建稀疏矩阵,每个Item一列,每一行代表一个transaction。1表示该transaction购买了该item,0表示没有购买,arules包的函数read.transactions可以读入源数据并创建稀疏矩阵。

groceries <- read.transactions("data.csv", sep = ",")

data.csv的数据类似如下:

购物篮算法的理解-基于R的应用

在R语言里面查看这个groceries:

购物篮算法的理解-基于R的应用

生成规则,共463条

购物篮算法的理解-基于R的应用

查看具体规则:

购物篮算法的理解-基于R的应用

按照指定排序来查看规则:

(按照lift排序)

购物篮算法的理解-基于R的应用

(搜索verries)

购物篮算法的理解-基于R的应用

购物篮算法的理解-基于R的应用

可以把过滤好的数据存到csv格式

write(groceryrules, file = "groceryrules.csv",sep = ",", quote = TRUE, row.names = FALSE)