< eelmine | 6. OSA sisukord | järgmine > |
6.3 Klientide segmenteerimine autorid: Anna Leontjeva ja Rajesh Sharma
Kujutle, et oled mõne suure autotootja omanik või juht ja soovid muuta oma toodangu põhifookust. Sa tahad teada, milliseid mudeleid ja kui palju toota - kas väikeautosid, linnamaastureid, sportautosid või hoopis kaubikuid?
Selle jaoks on sul peamiselt vaja oma kliendid mingitesse gruppidesse jaotada ja otsustada, milliseid tooteid iga grupp vajab. Teades ka gruppide suurusi, olemegi sammu võrra lähemal teadmisele, mida ja kui palju toota.
Klientide segmenteerimist kasutatakse nii turunduses, müügis, kui ka kliendisuhete halduses (ingl customer relationship management).
Joonis 5. Klientide segmenteerimise põhieesmärgid
Joonisel 5 on kujutatud klientide segmenteerimise peamised eesmärgid. Klassifitseerides kliendid erinevatesse tüüpkliendi profiilidesse (st gruppidesse) võidakse soovida saavutada parem kommunikatsioon kliendiga. Näiteks, mõnele kliendirühmale sobib paremini, kui infot saadetakse meiliga, mõni tahab seda saada voldikuna postkasti. Teiseks potentsiaalseks eesmärgiks võib olla klientide lojaalsuse saavutamine, mis vähendab klientide lahkumise tõenäosust. Samuti võib olla eesmärgiks uutele klientidele atraktiivne olemine ja uute klientide meelitamine.
On olemas kolm lähenemist klientide jaotamiseks gruppidesse: intuitsioonipõhine analüüs, ajaloo- ja käitumispõhine analüüs ning andmepõhine analüüs (Joonis 6).
Joonis 6. Kolm klientide segmenteerimise lähenemist.
Klientide kategoriseerimine võib toimuda intuitsiooni alusel - näiteks võib grupid luua vanuse, perekonnaseisu jms alusel, eeldades intuitiivselt, et need faktorid mõjutavad kliendi käitumist tugevalt. Paljudel juhtudel see ka nii tõesti on ja intuitsiooni abil on võimalik lihtsamat grupeerimist edukalt läbi viia.
Käitumispõhine analüüs eeldab juba mingite andmete olemasolu. Kliendid jagatakse gruppidesse mitte nende staatiliste tunnuste, vaid nende ostukäitumise ajaloo ja mustrite alusel. Samuti võiks kasutada näiteks infot selle kohta, kui tihti klient firma kodulehte vaatab või milliseid kommentaare ta lehele jätnud on (aga see pole tavaline). Üks kuulsamaid meetodeid on HSV (hiljutisus, sagedus, väärtus; ingl recency, frequency, monetary value (RFM)), mis püüab kliente gruppidesse jaotada selle alusel, kui sageli nad (nt. meie firmalt) asju ostavad, millal oli viimane ost ja kui palju need ostud väärt on olnud.
Alternatiivseid meetodeid on palju ja meetodite valik sõltub eesmärgist. On võimalik tuvastada kõige väärtuslikumad kliendid kulutatud summade alusel (näiteks, kõrge väärtuse, kõrge potentsiaali ja madala väärtusega kliendid). Samuti on levinud klientide jaotamine selle järgi, kui kaua nad ettevõttega seotud on olnud (näiteks: “uued”, “”regulaarsed”, “lojaalsed”, “tagasipöördunud”). Igal juhul on kasulik teada, kui palju mingit tüüpi kliente on, et siis edasisi strateegiaid arendada.
Andmepõhine klientide segmenteerimine.
Selles loengus peatume me põhjalikumalt klientide segmenteerimise meetodil andmete põhjal. See tähendab, et me räägime algoritmidest, mis suudavad kliente grupeerida (ehk klasterdada) ilma meiepoolse sisendita, st ilma et inimene ütleks, kuidas grupid välja nägema peaksid. Keskendume siinkohal kahele klasterdamismeetodile ja näitlikustame detailselt, kuidas need töötavad.
K-keskmiste algoritm
See algoritm jaotab andmed kindlasse arvu klastritesse. See klastrite arv, mida märgitakse tähega K ja mis annab ka algoritmile nime, tuleb algoritmile sisendiks anda. K-keskmiste algoritm baseerub keskmiste arvutamisel, millest tuleneb ka algoritmi nime teine pool. Järgnevalt demonstreerime me jooniste abil, kuidas see meetod töötab ja kliendid klastritesse jagab.
Kuigi tihti töötavad andmeteadlased väga keeruliste andmetega, kus igat objekti kirjeldab väga palju tunnuseid, siis siinkohal kasutame näite lihtsuse huvides andmeid, kus on ainult kaks tunnust, näiteks kliendi vanus ja tema igakuine sissetulek. Vältimaks valearusaami, on oluline mainida, et k-keskmiste meetod üldistub ka rohkemate tunnustega andmetele. Üheks rakendusvaldkonda piiravaks teguriks on siiski see, et ei saa kasutada kategoorilisi tunnuseid (nt. sugu, päritolumaa).
Meie näidisandmestik on kujutatud Joonisel 7. Iga punkt joonisel vastab ühele kliendile. Nagu mainisime, tuleb eelnevalt otsustada, mitmesse klastrisse need punktid klassifitseerida soovime. Otsustame näiteks, et soovime oma kliendid jagada kolme gruppi, ehk K=3.
Joonis 7. Näidisandmestiku algne seis. Hajuvusdiagramm klientidest, kus x-teljel on sissetulek ja y-teljel on vanus.
Joonis 8. K-keskmiste algoritmi illustreerimine.
Initsialiseerimine: Esimese sammuna valib algoritm juhuslikult kolm suvalist andmepunkti (värvilised punktid Joonisel 8a) ). Kutsume neid keskpunktideks. Algoritm hakkab looma nende punktide ümber klastreid.
Ülesande samm: Klastrite loomiseks me arvutame kõikide teiste punktide sarnasuse nende kolme keskpunktiga. Sarnasuse mõõtmiseks on vaja esmalt sarnasus kuidagi defineerida, siinkohal kasutatakse sarnasusena eukleidilist kaugust - mida lähemal on punktid, seda sarnasemad nad on.
Siinkohal anname ka eukleidilise kauguse üldise valemi, mis üldistub ka juhule, kui meil on rohkem kui 2 tunnust:
Kus n on tunnuste arv, q ja p on andmepunktid.
Järgmisena võime me valida esimese andmepunkti ja arvutada tema kauguse kõigist kolmest keskpunktist (vt Joonis 8b), kus on ka antud täpne valem arvutamaks kaugust esimese punkti ja iga keskpunkti vahel. Näeme, et 1. punkti kaugus punktist 3 on väiksem kui punktidest 2 ja 4, seega me paneme selle punkti teise punktiga samasse gruppi. Seejärel võtame järgmise andmepunkti (vt. Joonis 8c)), arvutame tema kauguse keskpunktidest ja leiame, millisesse gruppi see punkt kuulub. Jätkame, kuni kõik punktid on jagatud nende kolme grupi vahel.
Käies nii kõik punktid läbi, saame me lõpuks 3 gruppi - punktid, mille lähim keskpunkt oli punkt 3, punktid, mille lähim keskpunkt oli punkt 2 ning punktid, mille lähim keskpunkt oli punkt 4. Need grupid (illustreeritud joonisel 8d), on meie esialgsed klastrid, mida me peame veel edasi optimeerima. Kõikide punktide klastritesse jaotamisega on esimene iteratsioon lõppenud.
Uuenduse samm: Kui kolm klastrit on esialgsete punktide (keskpunktide) ümber moodustatud, arvutame me iga klastri uue keskpunkti, kasutades järgnevat valemit:
Kus xi ja yi vastavad tunnuste väärtustele. Punkte summeeritakse üle kõikide n sellesse klastrisse kuuluva punkti. Lihtsamalt öeldes, me võtame iga tunnuse keskmise väärtuse üle kõikide klastrisse kuuluvate punktide. Nagu kauguse arvutamine, üldistub ka see toiming juhule, kui meil on rohkem tunnuseid kui kaks.
Joonis 9.
Meie esialgsete klastrite keskmed on kujutatud joonisel 9 a) värviliste rombidega. Need keskpunktid asendavad esimeses iteratsioonis kasutatud keskpunkte. Jällegi arvutame me iga punkti (ka nende, mis algselt olid keskpunktid) kaugused klastrite keskmetest ja jagame andmepunktid klastritesse vastavalt sellele, millisele keskmele nad kõige lähemal (ehk kõige sarnasemad) olid (Joonis 9 b)). Võib juhtuda, et mõni punkt vahetab klastrit võrreldes eelmise iteratsiooni tulemustega - see ongi mitme iteratsiooni läbiviimise mõte, klastrid täpsustuvad. Näiteks 6. andmepunkt, mis enne kuulus roosasse klastrisse, on nüüd lähemal kollase klastri keskpunktile ja määratakse sinna gruppi (Joonis 9 c)).
Iteratsioonide arv ja koonduvus. Selliseid iteratsioone, mis koosnevad uute keskmete arvutamisest ja kõikide punktide uuesti klastritesse jagamisest, korratakse kuni klastrid enam ei muutu -- kahel järjestikusel sammul saadakse täpselt samad klastrid.
Miinused: Kuigi seda klasterdamismeetodit on lihtne mõista, on sellel ka olulisi miinuseid. Oluline piirang selle algoritmi kasutamisel on ainult arvuliste väärtuste kasutamise võimalus. Kategoorilisi väärtusi, näiteks kliendi kodulinn, pole võimalik kasutada, sest ei ole võimalik defineerida, millised linnad on sarnasemad või mis on linnade keskmine.
Veel üheks probleemiks on see, et algne juhuslik keskpunktide valik võib mõjutada klasterdamise lõpptulemust - mõnel juhul on mitu viisi, kuidas andmeid klasterdada ja pole selge, milline neist on parem. Algoritm, alustades erinevatest initisiaatoritest ja algsetest klastritest, võib lõpuks koonduda erinevatele tulemustele. See vähendab tulemuste korratavust ja usaldusväärsust. Meetodeid, kuidas leida häid algseid keskpunkte (kavalamalt kui juhuslik meetod), on palju uuritud, aga see ei mahu meie kursusesse.
Selle algoritmi kasutamise teeb ebamugavaks ka fakt, et me peame klastrite arvu (K), eelnevalt paika seadma ja algoritm ei leia ise optimeerimise käigus, mis oleks hea klastrite arv. Seega tuleb alati mõelda ja otsustada, mitu klastrit oleks parim. Mõnikord on vastus muude äriliste kaalutluste tõttu juba ette teda - andmeanalüütikule on juba eelnevalt öeldud, et näiteks turundustiim soovib kliendid jagada kuute gruppi, et siis igale grupile erinevad reklaamvoldikud printida ja saata. Näiteks mõned kliendid võivad olla hinnatundlikud ja soovivad infot allahindlustest, samas kui teised on pigem huvitatud uutest toodetest teatud segmendis. Sellisel juhul on ette teada, et algoritm saab sisendiks K=6.
Tegelikult on aga tihti teadmata, mis on kõige õigem klastrite arv ja tuleb proovida erinevaid K väärtusi. Kahe muutujaga andmete puhul on võimalik visuaalselt hinnata, milline K väärtus kõige ilusamad, selgemini eristatavad klastrid annab, aga kõrgema-dimensionaalsete andmete puhul pole andmete visualiseerimine ja vaatlemine võimalik. Seega on vaja jällegi valida, kuidas otsustada, kas üks klasterdamise tulemus on parem kui teine. Selle jaoks kasutavad andmeteadlased küünarnukimeetodit, mida järgnevalt kirjeldame.
Küünarnukimeetod. Kuigi need ilmselgelt pole parimad K väärtused, vaatleme esmalt kahte ekstreemset juhtu. Esiteks vaatame juhtu, kus klastrite arv on võrdne andmepunktide arvuga, ehk iga punkt on eraldi klaster. Sellisel juhul on iga punkt oma klastri kese ja punktide kaugused keskmetest on kõik võrdsed nulliga. Teiseks vaatame juhtu, kus meil on ainult üks klaster, millesse kuuluvad kõik andmepunktid. Sellisel juhul on punktide keskmine kaugus klastri keskmest väga suur. Optimaalne K väärtus on kuskil nende kahe vahel. On teada, et keskmine kaugus väheneb monotoonselt klastrite arvu kasvuga. Kui joonistada graafik, mis näitab seost K väärtuse ja keskmise klastrisisese kauguse (punktide kaugus keskmest) vahel, siis see näeb välja sarnane Joonisele 10. K väärtust, kus keskmise kauguse vähenemise kiirus järsult aeglustub (joonisel K=4), kutsutakse küünarnukipunktiks ja seda peetakse üldjuhul (kui pole muid kaalutlusi, näiteks ärilisi) parimaks võimalikuks K väärtuseks.
Joonis 10. Küünarnukimeetodi näide
Hierarhiline klasterdamine
Objektide klasterdamine üksteist välistavatesse gruppidesse ei ole alati parim lahendus. Näiteks vaatame toidupoes müüdavaid tooteid (vt. Joonis 11). Nende hulgas on gruppe, mis on mingi suurema grupi alamosad. Näiteks õun ja banaan kuuluvad puuviljade hulka, mis omakorda kuuluvad värskete toiduainete hulka (koos juurviljadega). Värsked toiduained omakorda kuuluvad koos teraviljasaadustega toitude gruppi, mis eristub selgelt jookide grupist, mis on samuti mitmel tasemel alamgruppideks jaotatav (piimajoogid, karastusjoogid jne). Seega, teatud juhtudel - tooted jaotuvad loomulikult eri tasandi gruppidesse - on vaja kasutada nn. hierarhilist klasterdamist.
Joonis 11. Näide hierarhilisest klasterdamisest poe ostukorvi jaoks. Hierarhilise klasterdamise visualiseerimine toimub dendrogrammi abil. Erinevad tootegrupid moodustavad alamgruppe nagu puuviljad, värsked toiduained, kuivained jne. Dendrogrammilt on võimalik näha, millised toidud millistesse gruppidesse kuuluvad - näiteks nii kartulid kui õun ja banaan kuuluvad värskete toitude hulka. Samuti peegeldavad vertikaalsete joonte pikkused erinevusi klastrite vahel - näiteks on värskete toiduainete ja teraviljatoodete klastrid omavahel erinevamad kui õun ja banaan.
Hierarhilise klasterdamise jaoks on kaks alamtüüpi:
- Aglomeratiivne, ehk alt-üles klasterdamine. Selles lähenemises alustatakse seisust, kus iga andmepunkt on eraldi klaster ning hakatakse seejärel klastreid ükshaaval omavahel kokku panema, saades nii üha suuremaid ja suuremaid klastreid. Igal sammul ühendatakse omavahel kaks kõige lähemal asuvat klastrit.
- Divisiivne ehk ülalt-alla klasterdamine. Sel juhul alustatakse seisust, kus kõik andmepunktid kuuluvad ühte suurde klastrisse. Klastreid hakatakse seejärel aina väiksemateks klastriteks jagama.
Hierarhiline aglomeratiivne klasterdamine (alt üles)
Kasutame jälle näidisandmestikku, kus on seekord 6 punkti ja 2 tunnust. Illustreerime seda andmestikku hajuvusdiagrammil, kus x-teljel on “tunnus 1”, y-teljel on “tunnus 2”. Vasakul hakkame koostama ka dendrogrammi. Dendrogramm on hierarhilise klasterdamise üks oluline tulem (ja viis selle protsessi illustreerimiseks). Dendrogramm näitab punktide ja klastrite omavahelisi kaugusi ja seoseid (mis objekt kuhu kuulub).
Esimese sammuna peab arvutama kauguste maatriksi, mis sisaldab iga kahe punkti vahelisi kaugusi. Antud juhul kasutame eukleidilist kaugust nagu ka k-keskmiste juhul, kuid võib kasutada ka muid kauguse definitsioone (vt. Joonis 12).
Joonis 12. Aglomeratiivse klasterdamise esimene samm, kauguste maatriksi arvutamine.
Seejärel leiame madalaima väärtuse kauguste maatriksis (ehk kauguste miinimumi). Antud juhul on meil kaks punktide paari, mis on üksteisele kõige lähemal: kollane ja sinine punkt ning lilla ja roheline punkt. Ühendame need paarid kaheks klastriks ja paneme nende seosed kirja dendrogrammi, kus dendrogrammi y-telg on nende punktide kaugus (vt. Joonis 13)
[- Joonis 13. Aglomeratiivse klasterdamise teine samm. Keskmiste punktide otsimine. -]
Järgmise sammuna arvutame nüüd tekkinud klastrite keskpunktid ning arvutame kauguste maatriksi uuesti, asendades omavahel seotud punktid nende keskpunktidega (vt. rombid Joonisel 14). Samal viisil keskpunkte ja kaugusi arvutades saame jätkata, kuni kõik punktid on seotud.
Joonis 14. Algoritmi kolmas samm
Joonis 15. Dendrogramm, millel on näha, millised punktid on omavahel lähemal.
Lõpptulemuseks saame dendrogrammi, millel on näha, millised punktid olid omavahel lähemal (Joonis 15 a)). Dendrogrammi järgi saame teha otsuse, mitu klastrit tundub optimaalne valida. Seda nimetatakse dendrogrammi lõikamiseks. Näiteks, kasutades “punast” lävendit (Joonis 15b) saame luua kaks klastrit, kus on kolm punkti igas klastris, või kasutades “sinist” lävendit saame 4 klastrit (kus on vastavalt 1, 2 ,2, ja 1 punkti). Mitu ja kui suuri klastreid dendrogrammi järgi moodustada, on suures osas äriotsus ja sõltub äriprobleemi kontekstist.
Miinused: Hierarhiline klasterdamine on lihtne ja väga tõhus meetod, aga ükski meetod ei ole puudusteta. Hierarhiline klasterdamine on väga tundlik võõrväärtuste suhtes. Võõrväärtused on harvaesinevad näited, mis on ülejäänud näidetest hoopis erinevate väärtustega. Lahendusena võib andmestiku enne klasterdamist puhastada ja võõrväärtusi elimineerida.
Tasub ka mainida, et antud meetodi väljundiks on struktuurne hierarhia isegi siis, kui tegelikult andmetes sellist struktuuri pole. Seega, interpreteerides neid tulemusi peab kindlasti olema ettevaatlik.
Lisaks võib juhtuda, et tulemuseks on dendrogramm, mis on väga sügav ja mida on raske interpreteerida. Üheks võimalikuks lahenduseks on seda dendrogrammi puud mingil kõrgemal tasemel lõigata ning visualiseerida seda ainult mingi tasemeni.
K-keskmiste algoritm olemasolevate klientide segmenteerimise näitel.
Vaatleme ühte näidet (mida me hakkame kasutama ka praktilises näites). Meil on olemas iga kliendi kohta info tema ostudest. Näide andmestiku viiest esimesest reast on välja toodud Joonisel 16. Esimene veerg näitab tehingute unikaalset id- väärtust ning teine veerg seda, mis oli selle tehingu kuupäev. Kolmas veerg on kliendi id-väärtus. Kliendil saab olla mitu tehingut. Viimasena on salvestatud selle tehingu ostusumma. Andmestikus on 4181 tehingut ja 1000 unikaalset klienti.
Joonis 16. Näidisandmestiku esimest 5 rida.
Järgmise sammuna saame teostada HSV analüüsi, mis on väga lihtne segmenteerimise mudel. HSV komponentideks on hiljutisus - kui mitu päeva on möödunud selle kliendi viimasest ostust, sagedus - kliendi tehingute arv kokku ning väärtus - kliendi ostusumma kokku. Oletame, et me arvutame neid komponente 31-12-2018 kuupäeva seisuga ja nimetame seda raporteerimiskuupäevaks. Seega on hiljutisus iga kliendi jaoks täpselt min(raporterimisaeg - tehingu_kuupäev). Tabelis 17 on näidatud 5 rida arvutatud HSV väärtustest. Näiteks klient, kelle id on 1, teostas ainult ühe tehingu kogu perioodi jooksul, selle väärtus oli 20.96€ ja ost toimus 1214 päeva enne raporteerimise kuupäeva. Klient 2 aga teostas selle perioodi jooksul 8 tehingut ja nende väärtus kokku oli 47.72€. Viimane tehing oli tehtud 433 päeva tagasi. (vt. Tabel/Joonis 17).
Joonis 17. Algandmestiku pealt arvutatud sagedus, väärtus ja hiljutisus.
Põhimõtteliselt saab sellisel viisil arvutatud HSV väärtusi otse kasutada, valides iga tunnuse kohta mingid vahemikud, mis tunduvad tähenduslikud. Näiteks, võime defineerida, et kõige väärtuslikumad kliendid on need, kes on teinud rohkem kui 5 ostu, kelle ostusumma väärtus on suurem kui 50€ ja viimane ost ei olnud hiljem kui 500 päeva tagasi. Kasutades selliseid ise defineeritud reegleid, saab koostada segmente, kuid see nõuab head ärivaldkonna tunnetust. Vastupidiselt sellele lähenemisele, nõuab k-keskmiste algoritm sisendiks ainult segmentide arvu ja klientide jaotus gruppidesse toimub automaatselt. Oletame, et eesmärgiks on tekitada 3 segmenti, seega fikseerime K=3 ning käivitame K-keskmiste algoritmi, mida kirjeldasime peatükis 6.2.1. Seda, kuidas rakendada K-keskmiste algoritmi uurime lähemalt praktika materjalides. K-keskmiste algoritmi sisenditunnustena kasutame juba tuttavaid HSV kolme tunnust ning klasterdame kliendid kolmeks klastriks. Kuna meil on ainult 3 tunnust, siis saame tulemust visualiseerida 3-d hajuvusdiagrammil (Joonis 18).
Joonis 18. K-keskmiste tulemus 3d hajuvusdiagrammil, kus x-, y-, z-telg on vastavalt hiljutisus, väärtus ning sagedus. Värvid näitavad erinevaid klastreid.
Sarnaselt 2-d hajuvusdiagrammiga (vt. Joonis 7), iga punkt 3-d joonisel on üks klient ning selle kliendi asukoht joonisel on määratletud selle kliendi hiljutisusega x-teljel, väärtusega y-teljel ja sagedusega z-teljel. Värvid näitavad klastrisse kuuluvust. Roheline segment -- kõrgema väärtuse, kõrgema sageduse ja väiksema hiljutisega -- on ettevõtte “väärtuslikud kliendid”. Kollase värviga segment on madala väärtusega kliendid, kuna nad ei ole tehinguid ammu teinud, nende rahaline väärtus ja sagedus on madalad. Lillat värvi on keskmine grupp ehk meie “potentsiaalselt kõrge väärtusega” kliendid, kes on hiljuti, aga mitte sageli oste sooritanud (vt. Joonis 3).
< eelmine | 6. OSA sisukord | järgmine > |