R语言关联规则及其可视化(Foodmart数据)

数据集描述

上周数据挖掘学习了关联规则,今天来练习一下。
回顾一下一些重要的名词:
在这里插入图片描述
数据集是Foodmart1997年和1998年的购物篮数据(合并为了一个数据集sales.txt),购物篮items用编号表示;编号对应的具体商品列表在productList.txt
参考:https://blog.csdn.net/gjwang1983/article/details/45015203
关联规则和可视化用的R语言,主要是arules和arulesViz两个包,但部分对数据集的处理用的Python(R我用得不太熟练),以下代码若无额外说明都是R语言

# 导入我们需要用到的包
library(arules)        # association rules
library(arulesViz)     # data visualization of association rules
library(RColorBrewer)  # color palettes for plots
library(shinythemes)   # 交互式的绘图需要
# 读取交易数据集(这里我已经将97和98年数据手动合并成了sales.txt)
sales <- read.transactions("Sales.txt", format = "basket", sep =" ")
summary(sales)

output:
在这里插入图片描述
summary的含义:

  • 第一段:总共有54600条交易记录,1559种商品。density = 0.00295表示在稀疏矩阵中1的百分比。
  • 第二段:最频繁出现的商品item,以及其出现的次数。可以计算出最大支持度。
  • 第三段:每笔交易包含的商品数目,以及其对应的5个分位数和均值的统计信息。如:4003条交易仅包含了1个商品,7825条交易购买了2件商品,1条交易购买了27件商品。第一分位数是3,意味着25%的交易包含不超过3个item。中位数是4。所有的交易平均购买4.6件商品。
  • 第四段:如果数据集包含Item之外的其他的列(如,交易的时间,用户ID等等),会显示在这里。

查看一下数据集的前5行:

inspect(sales[1:5])  # 查看数据

items
1 {1441,326,932}
2 {1038,1148,555}
3 {327,377,653,942}
4 {118,1227,1383,390,673,761}
5 {113,1401,363,452,525,768}

初步探索

对交易数据进行一些简单的描述统计吧,比如计算一个每个商品item出现的频数和频率。频率可以用itemFrequency()这个函数直接计算得到,通过itemFrequencyPlot()可以画出最频繁被购买的商品

itemFreq <- itemFrequency(sales)      # ItemFrequency是这个item的支持度(在transaction中出现的频率)
basketSize = size(sales)              # 每个transaction包含item的数目
itemCount <- (itemFreq/sum(itemFreq))*sum(basketSize)   # 每个item出现的次数
sum(itemFreq)    # 平均一个transaction购买的item个数
orderedItemFreq <- sort(itemFrequency(sales)
  • 9
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值