Aggregatie

Market Basket Analysis in Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

De data verkennen

import pandas as pd

# Laad gegevens over cadeaus.
gifts = pd.read_csv('datasets/novelty_gifts.csv')

# Voorbeeld bekijken met head().
print(gifts.head())
  InvoiceNo                          Description
0    562583      IVORY STRING CURTAIN WITH POLE 
1    562583        PINK AND BLACK STRING CURTAIN
2    562583                PSYCHEDELIC TILE HOOK
3    562583                ENAMEL COLANDER CREAM
4    562583  SMALL FOLDING SCISSOR(POINTED EDGE)
Market Basket Analysis in Python

De data verkennen

# Aantal transacties printen.
print(len(gifts['InvoiceNo'].unique()))
9709
# Aantal items printen.
print(len(gifts['Description'].unique()))
3461
Market Basket Analysis in Python

Pruning en aggregatie

Pruning Het diagram toont een lijst met items; sommige zijn doorgestreept om te laten zien dat ze zijn verwijderd.

Aggregatie Het diagram toont een lijst met items die naar een kleinere lijst worden gemapt om aan te geven dat

Market Basket Analysis in Python

Data aggregeren

# One-hot-encoded data laden
onehot = pd.read_csv('datasets/online_retail_onehot.csv')

# Voorbeeld van DataFrame printen
print(onehot.head(2))
    50'S CHRISTMAS GIFT BAG LARGE   DOLLY GIRL BEAKER ...  ZINC WILLIE WINKIE  CANDLE STICK
0                           False               False                               False
1                           False               False                               True
Market Basket Analysis in Python

Data aggregeren

# Select the column names for bags and boxes
bag_headers = [i for i in onehot.columns if i.lower().find('bag')>=0]
box_headers = [i for i in onehot.columns if i.lower().find('box')>=0]
# Kolomkoppen identificeren
bags = onehot[bag_headers]
boxes = onehot[box_headers]
print(bags)
       50'S CHRISTMAS GIFT BAG LARGE   RED SPOT GIFT BAG LARGE  
0                              False                     False   
1                              False                     False
...                             ...                      ...
Market Basket Analysis in Python

Data aggregeren

# Som over kolommen
bags = (bags.sum(axis=1) > 0.0).values
boxes = (boxes.sum(axis=1) > 0.0).values
print(bags)
[False  True False ... False  True False]
Market Basket Analysis in Python

Data aggregeren

# Resultaten aan DataFrame toevoegen
aggregated = pd.DataFrame(np.vstack([bags, boxes]).T, columns = ['bags', 'boxes'])
print(aggregated.head())
    bags  boxes
0  False  False
1   True  False
2  False  False
3  False  False
4   True  False
Market Basket Analysis in Python

Market-basketanalyse met aggregaten

  • Aggregatieproces:
    • Items -> Categorieën
    • Kengetallen berekenen
    • Regels bepalen
# Support berekenen
print(aggregated.mean())
bags     0.130075
boxes    0.071429
Market Basket Analysis in Python

Laten we oefenen!

Market Basket Analysis in Python

Preparing Video For Download...