Kad pomislim Data Scientist - pomislim na osobu koja zna gomilu matematike, integrale drži u malom prstu, piše silne neke algoritme za mašinsko učenje, i sl. Popričah sa Nemanjom Čukarić, iz kompanije Grid Dynamics koji trenutno radi na outsource data science projektu za detekciju prevara u online igricama, ali već duže vreme se bavi ovim poslom o tome šta on konkretno radi i kakve savete ima za ljude koji bi okušali sreću u ovoj oblasti.
Kako izgleda jedan radni dan Data scientist-a?
Moj dan obično počinje sastankom na kome se planiraju dnevne aktivnosti i rezimira se prethodni dan. Nakon sastanka počinje rad, koji se obično sastoji iz sledećih aktivnosti: rad sa sirovim podacima, eksplorativna analiza, modelovanje korišćenjem algoritama mašinskog učenja, čitanje radova/blogova na temu obrade podataka… Često imam i sastanke sa klijentima gde se analiziraju i reevaluiraju zahtevi, prezentuju rezultati analize i slično.
Opiši nam svoju ulogu u timu..
Ja sam senior data scientist timu koji se sastoji iz data scientista, data inženjera i machine learning inženjera . Moja uloga je da na osnovu zahteva klijenta i raspoloživih podataka predložim prototip rešenja. Težište aktivnosti je u istraživanju: ispitivanje informativnosti podataka, feature engineering, pronalaženje i testiranje adekvatnog algoritma mašinskog učenja. Redovna komunikacija sa klijentom, gde iznosim rezultate istraživanja I na osnovu njih zajedno formiramo dalje aktivnosti, je neizostavan deo mog mog posla.
Omiljena stvar u poslu ti je..
Analiza podataka i osmišljavanje machine learning rešenja. Iako često zanemaren korak u kursevima o data science-u, dobro izvedena analiza podataka je ključni deo svakog procesa. Ovaj korak je takođe nešto što odnosti I najveći deo vremena, a zahteva I dozu domišljatosti. Bitno je imati na umu i problem kompleksnosti i interpretabilnosti rešenja, tako da predloženo rešenje ne mora uvek da uključuje algoritam mašinskog učenja. Treba biti svestan “publike” kojoj je rezultat namenjen.
A manje omiljeni deo posla? :)
Analiza podataka :) Kao što sam prethodno pomenuo, ovo je aktivnost koja oduzima najviše vremena. Ako podaci nisu “sređeni”, a najčešće nisu, puno vremena se provodi u analizi kvaliteta, ispitivanju informativnosti I generalno, sređivanju podataka. Proces je manuelan I iterativan, pa stoga može da bude zamoran.
Šta je najveći izazov za tebe?
Najveći izazov je komunikacija sa klijentom, koji čine ljudi kako iz tehničke, tako iz biznis sfere. Dešava se da klijent nije svestan kakvim podacima raspolaže, pogotovu ako je u pitanju biznis. Samim tim, ni zahtevi nisu “izbrušeni”. Zato je artikulisana i jasna komunikacija sa klijentom neophodna za uspešnu saradnju i konačno, dobar ishod. Mislim da je ova veština trenutno neadekvatno pokrivena u programima tehinčkih i prirodnih fakulteta, odakle većina data scinetista dolazi.
Koje su veštine potrebne da bi bio odličan Data scientist?
Pre svega želim da naglasim da je u oglasima za posao Data Scientist pozicija prilično nedefinisana - kreće se od data engineeringa, preko klasičnog softver developmenta, machine learning modelovanja, business intelligence… Tako često vidimo oglase koji navode podužu listu veština koje kandidat treba da poseduje. Iz ovakvih oglasa može da se zaključi bar jedna stvar – poslodavac ne zna šta mu treba, pa se vodi logikom “ako ne znam šta mi treba, sve mi treba”.
“Osnovi paket” potrebnih veština bih podelio u tri kategorije:
1) Software development – osnovi programiranja i poznavanje standardnih data science alata,
2) Matematika i statistika – linearna algebra, osnovi matematičke analize, verovatnoća I statistika, teorija mašinskog učenja,
3) Veština komunikacije – o ovome sam već govorio.
Uvek je dobro imati domensko znanje, npr. data scientist koji radi u logistici bi trebalo da se što vise upozna sa oblašću , a ne da slepo primenjuje machine learning algoritme i nada se najboljem. Važnost svake od ovih grupa veština za određeni poslao je promenljiva. Tako su neki data scientist bliži data inženjeringu, neki istraživanju i machine learning modelovanju, a neki produkciji.
Alati koje jedan Data scientist koristi u svakodnevnom radu su…
Opet bih alate podelio u nekoliko grupa. Ono sto trenutno koristim: standardni Python alati za obradu podataka (numpy, pandas, scikit-learn, pytorch, matplotlib), alati za analizu grafova (networkX, pytorch Geometric), SQL, servise u okviru AWS okruzenja, airflow… Na prethodnih projektima sam koristio R, alate za obradu jezika, vremenskih serija itd.
Alati koji su danas na raspolaganju su mnogobrojni i ne treba se grčevito držati određenog izbora alata. Tako se često pojavljuju diskusije na temu R vs Python, tensorflow vs pytorch,…. Ovakvi izbori su manje značajni, pogotovu na početku. Izaberite određeni skup alata i kroz njega pre svega naučite kako se radi sa podacima. Ako već znate Excel a ne znate osnove obrade podataka, zašto ne biste učili kroz alat koji već poznajete – tabela je ista radili vi sa njom u Python-u, R-u, Juliji ili Excelu. S druge strane, ako je potrebno da celo rešenje spakujete u aplikaciju, verovatno ćete to najlakše da uradite u Pythonu. Ako tražite okruženje sa najvećim skupom funkcionalnosti, najveći ekosistem imaju Python i R.
Koje savete bi dao ljudima koji žele da se bave tvojim poslom - šta da uče, na šta da obraćaju pažnju?
Učite osnovne stvari – osnove verovatnoće i statistike, linearne algebre, mašinskog učenja i programiranja. Uporedno izaberite neki skup alata za obradu podataka (u skladu sa prethodnim iskustvom i sklonostima) i praktikujte ono što ste naučili. Obilje podataka je dostupno – pronađite za vas interesantan probem i radite na njemu. Povezujte se sa ljudima. Data science zajednica u Srbiji je prilično velika i mesto za vas sigurno postoji.
Hvala, Nemanja za odvojeno vreme i objašnjenja!
4 komentara