Zákaznická segmentace a shluková analýza (Clustering)

Zákaznická segmentace vychází z předpokladu, že zákaznické chování je navzájem odlišné a zároveň vykazuje určité pravidelné vzorce. Zákaznická segmentace je snaha o smysluplné rozdělení zákaznické báze do skupin, v níž zákazníci sdružení ve stejné skupině se vyznačují v určitých aspektech podobným chováním. Zákaznická segmentace je snaha o rozdělení zákaznické báze do skupin podle určitých zákaznických atributů.

Nejedná se o samoúčelnou aktivitu, naopak má velmi pragmatické podnikatelské pozadí. Cílem je nalézt zákazníky s největším hodnotovým potenciálem v současné době, zákazníky jejichž hodnotový potenciál bude v budoucnosti pravděpodobně růst, jakož i odhalit zákazníky s nejmenším, či klesajícím hodnotovým potenciálem a zejména odhalit zákazníky způsobující ztrátu.

Podnikatelské cíle zákaznické segmentace jsou zřejmé, jde nám o:

  • Zvyšování absolutní ziskovosti společnosti
  • Růst tržeb

A zákaznická segmentace nám může poskytnout nástroje, jež nám v plnění cílů pomohou. Z palety možných vybíráme zejména:

  • Programy rozvoje vztahů a obchodu se zákazníky s vysokou a rostoucí podnikatelskou hodnotou
  • Programy zvyšování hodnoty zákazníka, či případná eliminace zákazníků, pro zákazníky s nízkou podnikatelskou hodnotou, či generující ztrátu
  • Rozdílné ekonomické modely obsluhy zákazníků ve vazbě na jejich hodnotu a perspektivu jejího růstu
  • Hlubší porozumění potřebám a preferencí zákazníků, jejich chování a rozhodování
  • Cílený marketing upravený dle preferencí a očekávání jednotlivých segmentů zákazníků
  • Optimální umístění produktu – product positioning & placement
  • Hledání latentních, či nepoznaných zákaznických segmentů

k-průměrová shluková analýza

Jednou z technik pro segmentaci zákazníků je shluková analýza. Pod pojmem shluková analýza se skrývá řada různých metod a přístupů a záleží na konkrétním případu, kterou metodu je nejvhodnější použít. Nicméně vždy je nutné vybrat vlastnosti na jejichž základě bude analýza probíhat. V případě zákaznické segmentace se nabízí nákupní chování, ale lze též použít například demografické, psychografické nebo geografické informace.

V našem článku se pokusíme názorně ukázat, jak zákaznická segmentace může probíhat s použitím K-means analýzy. Pro analýzy dat existuje dnes celá řada nástrojů od speciálních programů jako je např. Excel po různé programovací jazyky (R, Python, Julia, Scala, …) a vhodné knihovny. My jsme se rozhodli pro Python. Jedná se o obecný programovací jazyk, který se též hojně používá pro vědecké výpočty a práci s daty. Vzhledem k jeho oblíbenosti a širokému rozšíření k němu existuje celá řada spolehlivých a ověřených knihoven.

Algoritmus pro k-průměrovou shlukovou analýzu je poměrně jednoduchý a efektivní. Jeho základním předpokladem je, že všechny atributy jednotlivých datových záznamů jsou numerické hodnoty. Jeho podstata spočívá v tom, že se spočítají vzdálenosti mezi všemi datovými záznamy navzájem a ty záznamy, které jsou si vzájemně „blízké“ tvoří shluk – segment. Uživatel se musí rozhodnout do kolika skupin chce data rozdělit. Rozhodnutí je poněkud arbitrární a do jeho určení se promítá znalost příslušné typu podnikání a zákazníků. I tak se často provede analýza pro různé počty skupin a na základě analýzy výsledků se nakonec určí optimální počet segmentů. Algoritmus vypadá takto:

  • Krok 1: Uživatel se rozhodne do kolika skupin k se budou data členit.
  • Krok 2: Uživatel náhodně vybere k záznamů C1…,Ck jako centra shluků – centroidy.

