Asiakaspoistuma-analyysin vaiheet RapidMinerilla

Kirjoitelma on jatkoa Asiakaspoistuma-analyysi ja miljoona lisämyyntiä blogiketjun avaukselle. Kirjoitelmassa käydään läpi asiakaspoistuma-analyysin suorittamisen vaiheet poikkileikkausaineiston tapauksessa. Yleisesti sanottakoon, että asiakaspoistuma-analyysin suorittaminen Rapidminerilla on melko vaivatonta ja nopeaa. Allekirjoittaneen mielestä Rapidminer lukeutuu markkinoiden parhaisiin ja nopeimmin oppittaviin analytiikkaohjelmistoihin erityisesti luokittelutyyppisien ongelmien osalta.

Esiteltävät poistuma-analyysin vaiheet eivät ole suinkaan ainoat mahdolliset, tarkoituksena on antaa yksi käyttökelpoinen runko analyysin suorittamiselle.

Poikkileikkausaineiston tapauksessa voidaan yleensä noudattaa seuraavaan kaavion mukaista etenemismallia:

kaavio

 

Esimerkkiaineisto sisältää tietoja teleoperaattorin asiakkaista (liittymistä). Lähdeaineiston yksittäinen rivi vastaa yhtä liittymää, liittymäkohtaisia selittäviä muuttujia ovat mm. kuukausitasolla keskimääräinen laskutus päivä-/ilta-/yöpuheluista, liittymän omistajan asiakkuuden kesto ja asuinalue, sekä soitot asiakaspalveluun (lukumäärä). Kiinnostuksen kohteena oleva vastemuuttuja Poistunut on binomiaalinen, joka siis kertoo onko asiakas poistunut, Kyllä/Ei. Emme ota kantaa siihen kuinka poistunut asiakas on tunnistettu poistuneeksi. Joillakin toimialoilla poistuman tunnistaminen saattaa olla hyvinkin haastavaa.

Asiakaspoistuma_datasetti

 

 

 

Seuraavaksi esitellään reseptinomainen 8 osainen ohje poistuma-analyysin suorittamisesta (poikkileikkausaineistosta) Rapidminerissä.

 

