热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用R语言进行Foodmart数据的关联规则分析与可视化

本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。

使用R语言进行Foodmart数据的关联规则分析与可视化

  • 数据集介绍
  • 数据预处理
  • 关联规则挖掘
  • 规则可视化
  • 商品类别间的关联规则
  • 规则评估指标
  • 附加说明
数据集介绍

本文基于Foodmart1997和1998年的购物篮数据进行分析,这些数据已合并成一个名为sales.txt的数据集,其中商品通过编号表示。具体商品列表见productList.txt文件。本研究主要采用R语言的arules和arulesViz包进行关联规则的挖掘和可视化,部分数据预处理工作使用了Python。

# 导入库
library(arules)
library(arulesViz)
library(RColorBrewer)
library(shinythemes)

# 加载交易数据集
sales <- read.transactions("Sales.txt", format = "basket", sep = " ")
summary(sales)

上述代码加载了数据集并提供了基本的统计信息,包括交易总数、商品种类、密度、最常出现的商品及其频率、每笔交易的商品数量分布等。

数据预处理

首先,我们对交易数据进行了初步探索,计算了每个商品的出现频次和频率,并绘制了最常购买的前20种商品的图表。

itemFreq <- itemFrequency(sales)
basketSize = size(sales)
itemCount <- (itemFreq / sum(itemFreq)) * sum(basketSize)
orderedItemFreq <- sort(itemFrequency(sales), decreasing = TRUE)
itemFrequencyPlot(sales, topN = 20, horiz = TRUE)

关联规则挖掘

使用apriori算法进行关联规则挖掘,通过设置最小支持度和置信度来筛选出有意义的规则。本例中,最小支持度设为0.00012,最小置信度设为0.3,最小规则长度设为2。

rules <- apriori(sales, parameter = list(support = 0.00012, cOnfidence= 0.3, minlen = 2))
ordered_rules <- sort(rules, by = "lift")
inspect(ordered_rules[1:5])

规则可视化

arulesViz包提供了多种关联规则的可视化方式,如散点图等,帮助直观理解规则之间的关系。

plot(rules, cOntrol= list(jitter = 1.5, col = rev(brewer.pal(9, "Blues")[4:9])), shading = "lift", cex = 0.3)

商品类别间的关联规则

进一步分析时,将商品按类别汇总,再次进行关联规则挖掘。这一过程涉及到使用Python脚本处理原始数据,提取每个商品的类别信息,并生成新的交易数据集。

# Python脚本用于处理数据
# 省略具体代码...

处理后的数据用于R语言中进行进一步的分析,包括商品类别频率的图表展示和关联规则的挖掘。

sales_cat <- read.transactions("Sales_cat.txt", format = "basket", sep = " ")
rules_cat <- apriori(sales_cat, parameter = list(support = 0.001, cOnfidence= 0.1, minlen = 2))
ordered_rules_cat <- sort(rules_cat, by = "lift")
inspect(ordered_rules_cat[1:8])

规则评估指标

除了常见的支持度、置信度和提升度外,还可以计算其他评估指标,如Phi系数等,以全面评估规则的有效性。

interestMeasure(ordered_rules_cat[1:5], measure = 'phi', transactiOns= sales_cat)

附加说明

在实际应用中,可根据具体需求调整支持度和置信度的阈值,以获得更有价值的关联规则。深入解读挖掘出的规则,往往能揭示出有趣的商业洞察。


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文深入探讨了如何通过调整InnoDB的关键配置参数来优化MySQL的随机IO性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
author-avatar
Du-kodak
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有