install.packages("gridBase")
install.packages("arules")
install.packages("arulesViz")
install.packages("graphlayouts")library(gridBase)
library(arules)
library(arulesViz)#现有购买记录
tr_list=list(c("Bread", "Milk"),c("Bread", "Diaper", "Beer", "Eggs"),c("Milk","Diaper", "Beer", "Coke"),c("Bread", "Milk","Diaper","Beer"),c("Bread", "Milk", "Diaper","Coke"))#命名各个购物车
names(tr_list)=paste("tr",c(1:length(tr_list)),sep="")tr_list#调用as函数,将链表转化为事务类型
trans=as(tr_list,"transactions")
trans
summary(trans)#####展示事务
##使用LIST函数LIST(trans)###查看数据
inspect(trans)#调用image函数可视化检查事务数据
image(trans)trans@data
trans@data@i
trans@data@p
trans@itemInfo#data.frame model
trans@itemInfo$labels#factor  vector model
trans@itemsetInfo#data.frame model
trans@itemsetInfo$transactionID # shopping cart transactionID#查看每个篮子的商品个数
size(trans)###根据事务大小进行筛选filter_trans=trans[size(trans)>=3]
inspect(filter_trans)###将矩阵格式的数据转化为事务类型tr1=c(0,1,rep(0,3),1)
tr2=c(1,1,0,1,1,0)
tr3=c(1,0,1,1,0,1)
tr4=c(1,1,0,1,0,1)
tr5=c(0,1,1,1,0,1)tr_matrix=matrix(cbind(tr1,tr2,tr3,tr4,tr5),byrow=T,nrow=5)dimnames(tr_matrix)=list(paste("tr",c(1:nrow(tr_matrix)),sep=""),c("Bear","Bread","Coke","Diaper","Eggs","Milk"))
tr_matrix
trans2=as(tr_matrix,"transactions")
inspect(trans2)
trans2@data#将数据框类型的数据转换成事务类型
trID=c(rep(1,2),rep(2:5,each=4))
item=c("Bread", "Milk",
"Bread", "Diaper", "Beer", "Eggs",
"Milk","Diaper", "Beer", "Coke",
"Bread", "Milk","Diaper","Beer",
"Bread", "Milk", "Diaper","Coke")
tran=cbind(trID,item)
tran
trans3=as(tran,"transactionss")#错误做法 Wrong pratice#True
tr_df=as.data.frame(tran)
tr_df=as.data.frame(tran)tr_split=split(tr_df[,"item"],tr_df[,"trID"])
trans3=as(tr_split,"transactions")#也可以这样做
tr_dataf=data.frame(trID=c(rep(1,2),rep(2:5,each=4)),item=c("Bread", "Milk","Bread", "Diaper", "Beer", "Eggs","Milk","Diaper", "Beer", "Coke","Bread", "Milk","Diaper","Beer","Bread", "Milk", "Diaper","Coke"))
tr_dataf
trans4=as(split(tr_dataf[,"item"],tr_dataf[,"trID"]),"transactions")
trans4
inspect(trans4)as.data.frame(tr_dataf[,1])library(openxlsx)
#loading data
readt=read.xlsx("shoppingcart.xlsx")
readt#view data type
apply(readt,2,class)#Transform the data into a form that the apriori algorithm can process
trans5=as(split(readt[,"ProID"],readt[,"UserId"]),"transactions")
inspect(trans5)read2=read.transactions("shoppingcart2.csv",format="single",sep=",",cols=c("UserId","ProId"),header=T)inspect(read2)#When the examples don't have user ID ,you must use foemat="basket"
#read2=read.transactions("shoppingcart2.csv",format="basket",sep=",",cols=c("UserId","ProId"),skip=1)#############################################  remove spaces
# splitblank=function(x){
#   for (i in 1:length(read2[,2])) {
#
# a=unlist(strsplit(read2[,2][i],split=" "))
# b=which(a!="")
# c=paste(a[b],collapse = "")
# read2[,2][i]=c
#   }
#   read2[,2][2]
#
# }
#
# d=splitblank(read2[,2])
# read2
# e=vector()
# for (i in 1:length(read2[,2])){
# a=print(read2[,2][i])
# e=append(e,a)
# }
# e
# read2[,2]=e
# read2
# colnames(read2)[2]=e#View the support of each itemitemFrequency(trans,type="relative")
itemFrequency(trans,type="absolute")#Plot frequency/support bar chart,displays the set of related items for the item
itemFrequencyPlot(trans,col=c("orange","yellow","brown","green","tomato","violet"))#Use Eclat() mining frequency itemsets
freqsets=eclat(trans)
inspect(freqsets)#you also can add parameter restrictionsfrequentsets=eclat(trans,parameter = list(support=0.25,maxlen=10))
summary(frequentsets)
inspect(sort(frequentsets,by="support"))###generate association rules-------------------------------------------------------------------# n items,it has up to 2^n -1 items,up to 3^n-2^(n+1) rulesrules=apriori(trans,parameter =list(support=0.25,confidence=0.5,target="rules"))
inspect(rules)
summary(rules)#Sort rules according to confidence,and view some of the previous rulesrules.sorted=sort(rules,by="confidence",decreasing = T)
rules.sorted
inspect(rules.sorted)#Judge whether the rule is redundanceredundant=is.redundant(rules.sorted)redundant#Find redundant rules
rules.redundant=rules.sorted[redundant]
inspect(rules.redundant)#drop redundant rulesrules.pruned=rules.sorted[!redundant]
inspect(rules.pruned)#relation diagramsortrules=sort(rules,by="lift")
inspect(sortrules)### draw a picturelibrary(arulesViz)
plot(rules.pruned,measure="confidence",method="graph",control=list(type="items"),shading="lift")#interactive
plot(rules,measure = c("support","lift"),shading = "confidence",interactive = T)#View one rule
Milk_rule=apriori(data=trans,parameter = list(support=0.2,confidence=0.5,minlen=2),appearance = list(default="rhs",lhs="Milk"))
inspect(Milk_rule)plot(Milk_rule,by="lift",main="Milk_rule by lift",method="graph",control =list(type="items"))#Draw a balloon diagram of association rules,more than two rules can be drawnplot(c(rules.pruned,Milk_rule),main="Milk_rules by grouped")plot(c(rules.pruned,Milk_rule),method="grouped",main="Milk_rules by grouped")# Using Apriori algorithm to generate the right milk ruleRhs_Milk=apriori(data=trans,parameter = list(support=0.2,confidence=0.5,minlen=2),appearance = list(default="lhs",rhs="Milk"))inspect(Rhs_Milk)redundant1=is.redundant(Rhs_Milk)
Rhr=Rhs_Milk[!redundant1]
inspect(Rhr)install.packages("wordcloud2")
library(wordcloud2)

