Data miningové modely a jejich údržba

23. 3. 2009

Sdílet

Bylo by chybou myslet si, že proces data miningu končí pouze vývojem modelu a jeho implementací. Tržní či operační prostředí se totiž vyvíjí velmi rychle a model, který byl právě dnes vyvinut na nejčerstvějších datech, již zítra nemusí být aktuální. Aby model sloužil co možná nejdéle, je třeba jej udržovat.

Pojem data mining představuje proces hledání neznámých a potenciálně užitečných informací  v databázích a datových skladech. Jeho výstupem bývá často konkrétní model, který na základě známých vstupních informací o klientech (věk, příjem apod.) je schopen predikovat jejich budoucí chování, tj. například odhadnout, jaká je pravděpodobnost, že klient splatí úvěr, anebo třeba odhadnout očekávanou výši transakcí na kreditní kartě v následujícím období. Po technické stránce mívá model většinou podobu matematické rovnice anebo sady pravidel. K modelování se využívá celá řada data miningových metod, mezi nejznámější patří logistická regrese, neuronové sítě či rozhodovací stromy.

Bylo by chybou myslet si, že proces data miningu končí pouze vývojem modelu a jeho implementací. Tržní či operační prostředí se totiž vyvíjí velmi rychle a model, který byl právě dnes vyvinut na nejčerstvějších datech, již zítra nemusí být aktuální. Aby model sloužil co možná nejdéle, je třeba jej udržovat. Podívejme se tedy, v čem taková údržba spočívá, jak často je třeba se jí věnovat, které kroky je možné delegovat na správce datového skladu a které je naopak nutné přenechat datovým analytikům.

Údržbu modelu lze podle stupně náročnosti rozdělit do čtyř úrovní:
1. Kontrola konzistence skóringu
2. Kalibrace modelu
3. Obnova modelu
4. Vývoj nového modelu

Kontrola konzistence
Nejjednodušší, ale zároveň nejpodstatnější součást údržby modelu spočívá v kontrole, zda je skóring konzistentní, neboli zda se nemění jeho vlastnosti oproti dlouhodobému trendu. Ke kontrole konzistence skóringu stačí pouhý aritmetický průměr skóre a jeho srovnání s minulými hodnotami, od nichž by se neměl výrazně odlišovat. Pro úplnost je možné tuto informaci doplnit o počet chybějících pozorování (NULL) či o směrodatnou odchylku.  Zjistí-li se, že došlo k porušení konzistence, může to signalizovat:

- technickou závadu skóringu,
- změnu vstupní populace,
- změnu chování klientů.

První případ nastává především tehdy, dojde-li k nějakému zásahu do struktur datového skladu – přidaly se nové tabulky, změnily se jejich názvy, rozšířily se, či byly zrušeny některé číselníky, optimalizovaly se skripty apod. Pak mohou nastat dvě situace – skóring klientů úplně selže (toho si většinou všimnete velmi rychle), avšak mnohem častěji proběhne bez jediné chybové hlášky, ovšem výstupem jsou nesmyslné hodnoty. A tak se stává, že všichni zákazníci mají stejné skóre, anebo skóre obsahuje pouze prázdné hodnoty typu NULL.

Druhá situace nastává, změní-li se portfolio klientů, kteří jsou skórováni. K tomu dochází většinou rozhodnutím managementu, že některým zákazníkům je potřeba přestat poskytovat určité služby nebo se více zaměřit na specifickou skupinu zákazníků. O této události jsou provozovatelé většinou informováni a není to pro ně žádné překvapení. Nesmějí se ovšem divit, že se tím změní i struktura klientů v databázi. Například ze dne na den se přestanou poskytovat úvěrové karty klientům do 30 let. Jedná-li se převážně o klienty se špatným skóre, jejich vyloučením se nárazově zvýší průměrné skóre celé populace. V této situaci není důvod model  nikterak upravovat, nechá se tak, jak je.

Mnohem horší situace ale nastane, když je změna skóre způsobena náhlou změnou chování klientů. Představte si situaci, kdy byl vyvinut model na predikci využívání úvěrových karet, jehož hlavním prediktorem je míra využívání spotřebitelského úvěru. Pokud banka začne klientům nabízet za velmi výhodných podmínek kontokorent, většina klientů přestane spotřebitelský úvěr používat (změní se jejich chování) a původní model se tak stane nepoužitelným...
 
Jak ale zjistit, co je příčinou nekonzistence skóre? Stačí prověřit konzistenci všech proměnných, které vstupují do modelu. Pak se snadno přijde na podstatu problému, tj. které proměnné jsou zodpovědné za to, že došlo ke změně vlastností celého modelu. Kontrolu konzistence číselných proměnných lze provést opět prostřednictvím aritmetického průměru či směrodatné odchylky a jejich porovnáním s minulými hodnotami, u kategoriálních proměnných pak prostřednictvím frekvenčních tabulek.
 
Kalibrace modelů
Zejména vlivem sezónních faktorů dochází často k tomu, že se predikované hodnoty skóringu rozcházejí se skutečnými hodnotami. Může například nastat tato situace: Model na predikci zákazníků majících zájem o hotovostní úvěr byl vyvinut na datech z období února až června příslušného roku; před Vánocemi ovšem prudce vzroste poptávka po hotovostních úvěrech. U všech klientů v portfoliu tedy bude vyšší pravděpodobnost reakce (vyšší pravděpodobnost poptávky) než indikuje model naučený na datech z jiného období.

bitcoin školení listopad 24

Na základě dekalibrovaného modelu je sice možné určit, který klient je z hlediska skóre horší a který lepší – v relativním srovnání funguje stále dobře, plete se však v tom, jak moc je který klient dobrý či špatný – zhoršuje se tedy v absolutních hodnotách.

