Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ マーケットバスケットマトリックスの仕組みの理解 | アソシエーションルールとトランザクション分析の基礎
マーケットバスケット分析とレコメンデーションシステム

マーケットバスケットマトリックスの仕組みの理解

メニューを表示するにはスワイプしてください

マーケットバスケットマトリックスは、小売取引を分析するための構造化された表現方法です。このマトリックスでは、各行が一意の取引(例えば、顧客のレジでの購入)に対応し、各列が販売されている特定の商品を表します。マトリックスの各エントリはバイナリエンコーディングを使用し、1はその取引で商品が購入されたこと、0は購入されなかったことを示します。

Note
定義

マーケットバスケットマトリックスは、小売分析における取引データを表現する構造化されたテーブルです。各行は単一の取引(顧客のショッピングバスケットなど)を表し、各列は店舗で利用可能な特定の商品やアイテムを表します。行と列の交点には値が入り、通常は1または0で、その取引で商品が購入されたかどうかを示します。

この構造はアソシエーションルールマイニングの基礎となり、多数の取引においてどの商品が一緒に購入されているかを明確かつ定量的に把握できます。このマトリックスのパターンを分析することで、頻繁に一緒に購入される商品や、バンドル販売時に売上を牽引する商品などの関連性を発見できます。

この仕組みを理解するために、サンプル取引の小さなセットを考えてみましょう:

  • Transaction 1: Bread, Milk;
  • Transaction 2: Bread, Diaper, Beer, Eggs;
  • Transaction 3: Milk, Diaper, Beer, Cola;
  • Transaction 4: Bread, Milk, Diaper, Beer;
  • Transaction 5: Bread, Milk, Diaper, Cola.

まず、すべてのユニークな商品をリストアップします:Bread, Milk, Diaper, Beer, Eggs, Cola。次に、各取引に商品が含まれていれば1、含まれていなければ0を記入してマトリックスを作成します。結果として、各行が取引、各列が商品となり、購入状況を示すバイナリ値で埋められたテーブルが完成します。

このマトリックスは、頻出アイテムセットの探索やアソシエーションルールの生成を行うアルゴリズムの出発点であり、小売分析の基盤となる要素。

例:Pythonでのマーケットバスケットマトリックスの構築

以下のPythonコード例は、取引データからマーケットバスケットマトリックスを構築する方法を示す。

  • transactionsというリストで、各ショッピングバスケットを一緒に購入された商品のリストとして定義。
  • すべての取引にわたるユニークな商品を収集し、itemsリストにソート。
  • 各取引を反復処理し、商品が取引に含まれていれば1、含まれていなければ0のバイナリ値の行を作成。
  • これらの行をマトリックスとして結合し、pd.DataFrameを使ってpandasのDataFrameに変換。
1234567891011121314151617181920212223
import pandas as pd # Sample list of transactions (each transaction is a list of items) transactions = [ ['Bread', 'Milk'], ['Bread', 'Diaper', 'Beer', 'Eggs'], ['Milk', 'Diaper', 'Beer', 'Cola'], ['Bread', 'Milk', 'Diaper', 'Beer'], ['Bread', 'Milk', 'Diaper', 'Cola'] ] # Get a sorted list of all unique items items = sorted({item for transaction in transactions for item in transaction}) # Create the market basket matrix basket_matrix = [] for transaction in transactions: row = [1 if item in transaction else 0 for item in items] basket_matrix.append(row) # Convert to pandas DataFrame for readability df = pd.DataFrame(basket_matrix, columns=items) print(df)

このDataFrameは、各行が取引を、各列が商品を表す明確で読みやすい表を提供します。同じ行に1があることで、どの商品が一緒に購入されたかを簡単に確認でき、商品の関連性を分析しやすくなります。

1. 小売分析におけるマーケットバスケット行列の目的として最も適切なものはどれですか?

2. マーケットバスケット行列では、通常、行と列は何を表しますか?

question mark

小売分析におけるマーケットバスケット行列の目的として最も適切なものはどれですか?

正しい答えを選んでください

question mark

マーケットバスケット行列では、通常、行と列は何を表しますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  1

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  1
some-alt