44 R关联分析——Apriori算法相关推荐

  1. 关联分析(Apriori算法) 面包 牛奶 尿布 啤酒 ...

    关联分析时,需要处理两个关键问题 1 大量数据集中发现模式,计算代价高 2 某些模式可能是虚假的,因为他们是偶然发生的 关联分析例题:从这个商品记录得出顾客喜欢同时购买那几样东西 TID 面包 牛奶 ...

  2. 数据挖掘之关联分析Apriori算法

    文章目录 一.理论知识 1.1.定义 1.2.关联规则 1.3.频繁项集的产生 二.python实战 一.理论知识 许多商业企业在运营中积累了大量的数据.例如:普通超市的收银台每天都会收集到大量的用户 ...

  3. 关联分析——Apriori算法

    Apriori 算法详解 当我们在百度搜索里输入一个单词或单词一部分的时候,搜索引擎会自动补全查询词项,比如:输入"机器",百度下拉词项中就会出现"机器人编程" ...

  4. 【机器学习】关联分析Apriori算法详解以及代码实现

    Apriori算法以及统计学基础 什么是关联分析 简单的统计学基础 Apriori输出频繁集 从频繁项集中挖掘关联规则 什么是关联分析 从大规模数据集中寻找物品间的隐含关系被称作关联分析.而寻找物品的 ...

  5. 挖掘频繁模式、关联和Apriori算法

    挖掘频繁模式.关联和Apriori算法 1. 引入 1.1 基本概念 频繁模式:频繁出现在数据集中的模式 频繁模式挖掘:获取到给定数据集中反复出现的联系 注:模式其实可以理解为,你在淘宝购物,你的购物 ...

  6. R语言使用apriori算法进行关联规则挖掘实战:关联规则概念、频繁项集、支持度(support)、置信度(confidence)、提升度(lift)、apriori算法

    R语言使用apriori算法进行关联规则挖掘实战:关联规则概念.频繁项集.支持度(support).置信度(confidence).提升度(lift).apriori算法 目录

  7. apriori算法_挖掘频繁模式、关联和Apriori算法

    挖掘频繁模式.关联和Apriori算法 1. 引入 1.1 基本概念 频繁模式:频繁出现在数据集中的模式 频繁模式挖掘:获取到给定数据集中反复出现的联系 注:模式其实可以理解为,你在淘宝购物,你的购物 ...

  8. 关联分析Apriori算法和FP-growth算法初探

    1. 关联分析是什么? Apriori和FP-growth算法是一种关联算法,属于无监督算法的一种,它们可以自动从数据中挖掘出潜在的关联关系.例如经典的啤酒与尿布的故事.下面我们用一个例子来切入本文对 ...

  9. 无监督学习-关联分析apriori原理与python代码

    关联分析是一种无监督学习,它的目标就是从大数据中找出那些经常一起出现的东西,不管是商品还是其他什么 item,然后靠这些结果总结出关联规则以用于后续的商业目的或者其他项目需求. 关联分析原理 那么这里 ...

