Néha a legegyszerűbb modellek működnek a legjobban

Interjú Balogh Eszterrel, a Dataracing data science verseny 3. helyezettjével 

A Magyar Nemzeti Bank és a Budapesti Műszaki és Gazdaságtudományi Egyetem egy közösen szervezett data science versenyt hirdetett idén tavasszal, hogy a szakmai fejlődéshez és kapcsolódáshoz platformot teremtsen a magyar data science közösségnek. A Dataracing data science verseny során egy olyan modell létrehozása volt a cél, amely megbecsüli a hazai vállalatok exportbevételeinek alakulását az elmúlt évek mérleg adatai segítségével. A verseny szakmai hátterét a Dmlab szakértői adták. 

A versenyre 2022. április 11-től 10 héten keresztül folyamatosan nevezhettek hazai adatelemzéssel foglalkozó szakértők és lelkes érdeklődők. A verseny folyamán 185 versenyző, összesen több mint 6000 megoldáson keresztül mérte össze szakmai tudását2. A dobogó harmadik helyére Balogh Eszter álhatott fel. Esztert a versenyen elért eredményének hátteréről kérdeztünk. 

Dmlab: Szia Eszter, gratulálunk a helyezésedhez. Elsőként mit szeretnél megosztani magadról? 

Eszter: Eredetileg közgazdász végzettségű vagyok, korábban a jegybankban dolgoztam különböző alkalmazott kutatási projekten. A CEU Business Analytics MSc képzésének elvégzésével párhuzamosan fordultam a data science irányába, jelenleg a Raiffeisen Bankban dolgozom data scientistként. 

Volt-e korábbi tapasztalatod vagy bármilyen a verseny témájához kapcsolódó iparági ismereted, amely segített, hogy sikeres legyél ezen a versenyen? 

Azt hiszem, sokat segített a közgazdasági hátterem, illetve a banki tapasztalatom. Közgazdászként nem voltak idegenek számomra a versenyben rendelkezésünkre bocsátott változók, ezt a feature engineering-nél ki is használtam. Emellett több éve a bankszakmában dolgozom, gyakran előfordul, hogy mérlegadatok szolgáltatják az inputot egy-egy projektemhez. 

Csináltál-e feltáró adatelemzést az adatokon? Mi volt a legérdekesebb észrevétel/összefüggés, amit az adatokban találtál? 

Igen, minden projektemet azzal kezdem, hogy átnézem a változókat – milyen típusú változóból mennyi van, van-e és mennyi hiányzó adat – illetve ábrázolom az eloszlásokat és a kétváltozós összefüggéseket (pl. scatter plottal). 

Ebben a feladatban is hasznosnak bizonyult ezzel foglalkozni, mert így hamar kiderült, hogy az előző évi export kiemelkedően jól magyarázza a célváltozót (annyira, hogy már egy egyváltozós lineáris regresszió is egész jó eredményt adott). De a scatter plotot vizsgálva egy másik fontos jellemzőt is észrevettem: viszonylag sok cégre volt igaz, hogy 2016-ban még nem exportált, de 2017-ben igen (vagy fordítva), akikre nem működött jól az előző logika. Ez alapján döntöttem úgy, hogy beteszek egy klasszifikációs lépést is, amelyben azt prédikáltam, hogy a cég fog-e exportálni 2017-ben. 

Végeztél-e bármilyen adatelőkészítést az adatokon? Automatikusat vagy a domaint megismerve szakértői adatelőkészítést csináltál? 

Igen, a közgazdasági végzettségemből adódóan van némi domain ismeretem, ezt ki tudtam használni a feature engineering-nél és készítettem néhány pénzügyben gyakran használt mutatót a mérlegváltozókból, amik hasznosnak bizonyultak mind a klasszifikációnál, mind a regressziónál. 

Milyen modellezési technikákat használtál fel a verseny során? Mi alapján választottad ki a legjobbat? 

Többféle algoritmust is kipróbáltam, az egyszerűektől a bonyolultakig. Az egyszerű lineáris regresszió mellett illesztettem kvantilis regressziót, próbálkoztam regularizációs megoldással (lasso), de fixed effects modellel is – és persze a gradient boosting sem maradt ki, ami végül a klasszifikációt adta. 

A modellek teljesítményének összehasonlításához a regressziós feladatnál a versenyben is megadott metrikát (MAE) használtam, míg a klasszifikációnál a ROC görbe alatti területet figyeltem. 

Hogyan védekeztél a túltanulás ellen a verseny során? 

Nagy hangsúlyt fektettem a keresztvalidációra – a modellezés egyik első lépése volt, hogy a megadott tanuló adatból leválasztottam egy validációs adatot, és minden regressziós és klasszifikációs modell teljesítményét visszamértem azon. 

Milyen eszközöket használtál a verseny során? 

Python-ban írtam minden kódot a verseny során. Ennek egyébként az az oka, hogy eddig főleg R-t használtam, és egy ideje tudatosan keresem a lehetőségeket mind a munkahelyemen, mind a szabadidőmben, hogy Pythonban is fejlesszem magam. 

Milyen hardverkörnyezetben dolgoztad ki a megoldásod? 

Egy egyszerű asztali gépről dolgoztam (Ryzen 2600, 64 GB RAM, RTX 2060S), nem használtam felhőszolgáltatót. Habár a gép viszonylag erős – például sokkal gyorsabban futott rajta hyperparameter tuning, mint a laptopomon – valószínűleg így sem használtam ki a teljes kapacitását. Azt gondolom, hogy nem ezen múlt az eredmény, de az időfaktort tekintve mindenképp hasznos volt. 

Milyen tapasztalatokat viszel magaddal a versenyről? 

Azt a tapasztalatot viszem magammal, amit másoknak is ajánlok: mindig végezz EDA-t (feltáró adatelemzést), mielőtt nekiesel a modellezésnek és figyelj arra, hogy ne lőj ágyúval verébre – néha a legegyszerűbb modellek működnek a legjobban. 

Ha lehetne egy álom versenyed, akkor milyen problémán dolgoznál a legszívesebben? 

Szívesen kipróbálnám magam egy olyan versenyen, amelyen nagyfrekvenciájú, kellően hosszú távon rendelkezésre álló adatok az inputok, így azok idősoros jellegét is figyelembe kell venni a modellezésnél. Emellett a szövegbányászatot a data science egyik legizgalmasabb területének tartom, valószínűleg egy olyan témájú verseny is felkeltené az érdeklődésem 😊 

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Enquire now

Give us a call or fill in the form below and we will contact you. We endeavor to answer all inquiries within 24 hours on business days.