多维关联规则挖掘算法r语言能实现吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多维关联规则挖掘算法r语言能实现吗相关的知识,希望对你有一定的参考价值。
参考技术A 一下自己学习关联规则经典算法Apriori的笔记。1、概述
Apriori算法是用一种称为逐层搜索的迭代方法,从项集长度k=1开始,选出频繁的k=1项集,根据先验性质:频繁项集的子集一定是频繁的(逆否命题:非频繁项集的超集一定是非频繁的,通俗的说就是某件事发生的概率很低,比这件事发生条件更严苛的事情发生的概率会更低),筛选k=2项集中的频繁项集,以此迭代k=3...。每迭代一次都要完整的扫描一次数据库。
2、关联规则三度:
支持度:占比
置信度:条件概率
提升度:相关性
3、R语言示例代码如下:(小众语言的辛酸:选项里没有。。)
[plain] view plain copy
library(arules)
#从rattle包中读入数据
dvdtrans <- read.csv(system.file("csv", "dvdtrans.csv",package="rattle"))
str(dvdtrans)
#将数据转化为合适的格式
data <- as(split(dvdtrans$Item,dvdtrans$ID),"transactions")
data
#用 apriori命令生成频繁项集,设其支持度为0.5,置信度为0.8
rules <- apriori(data, parameter=list(support=0.5,confidence=0.8,minlen = 2))
#用inspect命令查看提取规则
inspect(rules)
常用数据形式有data.frame格式和list格式,前者即A项集为一列B项集为另一列,后者为A和B放在同一个购物篮中。
去除冗余规则以及提取子规则代码如下:
[plain] view plain copy
redundant.rm <- function(rule,by="lift")
#rule:需要进行简化的规则
#by:在清除的时候根据那个变量来选择,
#可能取值为"support","lift","confidence"
a <- sort(rule,by=by)
m<- is.subset(a,a,proper=TRUE)
m[lower.tri(m, diag=TRUE)] <- NA
r <- colSums(m, na.rm=TRUE) >= 1
finall.rules <- a[!r]
return(finall.rules)
rules <- redundant.rm(rules)
rules.sub <- subset(rules, subset = lhs %in% "筛选项集名称" & lift > 1)
R语言使用apriori算法进行关联规则挖掘实战:关联规则概念频繁项集支持度(support)置信度(confidence)提升度(lift)apriori算法
R语言使用apriori算法进行关联规则挖掘实战:关联规则概念、频繁项集、支持度(support)、置信度(confidence)、提升度(lift)、apriori算法
目录
以上是关于多维关联规则挖掘算法r语言能实现吗的主要内容,如果未能解决你的问题,请参考以下文章
R语言apriori算法进行关联规则挖掘(限制规则的左侧或者右侧的内容进行具体规则挖掘)使用subset函数进一步筛选生成的规则去除左侧规则中的冗余信息获取更独特的有新意的关联规则
R语言apriori算法进行关联规则挖掘(限制规则的左侧或者右侧的内容进行具体规则挖掘)查看限制了规则的右侧之后挖掘到的规则(置信度排序,只查看左侧即可)
R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化
R语言Apriori算法关联规则挖掘:使用interestMeasure函数评估挖掘到的规则(包括覆盖率(coverage)和FishersExactTest)置信度最高的五条规则(top five