Avancerad beskärning av Apriori-resultat

Marknadskorgsanalys i Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Tillämpningar

Korsmarknadsföring

Den här bilden visar ett exempel på korsmarknadsföring.

Aggregering

Den här bilden visar ett exempel på aggregering.

Marknadskorgsanalys i Python

Apriori-algoritmen

Lista av listor

Den här bilden visar ett exempel på en lista av listor med varor i transaktioner.

One-hot-kodning

Den här bilden visar one-hot-kodningen av transaktioner.

Apriori-algoritmen

Den här bilden illustrerar Apriori-algoritmen tillämpat på en generisk mängd med 4 objekt.

Marknadskorgsanalys i Python

Apriori-algoritmen

import pandas as pd
import numpy as np
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
itemsets = np.load('itemsets.npy')
print(itemsets)
[['EASTER CRAFT 4 CHICKS'],
['CERAMIC CAKE DESIGN SPOTTED MUG', 'CHARLOTTE BAG APPLES DESIGN'],
['SET 12 COLOUR PENCILS DOLLY GIRL'],
...
['JUMBO BAG RED RETROSPOT', ... 'LIPSTICK PEN FUSCHIA']]
Marknadskorgsanalys i Python

Apriori-algoritmen

# One-hot encode data
encoder = TransactionEncoder()
onehot = encoder.fit(itemsets).transform(itemsets)
onehot = pd.DataFrame(onehot, columns = encoder.columns_)
# Apply Apriori algorithm and print
frequent_itemsets = apriori(onehot, use_colnames=True, min_support=0.001)
print(frequent_itemsets)
      support                                           itemsets
0    0.001504                               ( DOLLY GIRL BEAKER)
1    0.002256                         ( RED SPOT GIFT BAG LARGE)
...
428  0.001504  (BIRTHDAY CARD, RETRO SPOT, JUMBO BAG RED RETR...
Marknadskorgsanalys i Python

Resultat från Apriori-algoritmen

print(len(data.columns))
4201
print(len(frequent_itemsets))
2328
rules = association_rules(frequent_itemsets)
Marknadskorgsanalys i Python

Associationsregler

print(rules['consequents'])
0                   (DOTCOM POSTAGE)
                        ... 
9                 (HERB MARKER THYME)
                        ...
234        (JUMBO BAG RED RETROSPOT)
235         (WOODLAND CHARLOTTE BAG)
236    (RED RETROSPOT CHARLOTTE BAG)
237       (STRAWBERRY CHARLOTTE BAG)
238      (CHARLOTTE BAG SUKI DESIGN)
Name: consequents, Length: 239, dtype: object
Marknadskorgsanalys i Python

Filtrering med flera mätvärden

targeted_rules = rules[rules['consequents'] == {'HERB MARKER THYME'}].copy()
filtered_rules = targeted_rules[(targeted_rules['antecedent support'] > 0.01) &
                        (targeted_rules['support'] > 0.009) &
                        (targeted_rules['confidence'] > 0.85) &
                        (targeted_rules['lift'] > 1.00)]
print(filtered_rules['antecedents'])
9        (HERB MARKER BASIL)
25     (HERB MARKER PARSLEY)
27    (HERB MARKER ROSEMARY)
Name: antecedents, dtype: object
Marknadskorgsanalys i Python

Gruppering av produkter

Bilden visar en butiksplanlösning där lådor är grupperade med väskor och skyltar är grupperade med ljus.

Bilden visar en butiksplanlösning där lådor är grupperade med ljus och skyltar är grupperade med väskor.

Bilden visar en butiksplanlösning där lådor är grupperade med skyltar och ljus är grupperade med väskor.

Marknadskorgsanalys i Python

Aggregering och dissociation

# Load aggregated data
aggregated = pd.read_csv('datasets/online_retail_aggregated.csv')

# Compute frequent itemsets
onehot = encoder.fit(aggregated).transform(aggregated)
data = pd.DataFrame(onehot, columns = encoder.columns_)
frequent_itemsets = apriori(data, use_colnames=True)

# Compute standard metrics
rules = association_rules(frequent_itemsets)
# Compute Zhang's rule
rules['zhang'] = zhangs_rule(rules)
Marknadskorgsanalys i Python

Zhangs regel

# Print rules that indicate dissociation
print(rules[rules['zhang'] < 0][['antecedents','consequents']])
  antecedents consequents
2       (bag)    (candle)
3    (candle)       (bag)
4      (sign)       (bag)
5       (bag)      (sign)
Marknadskorgsanalys i Python

Välja planlösning

Bilden visar en butiksplanlösning där lådor är grupperade med väskor och skyltar är grupperade med ljus.

Bilden visar en butiksplanlösning där lådor är grupperade med väskor och skyltar är grupperade med ljus.

Bilden visar en butiksplanlösning där lådor är grupperade med väskor och skyltar är grupperade med ljus.

Marknadskorgsanalys i Python

Nu kör vi en övning!

Marknadskorgsanalys i Python

Preparing Video For Download...