Skip to main content
QUICK REVIEW

[论文解读] ARULESPY: Exploring Association Rules and Frequent Itemsets in Python

Michael Hahsler|arXiv (Cornell University)|May 24, 2023
Data Mining Algorithms and Applications被引用 4
一句话总结

arulespy 是一个 Python 包,将基于 R 的 arules 和 arulesViz 基础设施移植到 Python,使 Python 用户能够以 Pythonic 语法、稀疏矩阵表示法以及与 Jupyter 笔记本和数据科学工作流的完整集成,使用相同全面且高性能的工具进行频繁项集和规则挖掘。

ABSTRACT

The R arules package implements a comprehensive infrastructure for representing, manipulating, and analyzing transaction data and patterns using frequent itemsets and association rules. The package also provides a wide range of interest measures and mining algorithms, including the code of Christian Borgelt's popular and efficient C implementations of the association mining algorithms Apriori and Eclat, and optimized C/C++ code for mining and manipulating association rules using sparse matrix representation. This document describes the new Python package arulespy, which makes this infrastructure available for Python users.

研究动机与目标

  • 使 Python 用户能够访问此前仅限于 R 的成熟且高性能的关联规则挖掘基础设施。
  • 弥合 R 的 arules 生态系统与 Python 的数据科学生态系统之间的差距,尤其针对在 Jupyter 笔记本中工作的用户。
  • 提供一种 Pythonic 接口,模仿 R 的函数式风格,同时与 pandas、numpy 和 scipy 的数据结构保持兼容。
  • 通过 ggplot 和 HTML 小部件支持高级可视化和关联规则的交互式探索。
  • 通过支持常见数据格式和转换方法(例如,转换为 DataFrame、dict、matrix),确保与现有数据科学工作流的无缝集成。

提出的方法

  • 基于 rpy2 与 R 的 arules 和 arulesViz 包进行接口连接,重用其针对挖掘和稀疏矩阵操作的优化 C/C++ 代码。
  • 实现高层级的 Pythonic 接口,支持列表类行为,包括切片、len()、sort()、unique() 和 sample(),适用于事务、项集和规则。
  • 提供 as_df()、as_matrix()、as_dict() 和 as_list() 等转换方法,以实现与 pandas、numpy 和标准 Python 数据结构的互操作。
  • 通过规则对象上的方法调用,暴露质量度量(如支持度、置信度、提升度等)和规则属性(如闭合、最大、生成器、冗余、显著性)。
  • 通过 ggplot 和基于 HTML 的工具(如 plotly 和 visNetwork)实现静态和交互式可视化,支持在 Jupyter 笔记本中嵌入。
  • 通过 R 模块提供低层 rpy2 接口,供高级用户使用,允许直接访问 R 函数,并手动构建稀疏矩阵和规则对象。
Figure 1: arulespy modules with Python classes.
Figure 1: arulespy modules with Python classes.

实验结果

研究问题

  • RQ1如何以 Pythonic 且高性能的方式,有效暴露 R 的 arules 和 arulesViz 包的全部功能给 Python 用户?
  • RQ2在保持性能和功能完整性的同时,R 基于的频繁模式挖掘基础设施在多大程度上可以适配到 Python?
  • RQ3是否可以构建一个 Python 包,既支持高层级、直观的数据操作,又提供对 R 底层 C/C++ 加速算法的低层访问?
  • RQ4如何在 Python 中原生支持关联规则的交互式和静态可视化,以最小化在 Jupyter 工作流中的摩擦?
  • RQ5使用 rpy2 和稀疏矩阵表示法对在 Python 中工作的数据科学家的可用性和性能有何影响?

主要发现

  • arulespy 通过 Pythonic 接口成功暴露了 R 的 arules 包的全部功能——超过 50 种兴趣度量和基于 C/C++ 的优化挖掘算法。
  • 该包支持在 Python 数据结构(pandas DataFrame、numpy 矩阵、Python 字典)与事务数据之间无缝转换,使与现有数据科学工作流的集成成为可能。
  • 通过 HTML 小部件在 Jupyter 笔记本中原生支持交互式可视化,包括可排序的规则表格和基于图的可视化,显著增强了探索性数据分析能力。
  • 低层接口允许直接访问 R 的稀疏矩阵表示和规则构建,使高级用户能够利用底层 arules 引擎构建自定义逻辑。
  • 通过 pip 安装简单明了,首次导入时会自动安装 R 包,显著降低了用户的设置门槛。
  • 该包在规则质量度量和结构属性(如闭合、最大、生成器)方面与 R 的 arules 保持功能一致,确保跨平台分析的一致性。
Figure 2: Scatter plot of the rules
Figure 2: Scatter plot of the rules

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。