Chyby nerobí len ten, čo nerobí nič. Táto ľudová múdrosť platí naozaj vo všeobecnosti a tak sa vťahuje aj na prácu s kontaktnými údajmi klienta. Počas svojej práce som sa stretol s niekoľkými rozsiahlymi databázami emailových adries klientov. Väčšina z emailov sa do systémov firiem dostávala z registračných formulárov, kam ich klienti sami zadávali. Keď vidíte nejaký konkrétny preklep v emailovej adrese, poviete si: aká triviálnosť, možno sa aj pousmejete a chybu poľahky odstránite. Ak však máte databázu s miliónmi prípadov, úsmev vám rýchlo vytuhne.
Ako nájsť chybu v emailových adresách, keď pochybení je mnoho? A ako veľká je v skutočnosti nekvalita vo vašom konkrétnom prípade? Poviete si, urobím si vzorku, v nej zrátam chyby ručne a podľa toho odhadnem veľkosť problému. Nuž ale, ak máte v databáze milióny emailov, vzorka by musela mať aspoň niekoľko desiatok tisíc riadkov. To už prestáva byť v ľudských silách odhaliť. Ako si teda počať s týmto problémom?
V jednej z mojich minulých prác som bol postavený pred tento problém prvý krát. Najprv som skúsil uvedenú vzorkovú metódu, ale po niekoľko stovák riadkov som pochopil, že tadiaľ cesta naozaj nevedie. Nenechal som sa odradiť a povedal som si, že email predsa má určité pravidlá, ktoré musí splniť (napríklad musí obsahovať @ a minimálne jednu bodku, ideálne až za @). Takýmto spôsobom sa môžete dopracovať k sade určitých pravidiel. Dnes však už viem, že tým odhalíte len nepatrný zlomok problémových emailov.
Tak ako to už v živote býva, pohár môže byť polo-prázdny aj polo-plný. Obrovské množstvo emailov je teda prekliatím aj požehnaním. Čím viac podkladových dát, tým častejšie sa určitá chyba vyskytne. Nad obrovskou skupinou emailov tak môžete testovať strojom postupne všetky hypotézy a zároveň mať rýchlo spätnú väzbu, ako pravdepodobná daná chyba je. Aj pomerne zriedkavé chyby budú mať v tak obrovskej databáze aspoň pár kusov výskytov. A tu sa premieňa nevýhoda na výhodu. Keďže bizarné scenáre budú mať zopár výskytov, ak postupne testujete filtre na rozličné typy chýb, počty „podozrivých emailov“, ktoré vám jednotlivé návrhy filtrov vracajú sú dobrým signálom, či pravidlo naozaj odhaľuje chyby alebo je falošným poplachom, ktorý „neprávom obviňuje“ veľké množstvo „nevinných emailov“.
Nedávno sa mi podarilo uvedené cvičenie zopakovať na vzorke, kde sú desiatky miliónov emailových adries. Z uvedených skúseností môžem povedať, že toto sú najčastejšie chyby, ktorých sa ľudia dopúšťajú pri písaní vlastných emailov:
Dvojité preklepy
Do tejto kategórie spadajú emaily tvaru nieco@@niekde.com alebo nieco@niekde..com Odhaľovanie týchto dvojitých chýb je možné urobiť pomerne jednoducho, aj keď možno by vám vôbec nenapadlo, že ľudia dokážu urobiť aj takto triviálnu chybu.
Roztržité domény
Pri písaní adries sa ľudom občas stáva, že z roztržitosti napíšu správne takmer celú adresu, ale potom “domrvia” koncovku domény, ako napríklad niekto@yahoo.sk . Tento druh chýb už sa hľadá podstatne ťažšie, lebo freemailové servery niekedy majú špecifické koncovky v krajinách a tak @yahoo.xxx nemusí byť nutne nesprávne. Tu vám však opäť dokáže pomôcť BigData sila obrovskej databázy. Stačí overiť všetky kombinácie yahoo.xxx a skontrolovať tie, ktoré majú podozrivo nízke počty. Tento postup možno aplikovať pre ľubovoľné veľké domény, takže zistíte, že zoznam.jp tiež nie je úplne v poriadku. Samozrejme firmy môžu mať officy v menších firmách, takže keď vykročíte zo zóny freemail domén, môžete sa aj popáliť, ale v princípe sa dá dopracovať k solídnym výsledkom.
Skomoleniny v názvoch
Ďalšou skupinou relatívne ľahko detekovateľných problémov sú zjavné skomoleniny, predovšetkým domén (napr. niekto@gmai.com). Detekcia je opäť trochu komplikovanejšia, ale v princípe sa dajú použiť Levenshtein vzdialenosti od mien veľkých domén. Je to samozrejme ľad, po ktorom treba opatrne kráčať, ale ak nebudete prehnane horliví, dá sa s tým veľa problémov potlačiť.
Zjavne vynechané povinné znaky
Na moje prekvapenie, niektorí ľudia sú schopní napísať emailovú adresu aj bez zavináča, či dokonca bez jedinej bodky. Pri úprave takýchto chýb, už však je pomerne jednoduché vyrobiť false positive, teda ilúziu nesprávnej korekcie. Preto odporúčam “natvrdo” algoritmicky opravovať len zjavne prípady ako niektogmail.com alebo niekto@gmailcom. Skúšali sme experimentovať aj agresívnejšími technikami, ale miera falošných poplachov bola zúfalo vysoká. Ak totiž užívateľ zabudol napísať zavináč, určiť na ktorú pozíciu má byť vložený nie je vo všeobecnosti príliš jednoduché (napr. ambrozeset.sk bola v skutočnosti správne ambroze@set.sk nie ambroz@eset.sk , ako by si niektorí mohli myslieť)
Samostatnou vetvou sú ľudia, ktorí svoje email adresy píšu tak, aby neboli strojovo použiteľné. Tu musím uznať, že zlyháva najmä validáciu vstupu, lebo emaily ako niekto(at)niekde.com alebo niekto@niekde_dot_com by sa proste do databáz nemali ani dostať. Napriek tomu, to niektorí skúšajú.
< ďalšie pravidlá sú rozobrané v doplnkovom blogu pre členov komunity Mocnedata.sk >
Vo všeobecnosti je opravovanie chýb v emailoch taký zaujímavý kokteil alchýmie a tvrdých algoritmov. Preto pre členov MocneData.sk komunity som pripravil k tejto téme doplnkový blog [Ako na to] Skripty na opravu chýb v emailoch, kde uvádzam aj vzorové kódy, ako vyššie uvedené (a niektoré ďalšie) chyby v emailoch priamo odstrániť. Skripty sú napísané v SQL konvenciách a teda môžu byť priamo aplikované na vaše databázy. Ak patríte medzi členov komunity MocneData.sk, použite heslo, ktoré ste obdržali emailom o registrácii. Ak doposiaľ nie ste členom komunity môžete sa bezplatne stať TU A TERAZ.
Tí z nás, čo si viac tykajú s programovacími jazykmi by mohli povedať, že chybám v ľuďmi zadávaných údajoch by sa dalo predísť patričnou validáciou (kontrolou) zadávaných emailov. Podľa tohto postoja by sa dalo v úvode citované príslovie upraviť na „chyby v databáze má iba ten, čo nič nerobí proti nim“. Hoci je pravda, že aplikované kontroly by dokázali odstrániť niektoré preklepy, stále existujú emailové adresy, ktoré “prelezú“ väčšinou základných testov, hoci zjavne nie sú správne. (napríklad a_b.c_d@efgh.ch) Postaviť filter na všetky možné chyby tak je v praxi takmer nemožné. Podľa mojich skúseností, aj po zavedení veľmi prísnych validačných pravidiel sa podarilo znížiť počet nekorektných emailov iba na úroveň okolo 1.4%. Tento, približne 1%ný, posledný kúsok koláča zostáva len potvrdením prvej vety: Kto robí, urobí aj chyby.
Existuje hneď niekoľko dôležitých dôvodov, prečo sa výber a príprava parametrov pre prediktívne modely stali
uličkou? Aké najčastejšie chyby robím pri výbere premenných pre svoj model? Ale predovšetkým, koľko by som tých premenných mal mať a prečo práve toľko?
Rozoberať len tradičné postupy tvorby premenných a ich chyby by bolo trochu nefér. Preto ponúknem aj iný pohľad na tvorbu premenných a pokúsim sa vás nadchnúť konkrétnymi príkladmi pre
používali softwarom defaultne ponúknuté transformácie a nevedia, ako si vybrať ich správnu kombináciu. Zostavil som vtedy pre nich jednoduchý 1-stránkový ťahák, ktorý si spolu prejdeme. Pre prípad, že by aj vám na to váš šéf prišiel …
SciKit Learn