1. Tarkastele muuttujien(RM: attributesmetatietoja ja jakaumia tulosnäkymän avulla, kiinnitä huomiota seuraaviin seikkoihin

  • Onko aineisto latautunut oikein (oikein muodostettu SQL-kysely, CSV erotin määritelty oikein, jne…) ?
  • Onko muuttujien tyypit ja roolit asetettu oikein?
    • Poistuman implikoivan vastemuuttujan tyyppi binominal ja rooli label
    • Luokittelevat selittävät muuttujat tyypiltään nominal ja rooli regular
    • Jatkuvat selittävät muuttujat tyypiltään integer/real/numeric ja rooli relugar
    • Rivin/liittymän identifioivan muuttujan rooli id
  • Sisältääkö aineisto puuttuvia havaintoja? Onko muuttujien arvojen puuttuminen systemaattista vai satunnaista?
  • Sisältääkö aineisto poikkeavia havaintoja, jotka eivät todellisuudessa voi kyseisen muuttujan kohdalla ilmetä?
  • Esiintyykö id-muuttujan suhteen duplikaattirivejä?
    • Esimerkiksi lähdeaineiston identifioiva muuttuja voisi olla liittymän omistajan ID, jolloin ID:n perusteisia duplikaattirevejä voi todellisuudessa olla useita

Esim 1. Luetaan poistuma-analyysiä varten muodostettu aineisto tietokannasta ja tarkastetaan aineiston metatiedot, sekä tehdään muuttujien metatietojen pohjalta tarvittavat tyyppien ja roolien korjaukset.

kuva1kuva2kuva3

  2. Tee vaiheen 1. mukaisien havaintojen perusteella korjauksia aineistoon

  • Pohdi tulisiko puuttuvat havainnot imputoida (korvata) vai poistaa kyseiset rivit aineistosta?
    • Jotkin mallinnusmenetelmät eivät salli puuttuvia havaintoja
    • Jos aineisto on riittävän suuri ja puuttuvia havaintoja sisältävien rivien määrä pieni, ei rivien poistaminen yleensä vaikuta mallinnukseen, ellei puuttuvien havaintojen taustalla ole jotain selkeää mekanismia (systemaattista) ja liittymiä yhdistäviä tekijöitä
  • Onko järkevää aggregoida id:n mukaiset duplikaattirivit yhdeksi riviksi, esim. jatkuvien muuttujien osalta keskiarvoistus ja luokittelevien muuttujien osalta moodi

Esim 2. Esimerkkiaineistossa ei ilmene tarvittavia toimenpiteitä puuttuvien havaintojen osalta. Seuraavassa kuitenkin mainittuna operaattoreita, joita voisi hyödyntää mainituissa ongelmakohdissa:

  • Replace Missing Values, yksinkertainen puuttuvien havaintojen imputointi
  • Detect Outlier (Distances, densities, LOF, COF), mahdollista etsiä poikkeavia havaintoja neljällä eri kriteerillä
  • Aggregate, työkalu rivien aggregoimiseen
  • Filter Examples, monipuolinen operaattori rivitasonoperaatioihin, esim. mahdollista poistaa rivejä, joissa esiintyy puuttuvia havaintoja
  • Remove Duplicates, poistaa valitsemiesi muuttujien suhteen duplikaattirivit

Rapidminerissa operaattorikohtaisessa selosteessa on yleensä myös linkki esimerkkiprosessiin, josta voi ottaa mallia operaattoreiden käytöstä ja toiminnallisuudesta.

3. Pohdi mitkä muuttujat voisivat olla liiketoimintaongelmasi kannalta järkeviä/oleellisia ja tarkastele muuttujien välisiä korrelaatioita

  • Kaksi vahvasti keskenään korreloitunutta selittävää- (tausta-) muuttujaa (RM: regular-tyyppiset) mittaavat käytännössä samaa asiaa ja usein aiheuttavat ongelmia mallin estimoinnissa ja vääristävät mallista saatavia tulkintoja. Valitse tulkinnan kannalta järkevämpi muuttuja mukaan mallinnukseen
  • Aineistossa saattaa olla selittäviä muuttujia, jotka eivät poistuman kannalta ole relevantteja, vaikka niillä olisikin poistuman mielessä selitysvoimaa. Koita etsiä vahvasti korreloiva vastine kyseiselle muuttujalle, mikäli korreloivaa vastinetta ei löydy mieti mistä kyseinen selitysvoima voi johtua.
  • Muista, että muuttujien korrelaatiorakennetta tulee tarkastella vain opetusaineiston sisällä, mikäli tarkastelet korrelaatioita vastemuuttujan suhteen (opetus- ja testiaineisto selitetty aiemmassa blogiketjun kirjoituksessa).

Esim 3. Korreloituneiden selittävien muuttujien etsiminen ja aineiston selittävien muuttujien redusointi. Aineiston korrelaatiorakennetta tarkastettaessa huomataan, että puhutut minuutit ja puheluista kertyneet euromäärät korreloivat täysin keskenään (kaikilla liittymillä kiinteä minuuttihinta, ei sykäysmaksuja).

kuva4

 

4. Jaa aineisto opetus- ja testiaineistoksi

  • Mikäli aineistosi on erityisen suuri rivimäärältään, riittää mallinnuksen opetusaineistoksi yleensä murto-osa havainnoista 10-70%. Mitä enemmän selittäviä muuttujia on käytössä, sitä suurempi yleensä täytyy opetusaineiston osuuden olla, jotta se olisi struktuaarisesti kattava.
  • Tarkasta, että selittävien muuttujien korrelaatiorakenne opetusaineistossa noudattaa likimain koko aineiston rakennetta
  • Voit joutua painottamaan opetusaineistoa siten, että opetusaineistossa suhteellinen poistuneiden määrä on suurempi kuin todellisuudessa poistuneiden suhteellinen osuus, jotta mallinnusmenetelmät pystyvät ”edes” jollain tasolla ennustamaan poistuneita
  • Optimaalisessa tilanteessa opetus- ja testiaineiston vastemuuttujan jakauma olisi hyvä olla samankaltainen. Painotetun opetusaineiston tapauksessa yleensä käy niin, että testiaineistosta laskettu mallin todellisen tarkkuuden arvio on yleensä heikompi (malli ennustaa ei-poistuneita liian herkästi poistuneiksi)

Esim 4. Jaetaan aineisto opetus- ja testiaineistoksi suhteessa 70%/30%. Käytetään split-data-operaattorin ”stratified-sampling” ominaisuutta, joka pitää vastemuuttujan ”Poistunut” jakauman samana molemmissa aineistoissa.

 

kuva5

 

 

5. Valitse kilpailevia mallinnusmenetelmiä 2-luokkaisen vasteeseen sovellettavien menetelmien joukosta

  • Valitse mallinnusmenetelmät mallinnusongelmasi/liiketoimintaongelman kannalta järkevällä tavalla. Jos on tarvetta tietää kuinka tietyt selittävät muuttujat vaikuttavat poistumaan, tulee tällöin valita mallinnusmenetelmiä, jotka paljastavat selittävien muuttujien vaikutuksen suuruuden ja suunnan esim. suuret selittävän muuttujan X arvot implikoivat asiakkaan poistumaa
  • Mieti valmiiksi onko mallinnusmenetelmäsi erityisen herkkä säätöparametriensa suhteen ja rakenna mallinuksen prosessiketjusi sen mukaisesti. Herkistä mallinnusmenetelmistä mainittakoon neuroverkko ja svm
  • Tunne mallinnusmenetelmien heikkoudet ja vaatimukset esim. vaatimukset selittävien muuttujien tyyppien suhteen

Esim 5. Koska luokitteluongelma on 2-luokkainen, valitaan kilpaileviksi malleiksi päätöspuu ja logistinen regressio (operaattorit W-J48 ja W-Logistic), joista molemmat menetelmät antavat tietoa selittävien muuttujien yksittäisistä vaikutuksista vasteeseen.

 

6. Suorita mallinvalinta ristiinvalidoinnin avulla

  • Vertaa mallien luokittelutarkkuutta ristiinvalidoinnin avulla
  • Valitse sopiva ristiinvalidoinnissa käytettävä osajoukkojen lukumäärä X:

1. Halutaan arvioida ennustevirhe mahdollisimman tarkasti: Valitse suuri ristiinvalidoinnin osajoukkojen lukumäärä, X>=10

2. Halutaan opettaa mallit mahdollisimman hyvin: Valitse pieni ristiinvalidoinnin osajoukkojen lukumäärä, X<=10

3. Yleensä kultainen keskitie (”hiharavistus”), X=10

  • Käytä mallien vertailussa konfuusiomatriisin (luokittelutarkkuus nelikenttänä) lisäksi muita binomisen vastemuuttujan kriteerejä. Usein käyttökelpoinen kriteeri on AUC (Area Under ROC-Curve), sekä ROC-käyrä. Yleensä poistuma-analyysissä poistuvien asiakkaiden osuus on niin pieni ettei konfuusiomatriisi anna oikeata kuvaa mallinnusmenetelmän suoriutumisesta. Ainakaan default-arvoista luokittelurajaa 0.5 käytettäessä
  • Punnitse estimoituja malleja tulkinnan ja mallinvalintakriteerien perusteella
  • Käytä ristiinvalidointia myös mallinnusmenetelmän säätöparametrien etsimisessä

Esim 6. Compare-ROCs-operaattorin käyttäminen. Operaattori tekee automaattisesti ristiinvalidoinnin ja laskee keskimääräiset ROC-käyrät molempien menetelmien osalta. ROC-käyrien vertailun perusteella päätöspuulla on parempi luokittelukyky, joskin ennustetarkkuuden vaihtelu on suurempaa.

 

 

compare_rocs

Näkymä Compare ROCs-operaattorin sisältä

inside_compare_rocs

 

7. Laske mallin odotettutarkkuus testiaineiston avulla

  • Kun olet jo suorittanut mallinvalinnan elä enään tee muutoksia testiaineiston tuloksen perusteella. Poikkeuksena voidaan pitää erityisen balansointitarpeen omaavia luokitteluongelmia (joudutaan painottamaan vahvasti opetusaineistoa). Odetettu mallin tarkkuus voidaan laskea käyttämällä hyväksi Apply Model- ja Performance-operaattoreita.

kuva7

 

8. Tulkitse ja tallenna mallisi automatisoitua prosessia varten

  • Tarkastele mallin luokittelutarkkuutta tietyin väliajoin muodostamalla uusi testiaineisto ja sovella malliasi siihen
  • Muista implementoida mallin soveltamisprosessiisi samat lähdeaineiston muokkausoperaatiot kuin mallinnusvaiheessa
  • Kilpailuta malliasi tietyin väliajoin muilla mallinnusmenetelmillä
  • Estimoidun puun rakenteesta voidaan tarvittaessa rakentaa säännöstö, joka voidaan implementoida esimerkiksi suoraan SQL-kyselyksi.

Esim 8. Mallin voi tallentaa Store- tai Write Model-operaattoreilla ja mallin voi ladata Retrieve-operaattorilla repositorysta tai Read Model-operaattorilla erillisestä malli-tiedostosta. Kuvissa mallin soveltaminen uuteen aineistoon (oletus, että uudelle aineistolle on tehty jo vastaavat muuttujien muunnokset kuin opetusvaiheessa), estimoidun päätöspuun rakenne (tulkinta), sekä tulosnäkymä mallin sovelluksesta (luokkatodennäköisyydet/confidencet).

rm_applier
kuva8

Asiakaspoistuma_uudet_asiakkaat

 

Lista poistumatodennäköisyyksistä (confidence-sarake ja ID-sarake) voidaan viedä esimerkiksi CRM-järjestelmää, joka kertoo kontaktoitavien asiakkaiden prioriteetit. Todennäköisyyksien avulla pystytään lisäksi arvioimaan moniko asiakas tulee poistumaan summaamalla poistumatodennäköisyydet yhteen.

 

2 comments on “Asiakaspoistuma-analyysin vaiheet RapidMinerilla

  1. Elina Jeskanen on

    Olisi mielenkiintoista tietää mitä malli antoi tulokseksi.

    Esimerkin telealalla poistuma tapahtunee yleensä kerralla eikä hiipumalla, joten arvelisin: korkea ikä / kuolema, työpaikanvaihdos, täysi-ikäistyminen, verkon kattavuus alueella, kytkysopimuksen päättyminen, nettikäytön lisääntyminen, kilpailijan kampanjat jne.

    Ehkä mielenkiintoisimpina voisi olla ei niin ilmeiset: päätelaitteen ikä (tartutaan laitetta ostettaessa samalla liittymätarjoukseen), muun perheen siirtyminen ja nuo jo mainitut kontaktit asiakaspalveluun.

    Poistumaa hidastavina tekijöinä on varmaan asiakkaan ikä ja liittymäsopimuksen kesto. Onkohan muita? Kytketyt palvelut?

    Vastaa
  2. lasseliuk on

    Hei Elina, kiitos kysymyksistä ja kommenteista. Ikä-muuttujat ovat lähes poikkeuksetta merkitseviä tekijöitä poistuma-analyysissä, joskin harvoin kuitenkaan merkittävimpiä.
    Osoitteiden vaihdokset ja muut spatiaaliset muutokset jotka aiheuttavat ”kontrolloimatonta” poistumaa tulisi saada hyppysiin jo ennen mallinnusta (nämä eivät tietenkään ole kiinnostuksen kohteena).
    Poistuman analysointi elinaikamalleilla toisi tietysti hieman lisäinformaatiota poistumariskistä (hazardi-funktio) ajallisessa perspektiivissä, jolloin voitaisiin paremmin puhua hidastavista tekijöistä (selviytymisfunktion suhteen).

    Vastaa

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Yhteydenotto

Mikäli olet kiinnostunut yrityskohtaisista palveluista tai sinulla kysyttävää palvelujemme sisällöstä, niin ota yhteyttä oheisella lomakkeella tai soita Mikalle numeroon 040 845 8432.