Skip to main content
QUICK REVIEW

[논문 리뷰] ARULESPY: Exploring Association Rules and Frequent Itemsets in Python

Michael Hahsler|arXiv (Cornell University)|2023. 05. 24.
Data Mining Algorithms and Applications인용 수 4
한 줄 요약

arulespy는 R 기반의 arules와 arulesViz 인fra를 파이썬으로 이식한 파이썬 패키지로, 파이썬 사용자가 파이썬스러운 문법, 희소 행렬 표현 방식, 그리고 주피터 노트북 및 데이터 과학 워크플로우와의 완전한 통합을 통해 높은 성능을 자랑하는 빈도 있는 항목집합 및 규칙 탐색을 위한 동일한 포괄적인 도구를 활용할 수 있도록 한다.

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.

연구 동기 및 목표

  • 이전에는 R 전용이었던 성숙하고 고성능의 연관 규칙 탐색 인fra를 파이썬 사용자가 접근할 수 있도록 하기.
  • R의 arules 생태계와 파이썬의 데이터 과학 생태계 사이의 격차를 메우며, 특히 주피터 노트북에서 작업하는 사용자들에게 도움이 되기.
  • R의 기능 스타일을 그대로 반영하면서도 pandas, numpy, scipy 데이터 구조와의 호환성을 유지하는 파이썬스러운 인터페이스 제공.
  • ggplot 및 HTML 위젯을 활용한 고급 시각화 및 상호작용 가능한 연관 규칙 탐색 지원.
  • 일반적인 데이터 포맷 및 변환 방법(예: DataFrame, dict, matrix로의 변환)을 지원함으로써 기존 데이터 과학 파ip라인과 원활한 통합 보장.

제안 방법

  • R의 arules 및 arulesViz 패키지를 인터페이스하기 위해 rpy2를 기반으로 하여, 탐색 및 희소 행렬 연산에 최적화된 C/C++ 코드를 재사용.
  • 트랜잭션, 아이템세트, 규칙에 대해 슬라이싱, len(), sort(), unique(), sample()와 같은 리스트 유사 동작을 지원하는 고수준 파이썬스러운 인터페이스를 구현.
  • pandas, numpy, 표준 파이썬 데이터 구조와의 상호운용을 위해 as_df(), as_matrix(), as_dict(), as_list() 등의 변환 메서드 제공.
  • 규칙 객체의 메서드 호출을 통해 지원도, 신뢰도, 리프트 등 품질 측정치와 닫힘, 최대, 생성자, 중복 제거, 유의미성 등의 규칙 속성 노출.
  • ggplot 및 HTML 기반 도구(예: plotly, visNetwork)를 사용한 정적 및 상호작용 가능한 시각화를 주피터 노트북에 통합된 방식으로 지원.
  • 고급 사용자를 위해 R 모듈을 통한 저수준 rpy2 인터페이스 제공으로, R 함수 직접 접근 및 희소 행렬, 규칙 객체 수동 생성 가능.
Figure 1: arulespy modules with Python classes.
Figure 1: arulespy modules with Python classes.

실험 결과

연구 질문

  • RQ1R의 arules와 arulesViz 패키지의 전반적인 기능을 파이썬 사용자에게 파이썬스럽고 고성능으로 효과적으로 노출할 수 있는 방법은 무엇인가?
  • RQ2R 기반의 빈도 패턴 탐색 인프라는 얼마나 잘 파이썬으로 적응시킬 수 있으며, 성능과 기능 완전성은 유지될 수 있는가?
  • RQ3고수준의 직관적인 데이터 조작과 저수준에서 R의 기반 C/C++ 가속 알고리즘에 대한 액세스를 모두 지원하는 파이썬 패키지를 구축할 수 있는가?
  • RQ4주피터 워크플로우에서 최소한의 장애를 겪고도 연관 규칙의 상호작용 및 정적 시각화를 파이썬에서 네이티브로 지원할 수 있는가?
  • RQ5rpy2와 희소 행렬 표현 방식을 사용할 경우, 파이썬에서 데이터 과학자들의 사용성과 성능에 어떤 영향을 미치는가?

주요 결과

  • arulespy는 R의 arules 패키지의 전반적인 기능—50개 이상의 관심도 측정치와 최적화된 C/C++ 기반 탐색 알고리즘—을 파이썬스러운 인터페이스로 성공적으로 노출했다.
  • 파이썬 데이터 구조(예: pandas DataFrame, numpy 행렬, 파이썬 딕셔너리)와 트랜잭션 데이터 간의 원활한 변환을 지원하여 기존 데이터 과학 워크플로우와의 통합을 가능하게 했다.
  • 정렬 가능한 규칙 테이블 및 그래프 기반 시각화를 포함한 상호작용 가능한 시각화 기능이 주피터 노트북에서 HTML 위젯을 통해 네이티브로 지원되어 탐색적 데이터 분석을 향상시켰다.
  • 저수준 인터페이스를 통해 R의 희소 행렬 표현 및 규칙 생성에 직접 액세스할 수 있어 고급 사용자가 기반 arules 엔진을 활용해 맞춤 논리를 구축할 수 있었다.
  • pip를 통한 설치가 간편하며, 첫 번째 임포트 시 R 패키지가 자동으로 설치되어 사용자 설정의 번거로움을 최소화했다.
  • 닫힘, 최대, 생성자 등의 규칙 품질 측정치 및 구조적 속성에서 R의 arules와 기능 일치를 유지하여 플랫폼 간 분석의 일관성을 보장했다.
Figure 2: Scatter plot of the rules
Figure 2: Scatter plot of the rules

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.