Analýza nákupního košíku

Nákupní košík a jeho analýza (anglicky Market Basket Analysis (MBA) - někdy také nazývaná jako “afinitní analýza") je celkem podceňovaná záležitost. Cílem MBA je identifikovat položky (v nákupním košíku), které jsou kupovány společně. V momentě kdy známe kombinace kupovaných produktů, můžeme si na nich spočítat výnos a v případě že mám třeba často kupovaný produkt táhne nákup vysoce maržového produktu, stojí za to začít nabízet tuhle kombinaci společně v bundle za výhodnější cenu. 


Jak to funguje? 

Na vstupu jsou data s transakcema a jejich položkama (můj sample):

1, citrus fruit, semi-finished bread, margarine, ready soups
2, tropical fruit, yogurt, coffee
3, whole milk
4, pip fruit, yogurt, cream cheese, meat spreads
5, other vegetables, whole milk, condensed milk, long life bakery product
6, whole milk, butter, yogurt, rice, abrasive cleaner

Ty přechroustá stroj a vyplivne seznamy kombinací, ze kterých můžeme doporučit cross-sell, přeorganizovat umístění produktů, vymyslet akční balíčky a nebo (za mě trochu haluz) vyladit layout katalogu.

Spousta firem se snaží MBA prodat jako vědu. Nástrojů na to je mnoho. IBM SPSS, SAS, RapidMiner, Weka, iPython nebo třeba Rko

U nás (Keboola Connection) je “Basket Analysis” jako připravený recept. K jeho nastavení stačí určit tabulku obsahující “účtenky" a definovat sloupečky - ID účtenky a ID položky (prodaného produktu). 


Dodatečně chceme zadat ještě segment - což je sloupeček, který může obsahovat cokoliv. Pokud je tam měsíc v roce, bude výstupem analýza košíku pro každý měsíc zvlášť. Pokud je tam region, vypadne z toho tolik “analýz”, kolik je regionů. 

Výstupem je pak tabulka plná pravidel. Příklad jednoho:


Takový řádek říká, že pokud někdo nakoupí máslo a kořenovou zeleninu (sloupec lhs (left hand side)), existuje 66% pravděpodobnost (sloupec confidence), že koupí zároveň i plnotučné mléko (sloupec rhs (right hand side)). Tato kombinace produktů se pak vyskytuje v 0.6% všech nákupních košíků (sloupec support). Třetí metrikou co vypadne z MBA je pak ještě “lift”, což je vyjádření toho jak moc se kombinace produktů kupuje víc spolu než samostatně. 

Jednoduchý příklad zobrazení takových dat bez liftu je pak třeba ve scatter plotu:


Určitě je dobré každý produkt v katalogu obohatit o profit nebo náklady s jeho distribucí či propagací. Pokud se vám povede zároveň i říct jak jsou lidi spokojeni s tím co nakupují (spojit data ze supportu s obchodníma transakcema), máte náhle k dispozici skvělé informace pro cross-selling, rozkročené od marketingu po zákaznickou podporu. 

CSV s testovacíma datama nákupů a CSV s výstupem z Keboola receptu.
4 responses
Palec nahoru! Zajímavostí je, že jsem touhle snadnou cestou jen vzácně dostal něco použitelného. Prakticky jediné, kde tohle zafunguje je rychloobrátka. Tedy velké nákupní koše s mnoha levnými prvky. Problémy jsou obecně dva: 1) Data musí být dobře vyčištěná. Například pěknou paseku nadělá takový dárek k produktu zdarma, který se ale v datech typicky objevuje jako normální položka. 2) Časové hledisko a životní cyklus zákazníka. Je nutné se vypořádat s tím, že produkty zastarávají. A než nasbíráte dost dat tak často zmizí. Pravidlo, že ti co kupovali Iphone5 kupovali i plyšáka je obecně k ničemu. Protože letošní vánoce prostě nebudete mít Iphone5 v nabídce. A plyšák bude asi také jiný. Takže je nutné to dále zobecnit. Co bude z pravidla vyplývat pro nákupy kde je na levé straně iphone 6? Netriviální, už proto že zpravidla nemáte v datech onu vazbu Iphone 6 je nástupce Iphone 5. Navíc životní cyklus má i zákazník. Dokupuje si věci. Takže co doporučuji: - spíše než ID účtenky použít ID zákazníka a analyzovat dlouhodobý nákupní koš - spíše než ID produktu použít ID skupiny produktů (iphone4 ~ "aktuální iphone", Samsung Note 3 ~ top android, atd.) - a uvážit, zda místo "koupil" neuvažovat o nějaké méně silné, ale o točastější metrice. Například "prohlížel alespoň 3x" Což je jen drobná modifikace plně realizovatelná v Keboola connection ;-)
3 visitors upvoted this post.