Zhangの指標を適用する
第2章で学んだとおり、Zhangの指標は2つのアイテム間の関連度を連続値で表し、[-1,+1] の範囲を取ります。-1 は完全な負の関連、+1 は完全な正の関連を示します。この演習では、Zhangの指標を使って、あるギフトショップが現在プロモーションに用いているルール集合を洗練できるかを確認します。
頻出アイテム集合はすでに計算済みで、frequent_itemsets として利用できます。さらに、zhangs_rule() は定義済みで、association_rules() は mlxtend からインポート済みです。最初に元のルール集合を再計算し、その後に Zhang の指標を適用して、関連が高く正のルールのみを選別します。
この演習はコースの一部です
Python で学ぶマーケットバスケット分析
演習の手順
- lift が少なくとも 1.00 のアソシエーションルール集合を生成します。
- 前件サポートのしきい値を 0.005 に設定します。
- Zhang の指標を計算し、出力を
rulesの列zhangに代入します。 - Zhang の指標が 0.98 より大きいルールを選択します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Generate the initial set of rules using a minimum lift of 1.00
rules = association_rules(frequent_itemsets, metric = "____", min_threshold = ____)
# Set antecedent support to 0.005
rules = rules[rules['____'] > 0.005]
# Set consequent support to 0.005
rules = rules[rules['consequent support'] > 0.005]
# Compute Zhang's rule
rules['zhang'] = ____(____)
# Set the lower bound for Zhang's rule to 0.98
rules = rules[____['zhang'] > 0.98]
print(rules[['antecedents', 'consequents']])