マーケットバスケット分析 | アソシエーション分析 | Pythonによる機械学習を学ぶ

現在作成中です。今後加筆修正してまいります。
スポンサーリンク
スポンサーリンク

マーケットバスケット分析

マーケットバスケット分析(Market Basket Analysis)は、顧客が購入する商品の組み合わせパターンを見つけるためのデータマイニング手法の一つです。これにより、スーパーマーケットやEコマースサイトでの販売戦略を最適化するために使われます。商品の関連性を基に、どのアイテムが一緒に購入される可能性が高いかを見つけることができます。

マーケットバスケット分析の基本概念

マーケットバスケット分析は、以下のような基本的な指標を使用して行います。

  • サポート(Support): 特定のアイテムセットが全体の取引の中でどれだけ出現するかを示す指標。
  • 信頼度(Confidence): あるアイテムが購入されたときに、他のアイテムも同時に購入される確率を示します。
  • リフト(Lift): アイテムAとアイテムBが一緒に購入される可能性が、AとBが独立して購入される場合と比べてどの程度高いかを示す指標。

マーケットバスケット分析の仕組み

この分析では、トランザクションデータから頻繁に一緒に購入されるアイテムセットを見つけ、そのセットに基づいて信頼度の高いアソシエーションルールを生成します。以下は、これらの概念をPythonで実装する手順です。

マーケットバスケット分析のPython実装

Pythonのmlxtendライブラリを使って、マーケットバスケット分析を行うことができます。以下のコードは、サンプルデータに対してアプリオリアルゴリズムを実行し、アソシエーションルールを生成する例です。

import pandas as pd
from mlxtend.frequent_patterns import apriori, association_rules

# サンプルのトランザクションデータ
data = {'ミルク': [1, 0, 1, 1, 0],
        'パン': [1, 1, 0, 1, 1],
        'バター': [0, 1, 1, 0, 1],
        'チーズ': [0, 0, 1, 1, 0],
        '卵': [1, 1, 0, 0, 1]}

df = pd.DataFrame(data)

# Aprioriアルゴリズムで頻出項目セットを発見
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

# アソシエーションルールの生成
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)

# 結果の表示
print(frequent_itemsets)
print(rules)

コードの解説

  • apriori関数: この関数は、トランザクションデータに基づいて頻繁に一緒に購入されるアイテムセットを見つけます。min_supportパラメータは、少なくとも50%以上の取引で現れるアイテムセットを抽出します。
  • association_rules関数: この関数は、見つけた頻出項目セットから、信頼度が70%以上のアソシエーションルールを生成します。

評価指標の解説

マーケットバスケット分析で生成されるアソシエーションルールは、次のような指標を使って評価されます。

評価指標 説明
サポート 特定のアイテムセットがトランザクション全体でどれだけ出現するかを示します。
信頼度 あるアイテムを購入した際に、他のアイテムも一緒に購入される確率を示します。
リフト あるアイテムセットが、個々のアイテムが単独で購入された場合と比べて、どの程度頻繁に一緒に購入されるかを示します。リフトが1を超える場合、AとBは関連して購入される可能性が高いことを意味します。

マーケットバスケット分析の応用例

マーケットバスケット分析は、以下のようなビジネスシナリオで活用されています。

  • スーパーマーケット: 一緒に購入されるアイテムのパターンを分析して、商品棚の配置やプロモーションを最適化します。
  • オンラインショッピング: 購入履歴を分析し、関連商品をおすすめするレコメンデーションシステムの設計に使われます。
  • 小売業界: 顧客の購買行動に基づいたパーソナライズされたクーポンの提供。

例: スーパーマーケットでの応用

例えば、顧客がパンを購入した場合、バターも一緒に購入される可能性が高いことが発見されれば、パンの近くにバターを配置することで、売り上げを増加させることができます。また、頻出する商品ペアに割引を提供することで、顧客に追加の購入を促すことも可能です。

アソシエーションルールの応用と評価

生成されたアソシエーションルールは、サポート、信頼度、リフトを使って評価され、ビジネス上の意思決定に役立てることができます。マーケットバスケット分析を効果的に使うためには、サポートが高い商品だけでなく、信頼度やリフトが高いルールに注目し、より関連性の強い商品ペアを見つけ出すことが重要です。

まとめ

マーケットバスケット分析は、顧客の購買パターンを理解し、商品の関連性を発見するための強力な手法です。これにより、商品の配置、プロモーション戦略、レコメンデーションシステムの設計など、多岐にわたるビジネス応用が可能になります。Pythonを使えば、mlxtendライブラリを用いて簡単に実装でき、効率的にアソシエーションルールを生成できます。