Következő képzések

Data Science

Sült galamb

Mi a Kaggle?

A 2010-ben alapított Kaggle a világ legnagyobb adatbányász verseny platformja. A Kaggle-versenyekre bármely regisztrált tag benevezhet, márpedig regisztrált tagból nincs hiány – 2020 júliusában a tagok száma elérte az 5 milliót. A versenyek egy része pénzdíjas (jellemzően 10-15.000 USD-t lehet nyerni, de vannak ennél komolyabb összegek is). A verseny feladatok csak egy része érkezik üzleti oldalról, emellett rengeteg kutatási, tudományos témájú feladat is elérhető.

A Kaggle azonban nemcsak egy versenyplatform. Rengeteg adatbázis tölthető le az oldalról, amiken kezdő/haladó adatelemzők tudnak gyakorolni, illetve rengeteg gyakorlatban is használható kód tölthető le.

Hogy néz ki egy Kaggle verseny?

1. Adatok letöltése. Minden versenyről elég részletese leírás van: magáról az elemzés céljáról, az adatokról és persze a kiértékelési kritériumokról, de vannak olyan versenyek, ahol Te magad tűzhetsz ki feladatot mások számára. Ha valamelyik feladat megtetszik, akkor egyszerűen letöltöd az adatokat és elkezdhetsz elemezni, modellezni rajtuk.

2. Modellezés. A tanító adatbázison tudsz elemezni és modellezni.

3. Tesztelés. A tanító adatbázis mellett van egy ún. teszt adatbázis, a tanító adatbázison felépített modelleket ezen tesztelheted.

4. Eredmény beadása. Itt elég nagy változás történt az elmúlt években. Míg korábban elég volt a saját gépeden kiszámolt eredményeket beadni, ahol a beérkezett score-okat a Kaggle központi algoritmusa értékelte ki, addig napjainkban kódokat (jellemzően Python kódokat) kell/lehet beadni.

(Kaggle ennél sokkak többet tud és a versenyek menete is eltérhet a fentitől. A Kaggle oldalon részletesen elolvashatók a verseny feltételek)

Mi a gond a Kaggle versenyekkel?

Ha röviden akarok válaszolni, akkor a válaszom az hogy: SEMMI. Nem lehet elvitatni a Kaggle szerepét a data science népszerűsítésében. Tényleg jó platform, jó feladatokkal, és mint közösségi fórum is jól működik.

Hát akkor mi a gond?

A gond az, hogy a Kaggle versenyek egy olyan elemzési kultúrát honosítottak meg, ami az üzleti életben szinte biztosan kudarcra van ítélve.

Egy Kaggle verseny üzenete nagyjából megfeleltethető a „sült galamb a szádba repül” üzenettel.  A versenyre úgy szállsz be, hogy …

… készen van egy tisztított(!) adatbázis

… létrehoztak egy tanító és teszt adatbázist

… megvan a célváltozó és a kiértékelési szabályok.

A gond az, hogy a gyakorlatban a projekteknek csak igen kis szakaszát fedi le a fenti modellezési szakasz. Néhány olyan dolgot emelek ki, amire nem tanítanak meg a Kaggle versenyek – pedig a mindennapi életben elengedhetetlenek a sikerhez.

1.      „Adatguberálás”. Olyan, hogy készen kapsz egy adatbázist – felejtsd el! (sült galamb sose repül a szádba) Általában kapsz rengeteg adatot, amiből fel kell építened az elemzési adatbázist. Nagyon gyakori, hogy az első körben átvett adatok nem jók szinte semmire. Kezdő elemző egy tipikus hibája, hogy ilyenkor nem adja fel, próbálkozik új változók létrehozásával, modellek paraméterezésével + néhány „piszkos trükkökkel” (lásd túltanulás).  Ökölszabály: ha az első modellek gyengék, akkor nem TE vagy ügyetlen, hanem az adatbázis rossz! Az „adatguberálás” az egyik legfontosabb része a projekteknek. Kérdezzünk nyugodtan rá, hogy még mik vannak a sufniban – meglepő dolgok szoktak előkerülni, amik sokszor jóval értékesebbek adatelemzés szempontjából, mint az eredetileg átvett adatok. Ha tudunk, mi is tegyünk hozzá netről leszedett adatokkal (pl. esemény adatok, időjárás adatok, céginformációs adatok, …).

2.      Tanító és teszt adatbázis. A modellezés egyik legsarkalatosabb pontja a tanító, teszt és validációs adatbázis megtervezése. Számos tényezőt kell figyelembe venni:

a.      Mekkora legyen ezen adatbázisoknak mérete?

b.      A célváltozó valamelyik értékét felül kell-e súlyozni és ha igen milyen mértékben?

c.      Milyen időszakot fedjen le a tanító és a teszt adatbázis?  

A Kaggle versenyek azonban készen adják ezeket (sült galamb sose repül a szádba) – mintha marginális kérdés lenen ezek előállítása.

3.      Túltanulás. Látszólag a túltanulás ki van zárva a Kaggle rendszerből – olyan adatokon tesztelik a modelleket, amit a versenyző nem lát. De a versenyek üzenete mégis a következő: az nyer, akinek a modellje legjobban teljesít a validációs adatokon. De biztos erre kell hajtanunk a valódi életben? Tapasztalatom szerint a gyakorlatban két dolog egymás ellen dolgozik: (i) minél pontosabb legyen egy modell, (ii) időben minél stabilabb legyen egy modell. Azaz minél pontosabb egy modell, annál kevésbé stabil időben, ha meg stabilizáljuk a modellt, akkor romlik a teljesítménye. Üzleti szituáció dönti el, hogy melyik a jobb megoldás – de egy elemzőnek tisztában kell lenni azzal, hogy az AUC érték (modellek teljesítményét szokás ezzel a mutatóval mérni) nem mindenható (még ha a Kaggle versenyeken az is).

4.      Elemzés elsorvadása. A modellezés látszólag egy technikai feladat. Dobáljunk össze minél több adatot, modellezzünk ezeken az adatokon, majd a modellt értékeljük ki. Ezek olyan lépések, amik jól automatizálhatók. Profi Python/R programozó tud írni olyan scriptet, ami létrehoz rengeteg származtatott változót, ezeken különböző modellező algoritmusokat futtat, és a végén kiválasztja a legjobb modellt. Nagyon gyorsan nagyon jó modellek építhetők így. A gond csak az, hogy ez nem elemzés! Az üzleti életben az elemzések célja olyan összefüggések feltárása, melyek támogatják a döntéshozók munkáját. Azonban a Kaggle versenyeken ez az elemzői attitűd elsorvad – nincs lehetőség kérdezni az üzleti oldaltól, nincs lehetőség az értéktelen összefüggések kiszűrésére, nincs lehetőség szakértői tudás beépítésére. Azaz nincs lehetőség annak a képességnek elsajátítására, hogy kialakítsunk egy közös nyelvet az üzleti oldallal (hasonló aspektusa ennek a problémának ebben a KDNuggets cikkben olvasható).

Akkor most ne induljunk Kaggle versenyen?

Dehogynem.

Egyrészt versenyezni jó! A versenyeken a versenyzők kommunikálhatnak egymással, illetve láthatók más versenyzők kódjai, így rengeteget lehet tanulni egymástól. Ha tisztában vagyunk azzal, hogy ezek a versenyek mire jók és mire nem, akkor mindenkinek jó szívvel ajánlom.

De ne felejtsük el soha:

egy data science projekt mindig több, mint adatok elemzése!