問題:
何百万ものトランザクションのリストがあります。各トランザクションにはアイテム (「ニンジン」、「リンゴ」など) が含まれます。目標は、個々のトランザクションで頻繁に一緒に発生するアイテムのペアのリストを生成することです。私が知る限り、網羅的な検索を行うことは現実的ではありません。
解決策の試み:
これまでのところ、私には2つのアイデアがあります。1) トランザクションの適切な部分をランダムにサンプリングし、それらのみをチェックするか、2) 各要素が出現する頻度を数え、そのデータを使用して要素が偶然一緒に出現する頻度を計算し、それを使用して推定値を 1 から変更します。
ヒント、代替アプローチ、既製のソリューション、または一般的な読書の提案は大歓迎です。
編集:
コメントからの追加情報
異なるアイテムの数: 1,000 ~ 100,000
メモリの制約: 数時間、せいぜい数ギガの RAM。
使用頻度:多かれ少なかれ一回限り。
利用可能なリソース: 20 ~ 100 時間の初心者プログラマーの時間。
望ましい結果リスト形式: アイテムのペアと、最も頻繁に出現する n 個のペアについて、アイテムの出現頻度を測定するもの。
トランザクションごとのアイテムの配布: 現在のところ不明です。