Wat is market-basketanalyse?

Market Basket Analysis in Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Een winkelindeling kiezen

 

Deze afbeelding toont een boekwinkelindeling waar de secties fictie en biografie samen staan, en poëzie en geschiedenis samen staan.

 

Deze afbeelding toont een boekwinkelindeling waar de secties fictie en poëzie samen staan, en biografie en geschiedenis samen staan.

Market Basket Analysis in Python

Transactiedata verkennen

TID Transactie
1 biografie, geschiedenis
2 fictie
3 biografie, poëzie
4 fictie, geschiedenis
5 biografie
... ...
75000 fictie, poëzie

 

  • TID = unieke ID per transactie.

 

  • Transactie = set unieke items die samen gekocht zijn.
Market Basket Analysis in Python

Wat is market-basketanalyse?

  1. Vind producten die vaak samen gekocht worden.

    • Biografie en geschiedenis
    • Fictie en poëzie
  2. Maak aanbevelingen op basis hiervan.

    • Zet biografie en geschiedenis bij elkaar.
    • Houd fictie en geschiedenis apart.
Market Basket Analysis in Python

Toepassingen van market-basketanalyse

  1. Bouw een Netflix-achtige aanbevelingsengine.
  2. Verbeter productaanbevelingen in een webshop.
  3. Cross-sell in retail.
  4. Verbeter voorraadbeheer.
  5. Upsell producten.
Market Basket Analysis in Python

Market-basketanalyse gebruiken

TID Transactie
11 fictie, biografie
12 fictie, biografie
13 geschiedenis, biografie
... ...
19 fictie, biografie
20 fictie, biografie
... ...
  • Market-basketanalyse
    • Maak associatieregels
    • Vind items die vaak samen gekocht worden
  • Associatieregels
    • {antecedent} $\rightarrow$ {consequent}
      • {fictie} $\rightarrow$ {biografie}
Market Basket Analysis in Python

Data laden

import pandas as pd

# Load transactions from pandas.
books = pd.read_csv("datasets/bookstore.csv")

# Print the header
print(books.head(2))
TID         Transaction                 
0    biography, history
1               fiction

Voor een opfrisser, zie de Pandas Cheat Sheet.

Market Basket Analysis in Python

Transacties opbouwen

 

# Split transaction strings into lists.
transactions = books['Transaction'].apply(lambda t: t.split(','))

# Convert DataFrame into list of strings.
transactions = list(transactions)
Market Basket Analysis in Python

Itemsets tellen

# Print the first transaction.
print(transactions[0])
['biography', 'history']
# Count the number of transactions that contain biography and fiction.
transactions.count(['biography', 'fiction'])
218
Market Basket Analysis in Python

Een aanbeveling doen

# Count the number of transactions that contain fiction and poetry.
transactions.count(['fiction', 'poetry'])
5357

Deze afbeelding toont een boekwinkelindeling waar de secties fictie en poëzie samen staan, en biografie en geschiedenis samen staan.

Market Basket Analysis in Python

Laten we oefenen!

Market Basket Analysis in Python

Preparing Video For Download...