複数メトリクスでの高度なフィルタリング
これまでに、オンラインのノベルティギフトストアのデータを使って、特定の被説明項(consequent)を促進するために利用できる説明項(antecedent)を探しました。候補となるルールが非常に多かったため、Apriori アルゴリズムと複数メトリクスでのフィルタリングに頼って絞り込みました。この演習では、特定の説明項に狙いを定めるのではなく、ルールの全体集合を確認し、有用なものを見つけます。
データはすでに読み込み・前処理・ワンホットエンコード済みで、onehot として利用可能です。さらに、mlxtend から apriori() と association_rules() がインポートされています。この演習では、Apriori アルゴリズムを適用して頻出アイテム集合を特定します。続いて、そのアイテム集合からアソシエーションルールを生成し、複数メトリクスでフィルタリングします。
この演習はコースの一部です
Python で学ぶマーケットバスケット分析
演習の手順
- ワンホットエンコード済みのアイテム集合に Apriori アルゴリズムを適用し、最小サポートしきい値を 0.001 に設定してください。
- 最小サポートしきい値 0.001 を用いてアソシエーションルールを抽出してください。
antecedent_supportを 0.002、consequent_supportを 0.01 に設定してください。confidenceを 0.60 より大きく、liftを 2.50 より大きく設定してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Apply the Apriori algorithm with a minimum support threshold of 0.001
frequent_itemsets = ____(onehot, min_support = ____, use_colnames = True)
# Recover association rules using a minium support threshold of 0.001
rules = ____(frequent_itemsets, metric = '____', min_threshold = 0.001)
# Apply a 0.002 antecedent support threshold, 0.60 confidence threshold, and 2.50 lift threshold
filtered_rules = rules[(rules['antecedent support'] > ____) &
(____['consequent support'] > 0.01) &
(rules['____'] > ____) &
(____ > 2.50)]
# Print remaining rule
print(filtered_rules[['antecedents','consequents']])