8.6 R语言-关联规则

理解关联规则:
市场购物篮分析的结果是一组指定商品之间关系模式的关联规则。
一个典型的规则可以表述为: {花生酱,果冻} –> {面包}
这个关联规则用通俗易懂的语言来表达就是:如果购买了花生 酱和果冻,那么也很有可能会购买面包。
一个项集或者规则度量法的 支持度是指其在数据中 出现的频率
置信度是指该规则的 预测能力或者 准确度的度量


鲜花的支持度support X=4/5
慰问卡的支持度 Y=3/5
鲜花X-->Y慰问卡的准确度=(3/5)/(4/5)=3/4 意思是买鲜花的人不一定买慰问卡,反过来计算买慰问卡的人一定买鲜花

理解Apriori算法:
Apriori原则指的是一个频繁项集的所有子集也必须是频繁的, 如果{A,B}是频繁的,那么{A}和{B}都必须是频繁的。
根据定义,支持度表示一个项集出现在数据中的频率。因此, 如果知道{A}不满足所期望的支持度阈值,那么就没有考虑 {A,B}或者任何包含{A}的项集,这些项集绝对不可能是频繁的。
Apriori算法利用这个逻辑在实际评估他们之前排除潜在的关 联规则
分为两个阶段:
识别所有满足最小支持度阈值的项集
根据满足最小支持度阈值的这些项集来创建规则。
例如,迭代1需要评估一组1项的项集,迭代2评估2项集,以 此类推。在迭代中没有产生新的项集,算法将停止。之后,算 法会根据产生的频繁项集,根据所有可能的子集产生关联规则。 例如,{A,B}将产生候选规则{A}->{B}和{B}->{A}。这些规则 将根据最小置信度阈值评估,任何不满足所期望的置信度的规 则将被排除。
计算准确度groceries.R:需要下载arules包
groceries <- read.transactions("groceries.csv", sep=",")#读取数据文件
summary(groceries)

inspect(groceries[1:5])
itemFrequency(groceries[,1:3])
itemFrequencyPlot(groceries, support=0.1)
itemFrequencyPlot(groceries, topN=20)
image(groceries[1:5])
image(sample(groceries, 100))
#Apriori算法
apriori (groceries)
grocery_rules <- apriori (groceries, parameter = list(support=0.006, confidence=0.25, minlen=2))
grocery_rules
summary(grocery_rules)
inspect(grocery_rules[1:3])

inspect(sort(grocery_rules, by="lift")[1:5])

berry_rules <- subset(grocery_rules, items %in% "berries")
inspect(berry_rules)

write(grocery_rules, file="groceryrules.csv", sep=",", quote=TRUE, row.names = FALSE)#结果输出到groceryrules.csv
groceryrules_df <- as(grocery_rules, "data.frame")
str(groceryrules_df)

猜你喜欢

转载自blog.csdn.net/u011418530/article/details/80994815
8.6