無意味なルールのフィルタリングと高付加価値商品バンドルの特定
メニューを表示するにはスワイプしてください
マーケットバスケット分析の効果を最大化するには、ビジネス目標にとって些細または無関係なアソシエーションルールと、本当に価値のあるルールを分離する必要があります。このプロセスにより、推奨やプロモーションがノイズや明白なパターンではなく、実用的なインサイトに基づくものとなります。
フィルタリング基準
アソシエーションルールをフィルタリングする最初のステップは、サポート、信頼度、リフトの最小しきい値を設定することです。これらの指標により、有用性が低い、または統計的に有意でないルールを除外できます。
- サポートしきい値:取引数が少なすぎるルールを無視し、外れ値やビジネスインパクトのないものを排除;
- 信頼度しきい値:前件と後件の関連性が十分に強くないルールを除外;
- リフトしきい値:リフト値が1に近い、または1以下のルールを除外し、偶然以上の意味のある関連性を持たないものを排除。
冗長性
マイニング結果の多くのルールは冗長であり、他のルールと比較して新しい情報を提供しません。例えば、「milk → bread」と「milk, butter → bread」が同様のサポートと信頼度を持つ場合、より具体的なルールは付加価値をもたらさない可能性があります。冗長なルールを特定して除外することで、最も簡潔で有益なパターンに集中できます。
ビジネス関連性
統計的に強いルールが必ずしもビジネスに有用とは限りません。ルールが実用的かどうかを判断するために、以下の点を確認します:
- ルールは一緒にプロモーションできる商品ペアを示唆しているか?
- 組み合わせは物流的に実現可能か(例:無関係な部門の商品を組み合わせていないか)?
- ルールは店舗レイアウトやクロスセル戦略に活用できるか?
- ルールはバスケットサイズの拡大や新商品の導入など、ビジネス目標に合致しているか?
例:高付加価値バンドル抽出のためのルールフィルタリング
取引データからアソシエーションルールを抽出したと仮定します。しきい値の適用と冗長性の除去により、統計的に有意かつビジネス目標に合致した高付加価値な商品バンドルの小さなセットを抽出できます。
12345678910111213141516171819202122232425262728293031import pandas as pd # Example association rules DataFrame rules = pd.DataFrame({ 'antecedents': [['milk'], ['bread'], ['milk', 'bread'], ['chips'], ['chips', 'salsa']], 'consequents': [['bread'], ['milk'], ['butter'], ['salsa'], ['soft drinks']], 'support': [0.30, 0.28, 0.15, 0.10, 0.08], 'confidence': [0.7, 0.6, 0.5, 0.4, 0.75], 'lift': [1.2, 1.1, 0.95, 1.0, 1.5] }) # Setting filtering thresholds min_support = 0.10 min_confidence = 0.6 min_lift = 1.1 # Filtering rules by thresholds and explicitly creating a copy filtered_rules = rules[ (rules['support'] >= min_support) & (rules['confidence'] >= min_confidence) & (rules['lift'] >= min_lift) ].copy() # Removing redundant rules: keep only the most general (shortest antecedents) filtered_rules['antecedent_length'] = filtered_rules['antecedents'].apply(len) non_redundant_rules = filtered_rules.sort_values('antecedent_length').drop_duplicates('consequents') # Identifying top product bundles (by lift) top_bundles = non_redundant_rules.sort_values('lift', ascending=False) print(top_bundles[['antecedents', 'consequents', 'support', 'confidence', 'lift']])
1. アソシエーションルールをフィルタリングする際に、最小リフトしきい値を設定する主な理由は何ですか?
2. 次のうち、冗長なアソシエーションルールを最もよく表しているものはどれですか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 4
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 4