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 は、R の arules および arulesViz インfra を Python に移植した Python パッケージであり、Python ユーザーが Python スタイルの構文、スパース行列表現、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.

研究の動機と目的

  • R のユーザーに限定されていた成熟した高パフォーマンスな関連ルールマイニングインfraを Python ユーザーが利用できるようにすること。
  • R の arules エコシステムと Python のデータサイエンスエコシステムの溝を埋め、特に Jupyter ノートブックで作業するユーザーを対象とすること。
  • R の関数型スタイルを模倣した Python スタイルのインターフェースを提供すると同時に、pandas、numpy、scipy のデータ構造と互換性を保つこと。
  • ggplot および HTML ウィジェットを用いた可視化とインタラクティブなルール探索を支援すること。
  • 一般的なデータフォーマットおよび変換メソッド(例:DataFrame、dict、matrix への変換)をサポートすることで、既存のデータサイエンスパイプラインへのシームレスな統合を確保すること。

提案手法

  • rpy2 を使用して R の arules および arulesViz パッケージにインターフェースを張り、マイニングおよびスパース行列演算の最適化された C/C++ コードを再利用すること。
  • スライシング、len()、sort()、unique()、sample() などのリストに似た振る舞いを備えた高レベルの Python スタイルインターフェースを実装し、取引、アイテムセット、ルールに対して提供すること。
  • pandas、numpy、および標準の Python データ構造と連携できるように、as_df()、as_matrix()、as_dict()、as_list() などの変換メソッドを提供すること。
  • ルールオブジェクトに対するメソッドコールによって、品質指標(サポート、信頼度、リフトなど)およびルールの性質(閉包、最大、生成子、重複、有意性)を公開すること。
  • ggplot および plotly や visNetwork などの HTML ベースのツールを用いた静的およびインタラクティブな可視化を実装し、Jupyter ノートブックへの埋め込みをサポートすること。
  • 高度なユーザー向けに、R モジュールを通じた低レベルの rpy2 インターフェースを提供し、R 関数への直接アクセスおよびスパース行列やルールオブジェクトの手動生成を可能にすること。
Figure 1: arulespy modules with Python classes.
Figure 1: arulespy modules with Python classes.

実験結果

リサーチクエスチョン

  • RQ1R の arules および arulesViz パッケージの全機能を、Python スタイルでかつパフォーマンスを損なわずに Python ユーザーに効果的に提供する方法は何か?
  • RQ2R の頻出パターンマイニングインfraを Python に適応するにあたり、パフォーマンスと機能の完全性を保ちながらどの程度の適合性を達成できるか?
  • RQ3高レベルの直感的なデータ操作と、R の下位層の C/C++ で加速されたアルゴリズムへの低レベルアクセスを両立できる Python パッケージを構築できるか?
  • RQ4Jupyter ワークフローにおける摩擦を最小限に抑えて、関連ルールのインタラクティブおよび静的可視化を natively どのようにサポートできるか?
  • RQ5rpy2 およびスパース行列表現の使用が、Python で作業するデータサイエンティストの usability とパフォーマンスに与える影響は何か?

主な発見

  • arulespy は、R の arules パッケージの全範囲 — 50 種類以上の関心指標および最適化された C/C++ ベースのマイニングアルゴリズム — を Python スタイルのインターフェースで効果的に公開した。
  • パッケージは、Python のデータ構造(pandas の DataFrame、numpy の行列、Python の辞書)とトランザクションデータとの間でシームレスな変換をサポートしており、既存のデータサイエンスワークフローへの統合を可能にしている。
  • Jupyter ノートブック内で HTML ウィジェットを用いて、ソート可能なルールテーブルやグラフベースの可視化がネイティブにサポートされており、探索的データ分析を強化している。
  • 低レベルインターフェースにより、R のスパース行列表現およびルールの構築に直接アクセスでき、高度なユーザーが下位層の arules エンジンを用いてカスタムロジックを構築できる。
  • pip を用いたインストールは簡単であり、初回のインポート時に R パッケージが自動的にインストールされるため、ユーザーのセットアップの煩わしさが最小限に抑えられている。
  • 閉包、最大、生成子などのルールの構造的性質を含め、R の arules と同等の機能を維持しており、プラットフォーム間での一貫した分析が保証されている。
Figure 2: Scatter plot of the rules
Figure 2: Scatter plot of the rules

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。