Dekalibrovaný model má za následek, že model podceňuje či přeceňuje reálnou situaci, to znamená, že si uživatel myslí, že profitabilita klienta je nižší / vyšší než ve skutečnosti. V kreditním skóringu jsou tedy například schvalováni klienti, kteří jsou ve skutečnosti více / méně rizikoví, v cíleném marketingu jsou pak oslovováni klienti, jež jsou ve skutečnosti více / méně profitabilní, než uvádí model.

Zda je model dekalibrovaný, lze zjistit snadno tím, že se porovná průměrné skóre s průměrnou hodnotou predikované proměnné (v našem příkladě se porovná průměrná pravděpodobnost poptávky po hotovostních úvěrech s tím, jaké procento klientů si skutečně o hotovostní úvěr  zažádalo). Jsou-li obě veličiny výrazně odlišné, je nutné model kalibrovat.

Kalibrace připadá v úvahu pouze u lineární či logistické regrese, kdy se skóre klienta počítá jako vážený součet prediktorů s vahami a absolutního členu. Kalibrace modelu pak spočívá pouze v úpravě absolutního členu bez nutnosti použití statistického softwaru a přepočítání celého modelu, tj. ostatních koeficientů. V kódu, který zajišťuje skóring všech klientů v databázi, pak stačí pouze změnit jedno jediné číslo.

Kalibrovat lze teoreticky i modely založené na neuronových sítích či rozhodovacích stromech, není to však tak jednoduché jako u lineární či logistické regrese. Mnohem jednodušší je celý model přepočítat.

Nutné je však také dodat, že dekalibrace často vůbec nevadí a nemá smysl s ní ztrácet čas. Tato situace nastává zejména v cíleném marketingu, kdy vzniká potřeba oslovit pouze určité procento klientů s nejvyšším skóre bez ohledu na jeho absolutní úroveň.

Obnova modelu
V delším období dochází nejen k dekalibraci modelu, ale také k postupné ztrátě jeho predikční schopnosti. To znamená, že model již není schopen dobře rozeznávat mezi dobrými a špatnými klienty. Používá-li se model v cíleném marketingu, projeví se snížená predikční schopnost nižší reakcí klientů na marketingové nabídky. V kreditním skóringu pak uživatel zaznamená zvýšenou delikvenci na poskytnutých úvěrech, které byly prostřednictvím modelu schváleny.

Důvodem snížené predikční schopnosti je zejména změna situace na trhu  (nabídka vlastních služeb a služeb konkurence), změna ekonomické situace (mění se příjmy klientů, rostou ceny zboží), změna demografických charakteristik (vzdělání, věk) apod. Klienti na tyto změny reagují, což se projevuje ve změně jejich chování. Některé atributy klienta, které vstupují do modelu, se pak stávají důležitějšími, některé naopak méně důležitými.

Obnova modelu spočívá v novém  nastavení všech vah, které pak lépe vyjadřují důležitost proměnných v modelu. Na rozdíl od kalibrace již obnova modelu vyžaduje použití statistického softwaru a přepočítání modelu na novém vzorku dat. Při obnově se ale naštěstí nemění seznam atributů, pouze jejich váhy. Skórují-li se klienti v databázi prostřednictvím SQL, implementace obnoveného modelu nevyžaduje žádný větší zásah do fungujících skriptů – stačí změnit pouze několik hodnot.

Vývoj nového modelu
Při obnově modelu se většinou nepodaří dosáhnout původní výkonnosti modelu, dojde pouze k jeho oživení, tj. mírnému zvýšení jeho kvality. Zároveň se tím i model kalibruje. Tento přístup je však z dlouhodobého hlediska neudržitelný. Po několika letech totiž některé atributy úplně ztratí svou prediktivní sílu a pak je jediným řešením vývoj zcela nového modelu. Ten je rovněž nutný v případě náhlé změny chování klientů (viz kapitola o konzistenci). Vývoj nového modelu pak znamená značný zásah do IT infrastruktury – je potřeba změnit nejenom samotné parametry modelu, ale také připravit výpočet nových atributů a model určitou dobu testovat.

Jak často provádět údržbu modelu?
Četnost údržby závisí zejména na tom, jak moc je pro nás kritický nefunkční model (můžeme si nejspíš dovolit jednu nepodařenou marketingovou kampaň, ale asi by bylo tragické mít dlouhodobě nefunkční model na schvalování úvěrů) a jak rychle dochází v daném oboru ke změnám (v telekomunikacích se dá očekávat mnohem turbulentnější prostředí než třeba v energetice).

Zpravidla se dá říct, že kontrola konzistence by se měla provádět bezprostředně po každém skóringu. Jedná se totiž o velmi jednoduchou kontrolu, která může firmu ochránit před obrovskými ztrátami. Navíc vzhledem ke své jednoduchosti nevyžaduje tato kontrola žádné znalosti z oblasti data miningu a je možné ji bez problému delegovat i na oddělení IT, které může operativně zasáhnout.

Potřebuje-li uživatel kalibrovaný model, je ideální zvolit měsíční periodicitu (čím rychleji se bude na sezónní výkyvy reagovat, tím lépe, na druhou stranu dekalibrace modelu neznamená až tak vysoké riziko, aby ji bylo třeba provádět každý den). Každých šest až dvanáct měsíců stojí za úvahu model obnovit, tj. přepočítat jeho parametry. Vývoj úplně nového modelu se zpravidla doporučuje po dvou až čtyřech letech.


Autor pracuje jako konzultant v oblasti data miningu ve firmě Adastra.