Už ste boli niekedy na dovolenke a pršalo vám väčšinu dní? Ak patríte k typickým turistov, asi vám to nepridalo na nálade. Možno vás aj zamrzeli peniaze do takto investovaného výletu. Teraz si predstavte, že by ste presne vedeli, aké bude počasie na niekoľko mesiacov dopredu. Objednali by ste si hotel na termín, kde preprší väčšinu dní? Ak by ste mali inú možnosť, zrejme nie a spolu s vami väčšina bežných turistov. Termíny so zlým počasím by sa dostali do nemilosti a pretrhli inak idylickú, dnes nepretržitú letnú turistickú sezónu. Rovnako by dopadli lyžiarske strediská v plusových teplotách (keď ani umelé zasnežovanie nepomôže). Áno,
aby si pozreli vzrušujúci zápas. A teraz si predstavte, že supercomputer dokáže predpovedať presný výsledok každého zápasu niekoľko dní vopred s pravdepodobnosťou 99%. Iste, šport to nepoloží, stále sa nájdu takí, čo budú chcieť raz za 100 zápasov prežiť prekvapenie. Ale ruku na srdce, koľko príležitostných fanúšikov pozbiera chuť si ísť pozrieť ako ich team prehrá 1:5? O koľko klesne sledovanosť zápasov v TV s takto vopred jasným výsledkom? O koľko menej utŕži klub za vysielacie práva, keď bude zrejmé, že ich čaká slabá sezóna a väčšinu zápasov prehrá? O koľko menej budú diváci ochotní zaplatiť za celosezónnu permanentku, keď bude vopred známe, že sa nedostanú do play-off? Presné predikcie športových výsledkov oberú odvetvie o časť príjmov. Zároveň zlikvidujú väčšinu stávkovania na výsledky. Ak váhate, či naozaj pozrite si zaujímavú štúdiu
Jedným, z odvetví, ktoré si určite “odskáču”, aktuálne prebiehajúci rozkvet pokročilej analytiky bude určite aj