pict 01 300x300 - Zákaznická segmentace a shluková analýza (Clustering)

  • Krok 3: Pro každý záznam se najde nejbližší centroid. Takže, každý centroid „vlastní“ podmnožinu záznamů a tudíž máme data rozdělena do k shluků.

pict 02 300x300 - Zákaznická segmentace a shluková analýza (Clustering)

  • Krok 4: Pro každý shluk je spočteno jeho „těžiště“ a tato těžiště jsou nyní nová centra shluků – centroidy.
pict 03 a 300x300 - Zákaznická segmentace a shluková analýza (Clustering) pict 04 300x300 - Zákaznická segmentace a shluková analýza (Clustering)
  • Krok 5: Kroky 3-5 se opakují tak dlouho se vypočtená těžiště a centroidy liší.

pict 04 300x300 - Zákaznická segmentace a shluková analýza (Clustering)

Data

Data, která budeme používat, lze získat z UCI úložiště pro Strojové Učení. Databáze je tvořena seznamem transakcí internetového retail obchodu sídlícího v UK, který se specializuje na dárky pro všechny možné příležitosti. Velkou část zákazníků tvoří velkoobchody. Odkaz ke stažení dat je zde. Na odkazované stránce lze nalézt detailnější informace o datech. Databáze, kterou budeme používat obsahuje, zřejmě kvůli zachování anonymity zákazníků, pouze informace o transakcích firemních zákazníků, žádné další atributy v ní nejsou.

Vidíme, že data obsahují pouze 8 atributů – číslo účtu (InvoiceNo), skladové číslo (StockCode), popis (Description), množství (Quantity), jednotkovou cenu (UnitPrice), zákaznické číslo (CustomerID) a zemi zákazníka (Country). To je poněkud netypické, většinou klientské databáze obsahují o jednotlivých klientech více podrobností.

pict 05 300x59 - Zákaznická segmentace a shluková analýza (Clustering)

Vzhledem k této situaci použijeme RFM analýzu, což je jedna ze základních metod pro zákaznickou segmentaci. RFM analýza je založena na třech podstatných charakteristikách každého zákazníka:

  • Recency – tj. délku období od posledního nákupu
  • Frequency – tj. četnost nákupů
  • Monetary value -tj. celkovou finanční hodnotu všech transakcí, které zákazník udělal

Nyní si vytvoříme RFM atributy. Začneme s Recency. Abychom mohli definovat délku od posledního nákupu musíme si určit referenční datum. Jedna z možností je vzít datum poslední transakce z naší databáze a zvýšit ho o den. Recency atribut je počet dnů mezi zákazníkovým posledním nákupem a referenčním datem.
Dále pak pro každého zákazníka najdeme celkový počet jeho nákupů a spočítáme celkovou finanční hodnotu jeho transakcí. Tím získáme atributy Frequency a Monetary Value, kterou zkráceně budeme označovat amount. Pro shlukovou analýzu pak budeme používat tato nová data.
pict 06 300x162 - Zákaznická segmentace a shluková analýza (Clustering)

Vyhodnocování

Při rozhodování o vhodnosti a použitelnosti získaných shlukových modelů se budeme snažit najít odpovědi na následující otázky:
Koresponduje získaná segmentace s realitou anebo je to pouhý matematický artefakt?
Jaký je optimální počet hledaných segmentů?
Jak určit, zdali je jedna skupina segmentů vhodnější než jiná?

Každá míra správnosti segmentace musí zohlednit dvě kritéria: míru separace segmentů a míru kohese segmentů. Jinými slovy, jak daleko od sebe jsou v modelu jednotlivé shluky a za druhé, jak úzce jsou svázány prvky obsažené v individuálním shluku.
K zodpovězení této otázky existuje celá řada matematických metod, my zde použijeme metodu nazývanou obrysová (silhouette).

pict 07 300x68 - Zákaznická segmentace a shluková analýza (Clustering)

