Masinõppe kasutamine kliendi makseraskuste ennustamiseks
Allikas: Äri-IT Kevad 2023
Autor: Martin Darvis, BCS Itera BI arendaja
Äri ei ole paraku võimalik ilma klientideta teha. Vahel aga tekitavad kliendid käibe asemel probleemi – selliste klientide tuvastamisest masinõppe abil räägimegi.
Masinõppe näite aluseks on andmekomplekt „Default of Credit Card Clients Dataset“, kus on 30 000 kliendi unikaalne tunnus ja makseajalugu ilma konfidentsiaalsete andmeteta. Iga kliendi kohta on teada esitatud arve summa, samuti see, mitu päeva ületati maksetähtaega ja kas klient on järgneval kuul maksed katkestanud. Andmete alusel saab hakata masinõppemudelit õpetama.
Klassifikaatorid
Sellise ülesande lahendamiseks sobivad hästi klassifikaatorid ehk mudelid, mis jaotavad andmed etteantud kategooriatesse. Toodud näite puhul jaotuvad kliendid kahte kategooriasse: need, kes lõpetavad maksmise, ja need, kes maksavad edasi. Mudelid moodustavad juhendatud masinõppe (supervised machine learning), mis tähendab, et mudeli loomisel on vaja defineerida, millisesse gruppi klient kuulub. See on vajalik, kuna ennustatakse ühe kindla parameetri alusel. Üks levinud klassifikaatorimeetod on „Juhumets“ (Random Forest), mida antud näites kasutame.
Andmed
Tavaliselt ei ole võimalik andmeid otse ettevõte raamatupidamisest, ERPst või andmelaost masinõppe jaoks võtta, sest nad on vormistatud selleks ebasobival kujul. Selleks et mudelit õpetada, on vaja andmeid töödelda ja tekitada iga kliendi kohta kokkuvõte. Ühe kliendi kohta peab seal olema üks rida, mis ei tohi sisaldada kuupäeva.
Sellise andmekomplekti moodustamiseks on vaja näiteks üks käesoleva kuu kuupäev (eeldatavalt kuu viimane, sest saldod arvutatakse tavaliselt kuu lõpu seisuga) ja määrata see kuupäevaks X. Selle kuupäeva seisuga arvutatakse välja iga kliendi saldo ja päevad, mis on läinud üle maksetähtaja. Sama tehe tehakse eelnevate kuude kohta ja tähistatakse need väljad kuupäevadega X-1 kuni X-6, seega ajas tagasi pool aastat.
Kes läheb pankrotti?
Nüüd ilmneb esimene probleem – kohe ei saa öelda, kes klientidest järgmise kuu jooksul pankrotti läheb. Selle probleemi lahendamiseks on kaks võimalust.
Esimene on ajalooliste andmete kasutamine. Kliendid, kes maksmise peatasid, on nimeliselt teada, samuti see, mis nõuded on kellegi kohta saadetud inkassosse. Seega saab täpselt määratleda, kas klient on probleemne.
Teine võimalus on määrata tunnus meie enda paika pandud piirmäärade põhiselt. Näiteks võime öelda, et klient on probleemne, kui tal on kolm kuud järjest arved üle tähtaja läinud või kui keskmine tähtaja ületamine kolme kuu jooksul on kasvanud ja kui talle on viimase kolme kuu jooksul väljas tatud arveid summas üle 1000 euro.
Esimese meetodi eelis on kiirus, täpsus ja ennustamine väga kindla kriteeriumi alusel (kliendi sattumise inkassosse). Teise meetodi eelis on paradoksaalselt see, et meetod ei ole täpne. Probleemsete klientide kriteeriumite väljatöötamine võib põhineda muudel asjaoludel. Näiteks selle meetodi valik võib sobida juhul, kui ettevõtte jaoks on probleemiks hoopis liialt suur ajakulu probleemsete klientidega tegelemiseks. Sellisel juhul saab mudel ennustada mitte kliendi makseriski, vaid anda soovitusi, millistele klientidele võiks määrata maksetingimusteks ettemaks.
Antud andmekomplektis on kasutatud esimest meetodit ehk kliendi probleemsus on määratud selle järgi, kas ta on lõpetanud maksmise märgitud kuupäevale järgneval kuul. Andmekomplektis on kuue kuu jagu kliendi makseajalugu, aga mudeli õpetamiseks ei ole vaja kasutada kõiki kuue kuu andmeid. Eesmärk on kasutajatele ette teada anda, missugune klient võiks probleemi tekitada. See tähendab, et andmekomplektist tuleb välja võtta viimaste kuude andmed sõltuvalt sellest, kui varakult tahetakse hoiatust saada. Antud juhul eemaldame kuud X kuni X-3 ja jätame ainult kolm kõige varasemat kuud, X-4 kuni X-6. Niiviisi õpetatud mudel saab ennustada, kas ühel või teisel kliendil on probleemne muster näha juba kolm kuud varem.
Kui probleemsed kliendid on määratud ja andmete ajavahemik otsustatud, saab hakata masinat õpetama. Selleks jaotame kogu andmekomplekti kaheks: 70% andmeid võtame õpetamiseks (juhendatud andmed), ülejäänud 30% kasutame selleks, et kontrollida, kuidas mudel oskab ennustada, toetudes juhendatud andmetelt saadud kogemustele. Jättes kõrvale tehnilise poole, võiks protsessi tulemus välja näha järgnevalt:
Y-teljel (vertikaalsel) on tegelik tunnus ja X-teljel (horisontaalne) on ennustatud tunnus. Ruutudes on toodud klientide arv. Mudel suutis seega õigesti tuvastada 411 probleemset ja 6716 mitteprobleemset klienti. Ühtlasi jättis mudel tuvastamata 1593 probleemset klienti ning nimetas probleemseks 280 korralikku klienti.
Sellega on esimene samm masinõppe mudeli rakendamiseks tehtud. Kui täpsus on lõppkasutaja jaoks piisav, siis võib mudeli kohe kasutusele võtta. Kui mitte, siis tuleb täpsust tõsta. Selleks võiks proovida teisi klassifikaatoreid või vähendada vaadeldavat perioodi kolmest kuust kahe kuu peale. Samuti tasub lisada kliendi muid tunnuseid või muuta probleemse kliendi definitsiooni.
Lõpptulemuseks peab olema mudel, mis on piisavalt täpne ja mille kasutamine säästab ettevõtte ressurssi, vähendades tasumata arvete hulka ja/või töötundide arvu.
Allikas: Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science