V našem případě mohou být zprávy spamem, nebo jím naopak nejsou. Mezi další podobné úlohy patří například retence odchodu zákazníka, prevence podvodů nebo segmentace klientů vzhledem k zájmu o nějaký výrobek.
V minulém díle jsme mimo jiné zdůraznili, že pro účely modelování je vhodné původní zprávy rozdělit na dvě části – na trénovací množinu, pomocí které modely vytvoříme, a na testovací, na níž budeme hodnotit jejich kvalitu a navzájem je porovnávat.
Nejjednodušším způsobem, jak toto rozdělení provést, je každou zprávu přiřadit náhodně se stejnou pravděpodobností buď do trénovací, nebo do testovací množiny. Vzniklé množiny sice nemusí být stejně velké, ale to vzhledem k principu nevadí, navíc je tento způsob rozdělení výpočetně nenáročný.
Cílová kategorie
Při modelování se k predikované proměnné přistupuje tak, že se jedna kategorie označí jako cíl. V tomto případě se uvažuje, že cílem bude „Zpráva je spam“. Poté lze zavést pojem senzitivita modelu, to jest citlivost modelu v procentech na správné označení cíle („Zpráva je spam“).
V naší situaci bude tedy senzitivita udávat, kolik procent spamu se správně odfiltrovalo. Analogicky se mluví o specifičnosti modelu. Ta bude informovat o tom, jaký podíl ostatních zpráv neskončilo chybně ve spamovém koši.
Hledání modelů
Ačkoliv jsou při detekování spamu oblíbené hlavně modely naivních Bayesovských klasifikátorů, není nezbytně nutné se omezovat pouze na ně. Při modelování je možné použít širokou škálu různých metod.
Mezi populární algoritmy patří například klasifikační stromy, logistická regrese, metoda nejbližších sousedů, podpůrné vektory anebo neuronové sítě. Většina těchto metod je navíc parametrizovatelná – jedním algoritmem tedy lze vytvořit více modelů pro různé parametry.
Při detekci spamu je k dispozici i blacklist zakázaných adres nebo účtů, o kterých se ví, že z nich chodí spam. Dále je možné na základě vlastní zkušenosti zprávě přiřazovat vysokou pravděpodobnost toho, že jde o spam – obsahuje-li například nějaké nevhodné slovo.
Tyto předem známé modely, založené na odborných zkušenostech, se nazývají expertní modely. Nabízí se tedy otázka, jakým způsobem rozhodování různých modelů zkombinovat, a vytvořit tak nově odvozené.
Kombinování modelů
Modely dichotomických nebo vícekategoriálních proměnných jsou kromě toho, že případ zařadí do jedné ze skupin, schopny taktéž spočítat konfidenci neboli spolehlivost svého odhadu. Například prvně jmenovaný model bude o zprávě tvrdit, že jde o spam, se spolehlivostí 60 procent.
Druhý naopak rozhodne obráceně a zprávu neoznačí jako spam se určitostí 80 procent. Je již nasnadě, že můžeme vytvořit nový model kombinací obou předchozích tak, že se bude rozhodovat hlasováním váženým podle konfidence těchto modelů. Ve výše uvedeném příkladu by takto nově vzniklý model zprávu za spam nepovažoval.
U více modelů lze toto hlasování dokonce sestavovat hierarchicky, a to znamená, že budou existovat skupiny podřízených modelů, které svým hlasováním vytvoří nové, nadřízené příslušným skupinám. Ty opět mezi sebou budou hlasovat, až nakonec tímto postupným hlasováním vznikne výsledné rozhodnutí.
Porovnávaní modelů pomocí matice záměn
Vytvořili jsme několik modelů, které vznikly různými technikami, změnou parametrů nebo kombinováním jiných modelů. Pojďme se nyní podívat, jakým způsobem se dají mezi sebou porovnávat a jak bychom mohli vybrat pro nás nejvhodnější.
Toto porovnání provedeme právě na testovací množině, která nevstupovala do učení modelu. Zprávy z testovací množiny tedy necháme modely ohodnotit. Jelikož víme, zda se jedná o spam či nikoliv, lze zjistit, v kolika procentech případů se model zmýlil.
Přeučené modely mohou zařadit zprávy z trénovací množiny vesměs správně, avšak na testovací množině by se ukázalo, že se rozhodovaly téměř náhodně.
Autor je analytikem společnosti Acrea CR