最新文章

  1. Java归去来第2集:利用Eclipse创建Maven Web项目
  2. Neutron 网络基本概念
  3. 《编码的奥秘》---学习编程一年半的体会
  4. Zabbix3.2安装
  5. 启动linux_使用 UEFI 双启动 Windows 和 Linux | Linux 中国
  6. 支付业务与技术架构学习总结(6)——对账系统的设计
  7. ECMAScript 6新特性介绍
  8. jquery 检测div宽度变化_jquery判断浏览器宽度小于指定值改变div样式
  9. woocommerce产品选项描述修改_WooCommerce微信小程序直播功能接入指引
  10. 0xbc指令 st75256_HGO2401603初始化代码ST75256驱动程序
  11. ASM、AAM算法介绍
  12. 正则表达式判断用户昵称
  13. PyTorch中repeat、tile与repeat_interleave的区别
  14. STM32控制NRF24L01无线模块进行通信
  15. C#基础代码笔记(五)
  16. 数K8S无服务器风流人物,还得看Kubeless
  17. syn flood 攻击 c 语言源代码,以太网模拟syn flood攻击
  18. [Swift]LeetCode48. 旋转图像 | Rotate Image
  19. 基于深度学习的图像去噪方法归纳总结
  20. 有些政府性质的网站对非IE浏览器不怎么支持,该如何处理?

热门文章

  1. android 上下平滑翻页
  2. 标准的网页浏览器都提供一个功能:保留最近浏览过页面的历史记录。通过后退或向前按钮就能在历史记录之间跳转。现在,请你模拟这个功能,接收如下三条指令:1. BACK:回退功能,即回退到上一个访问的
  3. 三相逆变器双pi控制器参数如何调节_学术简报︱如何解决并网逆变器的重复控制器积分饱和问题?...
  4. 第三部分:Android 应用程序接口指南---第三节:应用程序资源---第五章 资源类型...
  5. 本杰明•富兰克林效应
  6. HTML——微信H5分享
  7. 云呐|RFID资产管理,rfid资产管理系统优势
  8. 采用相干瑞利散射和光时域散射原理的分布式光纤声波振动传感系统
  9. OSCP-Snookums(db.php配置文件泄露)
  10. Non-UTF-8 code starting with ‘\xe8‘ in file解决方案