Klijentu je 2023. godine trebao kratak anomaly-detection demo za nastavu.
Tražena isporuka imala je četiri dijela: definisati slučaj upotrebe, generisati lažne podatke, pokrenuti i vizualizirati dva ili tri algoritma u Google Colabu te predati kod koji druga osoba može razumjeti.
Ovo je bio edukativni projekat, a ne produkcijski sistem za otkrivanje prevara. Ta razlika je odredila cijelo rješenje.
Modelu je potrebna priča
Anomaly detection brzo postane apstraktan ako je ulaz samo matrica slučajnih brojeva. Koristio sam izmišljenu knjižaru i generisao zapise nalik transakcijama s četiri razumljiva atributa:
- doba dana;
- žanr knjige;
- cijena;
- broj stranica.
Podaci su pratili jednostavne obrasce. Različiti žanrovi imali su različite raspone cijena, a aktivnost je bila raspoređena oko očekivanih sati. Kada polaznik razumije normalan obrazac, anomalni zapis ima značenje, a nije samo brojčani score.
Za objavljeni demo generisano je 210 zapisa. Sam broj nije bio presudan; važni su bili kontrolisani podaci s razumljivim pretpostavkama.
Poredi pretpostavke, ne samo rezultate
Platforma je demonstrirala tri pristupa:
- Isolation Forest, koji neobične zapise izdvaja nasumičnim particioniranjem.
- Gaussian Mixture, koji podatke modelira kao kombinaciju distribucija vjerovatnoće.
- One-Class SVM, koji uči granicu oko zapisa koji se smatraju normalnim.
Svaka metoda može vratiti anomalije, ali ne definišu „neobično“ na isti način. U demu su se njihovi rezultati djelimično preklapali, ali nisu bili identični.
Ta razlika je važan dio lekcije jer vodi do pravog narednog pitanja:
Zašto je ovaj algoritam označio ovaj zapis i odgovara li taj razlog stvarnoj poslovnoj definiciji problema?
Jasan kod je dio isporuke
Kod edukativnog notebooka kvalitet koda nije odvojen od rezultata.
Notebook je morao biti čitljiv od početka do kraja: generisati podatke, enkodirati atribute, trenirati svaku metodu, pregledati scoreove, vizualizirati rezultate i uporediti skupove označenih zapisa. Polaznik treba moći promijeniti parametar i razumjeti šta se promijenilo.
Klijent je kasnije tražio izmjenu. To je uobičajeno, posebno kada prva radna verzija preciznije pokaže šta je potrebno za nastavu.
Šta je klijent potvrdio
Javna Upwork recenzija dobro opisuje rezultat:
„Mehmed je odradio odličan posao. Kod koji je napisao radio je dobro i bilo ga je lako razumjeti. Kada su nam bile potrebne izmjene, Mehmed je bio veoma pažljiv, brzo je razumio šta je potrebno i brzo to realizovao. Zaista mi je bilo zadovoljstvo raditi s njim.“
Recenzija potvrđuje ono što je bilo važno za ovaj angažman: funkcionalan kod, razumljivu implementaciju, brz odgovor na izmjene i urednu predaju.
Šta ovaj projekat ne dokazuje
Demo ne dokazuje da je jedan od ovih algoritama uvijek najbolji. Ne koristi produkcijske podatke i ne potvrđuje poslovni prag za stvarne anomalije.
U produkcijskom projektu dodao bih domenske stručnjake, označene uzorke za pregled, analizu lažno pozitivnih rezultata, monitoring i proces reagovanja na upozorenja.
Izvor
Kod je dostupan na GitHubu, a originalni walkthrough je objavljen na Mediumu.
Ovaj projekat je dobar podsjetnik da data science postaje koristan kada neko može razumjeti pretpostavke, pregledati rezultat i odlučiti šta uraditi dalje.
TREBAJU VAM DOKAZI IZ VLASTITIH PODATAKA?