R语言关联规则

#                            Apriori算法实现关联规则挖掘


#======================= MODEL1. 输入数据集为transaction类型 ======================

#install.packages("arules")    #Apriori算法程序包
library(arules)
data(Groceries)               #调用R自带关联规则数据集Groceries(transaction类型的格式)

#-----------------------查看数据的详细信息
# Groceries数据集为杂货店一个月的交易记录集,包括169中商品项目,9835个记录
head(Groceries)     #查看前6条记录
str(Groceries)      #查看数据的内部结构
summary(Groceries)  #查看数据的基本统计量
class(Groceries)    #查看数据类型,关联规则处理的数据类型为“transactions”
dim(Groceries)      #查看数据的维数  行数和列数
colnames(Groceries[,1:5])   #查看第1-5列的列名
#inspect(Groceries)   #查看transactions数据集中的全部记录

#--------------------- Apriori实现关联规则
# apriori的参数设置为支持度0.01,置信度0.1,关联前项和后项包含的最小项目数为2,最大项数为15
rules=apriori(Groceries, parameter=list(support=0.01,confidence=0.1,minlen=2,maxlen=15))  

# 如果需要了解某一种商品的关联情况,可以使用appearance参数,以下为探究与whole milk关联的商品,设置关联前项为whole milk,后项不限
# rules=apriori(Groceries, parameter=list(support=0.01,confidence=0.1,minlen=2),appearance=list(lhs="whole milk",default="rhs"))  

rules           #查看生成的关联规则
rules<-sort(rules,by='support')               #对规则按照support从高到低排序
inspect(rules[1:10])            #查看前10条规则         

# 对规则进行格式转换并输出
R1<-as(rules,'data.frame')    #将关联规则设置成dataframe格式
#setwd("D:\\R files\\Data")
write.csv(R1,"Groceries_apriori.csv") 

#-------------------- 关联规则可视化
#install.packages("arulesViz")   #关联规则可视化程序包
library ( arulesViz )

plot(rules, measure = c("support", "lift"), shading = "confidence")   #画出关联结果的散点图
plot(rules,method="grouped")    #作出rules的分组图

# 绘制Two‐key图,其中关联规则点的颜色深浅表示其所代表的关联规则中所含商品的多少,商品种类越多,点的颜色越深
plot(rules,shading="order", control=list(main="Two‐key plot")) 

#========================== MODEL2. 输入数据集为稀疏矩阵 ===========================
#setwd("D:\\R files\\Data")
#  若输入矩阵为其他形式,可转换,将其变成稀疏矩阵
#  数据集testA为简单的输入稀疏矩阵,7个项目和9条记录

testA=read.csv(file="testA.csv",as.is = T,sep=",")      #读入稀疏矩阵
set<-testA
factorK<-function(X){factor(X,levels=0:1)}        #建立factorK函数
T1<-as(data.frame(apply(set,2,factorK)),"transactions")    #根据列对应的值是否为1建立transaction格式的数据集
T2<-apriori(T1,parameter=list(minlen=2,supp=0.3,conf=0.5))      #得到支持度0.1,置信度0.5的关联规则
T2<-sort(T2,by='support')      #将关联规则按支持度从高到低排序
inspect(T2[1:10])

# 对规则进行格式转换
T3<-as(T2,'data.frame')    #将关联规则设置成dataframe格式

# 画图
library ( arulesViz )
plot(T2, measure = c("support", "lift"), shading = "confidence")   #画出关联结果的散点图
plot(T2,method="grouped")    #作出分组图

# 绘制Two‐key图,其中关联规则点的颜色深浅表示其所代表的关联规则中所含商品的多少,商品种类越多,点的颜色越深
plot(T2,shading="order", control=list(main="Two‐key plot")) 

#  将关联规则转换格式输出
#setwd("D:\\R files\\Data")
write.csv(T3,"testA_apriori.csv") 
R语言中进行关联规则预处理的过程可以分为以下几个步骤: 1. 数据收集和导入:首先要收集或导入包含关联规则分析所需数据的数据集。可以使用read.csv()函数或其他相关函数来导入数据。 2. 数据清洗和预处理:对于关联规则分析,数据应该是离散的或二进制的。因此,需要对数据进行清洗和预处理,确保数据的格式正确,并进行必要的转换。 3. 数据转换:根据数据的要求和目标,可能需要对数据进行转换。例如,将数据转换为事务形式,其中每一行代表一个事务,并且每个项目用布尔值表示。 4. 频繁项集的挖掘:使用Apriori算法或其他相关算法,根据设定的最小支持度阈值,挖掘出频繁项集。频繁项集是经常一起出现的项的集合。 5. 生成关联规则:根据频繁项集,使用置信度或其他相关度量来生成关联规则关联规则由前提和结论组成,前提是规则的先决条件,而结论则是根据前提可以推导出的结果。 6. 关联规则评估和筛选:对生成的关联规则进行评估,可以使用支持度、置信度、提升度等指标来衡量规则的质量。根据设定的规则质量阈值,筛选出符合要求的强关联规则。 总结起来,R语言中进行关联规则预处理的步骤包括数据收集和导入、数据清洗和预处理、数据转换、频繁项集的挖掘、生成关联规则以及关联规则评估和筛选。这些步骤可以帮助我们预处理数据并得到具有较高质量的关联规则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [r语言实现关联分析--关联规则挖掘(Apriori算法) (r语言预测学习笔记)](https://blog.csdn.net/weixin_45178611/article/details/107881690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [R语言--数据挖掘3---关联规则分析](https://blog.csdn.net/qq_35167821/article/details/115741231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值