kde ai je vzdálenost i-tého prvku od svého centra shluku a bi je vzdálenost i-tého prvku od dalšího nejbližšího centra shluku.
Obrysový koeficient je průměr hodnot obrysi přes všechna data. Je zřejmé, že -1 ≤ obrysi ≤ 1 a že tudíž i obrysový koeficient leží v intervalu [-1, 1]. Dále je zřejmé, že čím vyšší je hodnota obrysového koeficientu tím vyšší je míra separace a kohese shluků a naopak, pokud je míra separace nebo kohese nízká, je hodnota obrysového koeficientu nízká, popř. i záporná.

Výsledky a analýza

Pro výpočet obrysového koeficientu můžeme zase použít knihovnu scikit-learn. Kromě toho je pro lepší představu dobré použít nějakou vhodnou grafickou representaci. V následujícím textu si ukážeme příklad pro naše konkrétní data. Pro vytvoření následujících obrázků jsme použili upravenou metodu, již výše zmíněná knihovna scikit-learn uvádí mezi ilustrativními příklady.

 

pict 08 300x136 - Zákaznická segmentace a shluková analýza (Clustering)

pict 09 300x134 - Zákaznická segmentace a shluková analýza (Clustering)

Na horním obrázku vidíme analýzu provedou pro počet shluků 3 na spodním, pro počet 5. Na levé straně jsou zobrazeny obrysové grafy, kde vidíme, jak jsou rozloženy hodnoty obrysi pro data v jednotlivých segmentech. Červená čárkovaná úsečka je znázornění průměru přes tato data, tzn. obrysový koeficient. Vidíme, že obrysový koeficient je vyšší pro segmentaci předpokládající existenci 3 shluků (konkrétně 0.304) než pro 5 shluků (0.29).

Na pravé straně potom vidíme projekci rozdělení do dvourozměrného prostoru. Při snaze o vizualizaci segmentace, je nutné vést v patrnosti, že každý datový záznam je obecně bodem v mnohadimensionálním prostoru. V našem případě máme tři atributy, tudíž v trojrozměrném. Při vizualizaci v dvojrozměrném prostoru dochází tudíž ke „splácnutí“ dalších dimensí a body z jednotlivých segmentů se pak nejeví oddělené. (Ke vhodnému snižování počtu proměnných (atributů) se užívají nejrůznější techniky např. PCA – Principal Component Analysis. V některém z dalších blogů se těmto metodám budeme věnovat podrobněji.)
Jak tedy vypadají konkrétní čísla a jaké jsou hodnoty pro centra jednotlivých shluků.

pict 10 300x116 - Zákaznická segmentace a shluková analýza (Clustering)

Pohled na výsledky nabízí některé zajímavé postřehy. Nejprve pro 3 segmenty:

  • Všechny tři shluky se výrazně odlišují v Monetary value.
  • Segment 2 je segment velmi hodnotných zákazníků, kteří nakupují s vysokou frekvencí.
  • Frequency a Recency spolehlivě korelují s Monetary value.

Při segmentaci na 5 segmentů, které je podle hodnoty obrysového koeficientu, jen o málo horší než 3-segmentace, nabízí zajímavé členění nejlepších zákazníků na dvě podskupiny.

Rozhodnutí, která segmentace je vhodnější, se nyní bude muset pravděpodobně hodně odvíjet od konkrétní business praxe a nespoléhat jen na statistická kritéria.

Jak doufám bylo vidět, samotná segmentace je docela jednoduchý problém. Z celé řady možných algoritmů jsme zde zvolili takový, na němž lze celou problematiku názorně předvést. Segmentace samozřejmě zdaleka nedá odpovědi na všechny otázky, nicméně poskytuje další úhel pohledu na zákazníky a jejich chování.

Na úplný závěr jedna důležitá poznámka. Výsledky každé takovéto analýzy závisí přednostně na datech, které jsou jí předloženy. Pokud je dat málo, jsou nepřesná, neúplná nebo nehomogenní nelze očekávat, že závěry analýzy budou přínosem.