Women in Data Science (WiDS) konferencija – online izdanje 29.04.2020.

Druga Women in Data Science (WiDS) konferencija u Subotici, koja se ove godine održala u online formatu okupila je pet fantastičnih žena predavača i preko 100 gledalaca. Snimak cele konferencije možete videti i na našem YouTube kanalu:

Na raspolaganju su vam i prezentacije govornika:

Posebno želimo da istaknemo i Tatjanu Kecojević, organizatorku ove konferencije i osnivača Sister Analyst, organizacije koja ima za cilj osnaživanje žena iz različitih oblasti u okviru data scinece zajednice.

The Women in Data Science (WiDS) inicijativa ima za cilj pružanje podrške i osnaživanje svih data science naučnika širom sveta. Sve je počelo još 2015. godine , u vidu konferencije organizovane na Stanford univerzitetu i preraslo je u globalnu organizaciju i preko 150 konferencija koje se organizuju širom sveta svake godine.

Webinar: Ispitivanje procenta pogrešnog citiranja u medicinskoj naučnoj literaturi

Na Webinaru održanom 30. aprila, Prof. dr Nataša Milić i saradnici u nastavi dr Vedrana Pavlović i dr Ognjen Milićević, na katedri za medicinsku statistiku i informatiku sa Medicinskog fakulteta u Beogradu, govorili su o projektu čiji je cilj ispitivanje procenta pogrešnog citiranja u medicinskoj naučnoj literaturi.
U okviru projekta, istražili su faktore povezane sa pogrešnim citiranjem i definisali preporuke koje autori, mentori i časopisi mogu iskoristiti da bi otklonili greške u citiranju.

Cilj prezentacije bio je da se slušaoci upoznaju sa projektom ali i da se naši gosti povežu sa stručnjacima i entuzijastima iz industrije koji bi im svojim idejama i ekspertizom pomogli da ovaj model istraživanja prenesu i na društvene mreže. Ideja je pravljenje baze podataka koja prvenstveno služi za kvantifikaciju grešaka, njihovo prenošenje lancima citiranja i na kraju faktorima koji su sa tim greškama povezani. Dodatni benefit može biti i unapređenje stanja NLP-a vezanog za srpski jezik dodatnim resursima i sticanje dodatnih saznanja o lošem razumevanju referenci na internetu.

Ukoliko imate ideju i želju da im se na ovom projektu priključite, znate kako biste mogli da doprinesete, slobodno možete kontaktirate nekog od govornika, ili se možete javiti i nama, kako bismo vas povezali. 

Nadamo se da je ovaj webinar samo uvod za buduća okupljanja na ovu temu, jer bismo voleli da se rad na ovom projeku nastavi i da našim gostima u tome na neki način pomognemo.

Women in Data Science 2020 #WiDS konferencija – online izdanje 29. aprila

Pozivamo vas da se prijavite na ovogodišnje internacionalno ONLINE izdanje Women in Data Science 2020 konferencije.

Women in Data Science 2020

Bićete u prilici da čujete neke od najznačajnih žena eksperata u Data Science oblasti. Očekuje vas razmena znanja, iskustava i druženje u okviru data science zajednice.

Ne propustite priliku da uz besplatnu registraciju budete deo ovog događaja, zakazanog za 29. april 2020.

Cilj konferencije je promovisanje DS-a, razmena znanja i stvaranje DS zajednice među ženama. Zbog situacije sa COVID-19 pandemijom, konferencija se seli na internet, a program sadrži pet prezentacija koje su direktno angažovane u svetu nauke o podacima.

Razgovori će pružiti priliku da se čuje o napretku i istraživanju u brojnim domenima podataka. Imaćete uvid u to kako napreduju neki od vodećih stručnjaka i moćićete da se povežite sa potencijalnim mentorima na ovom polju.

Više informacija o konferenciji i svim govornicima možete naći na linku: https://suwids2.netlify.app/

Direktan link za prijave: https://event.webinarjam.com/register/4/wy155tq

Upravljanje tokom obrade podataka koristeći Apache Airflow

Upravljanje radnim tokovima postalo je uobičajena potreba većine kompanija koje automatizuju svoje procese obrade podataka. Ovi procesi moraju se izvoditi prema rasporedu i obično imaju skup zavisnosti od drugih procesa. Uvek postoji jednostavni cron job za početak rada. Sledeći korak napred su skripte koje pokreću druge skripte i to može da funkcioniše na kratko vreme. Zatim se pojavljuju jednostavni alati za rešavanje problema poput skladištenja statusa ovih procesa i njihovih zavisnosti. Obično ova rešenja rastu reaktivno, ali ne omogućavaju jednostavno skaliranje.

Đorđe Marjanović – data engineer u kompaniji Content Insights, na Data Science Srbija Webinaru, održanom 23. aprila, govorio je o upravljanju tokom obrade podataka koristeći Apache Airflow.

Fokus ove prezentacije je Apache Airflow platforma za kreiranje, izvršavanje i monitoring tokovima radnih procesa. Ovaj open-source alat omogućava beskonačno skaliranje i koriste ga kompanije kao što su Airbnb, Google, Lyft, PayPal i dr. U januaru 2019. godine proglašen je za Top-Level projekat Apache Software Foundation. Cilj prezentacije je da se slušaoci upoznaju sa ovim alatom, njegovim mogućnostima i načinom funkcionisanja. Đorđe nam je pokazao i kako firma Content Insights koristi Airflow.

 

Kako početi u Data Science-u?

Nakon što smo krajem marta održali jedan meetup na temu “Data Science – šta je to”, javilo mi se puno ljudi da im pošaljem neke uvodne materijale koji bi im pomogli da krenu sa učenjem.

Trebalo mi je mnogo vremena da sednem i krenem da sastavljam listu, jer izvora je mnogo, i ono u šta sam duboko sigurna je da ću na kraju završiti sa rečenicom – najbolje je da kreneš sa nekim realnim primerom koji je tebi zanimljiv, jer se najviše uči kroz vežbu. Pritome, ne postoji neko zlatno pravilo po kome bi taj put učenja trebalo da se odvija, pa je baš nezahvalno i napraviti neki spisak materijala i smernica, a osigurati da se time ne unese “bias”, odnosno prokletstvo tog “usmerenog” kretanja, jer sam ja tako učila, pa jedino tako može. Pored toga, ja sam neko ko se isključivo bavi primenom napredne analitike u okviru biznisa, gde je glavni fokus izmeriti performanse pomoću neke mere uspeha kao što su profit, ili troškovi. A napredna analitika se može koristiti u raznoraznim naukama i oblastima istraživanja, i ne mora biti vezana za poslovni svet.  Međutim, došla sam na jednu sjajnu ideju da šta god ovde napisala, dozvolim kolegama iz struke da ovu listu prošire, ili da i oni podele svoje iskustvo, tako da ih ovim putem pozivam da daju svoj mali doprinos, i tako postanu pokretači velikih stvari.

FAQ su neizbežna sekcija ovog teksta, i doći ćemo do njih, ali pre toga bih želela da se osvrnem na neke osnove koje je neophodno da spomenem, kako bih pozvala na razmišljanje, i možda probudila inspiraciju onima koji bi želeli da se upuste u Data Science vode.

Jedan ooogroman disclaimer na samom početku – ako očekujete od ovog teksta da vam bude kristalno jasno kako da sutra krenete i šta prvo da učite – budite svesni da je to praktično nemoguće. Pored toga što sadržaj, kompleksnost i sfera Data Science-a kojom ćete se baviti pre svega zavisi od vašeg interesovanja i predznanja, Data Science je toliko široka oblast da bi bilo potrebno proći ceo jedan program u nivou osnovnih akademskih studija da biste mogli da kažete da imate neku baznu osnovu. Ono što je moj cilj je da vam ovim tekstom pomognem(o) da razvijete pristup učenju, da budete u svakom trenutku svesni nekih činjenica koje ovde navodimo, a materijale i kurseve ćete potom tražiti i sami. 🙂 Međutim, neka lista proverenih kurseva nije na odmet, tako da ćemo je prikačiti uz ovaj tekst. 

Preduslov za sve

Koliko god privlačan bio, Data Science nije za svakog. Kao i bilo koje drugo zanimanje, zahteva posvećenost. Ono što je osnovni preduslov za uspeh u ovoj oblasti jeste da mora da se voli. Dakle, zaista treba da vas interesuje analitika, da volite da “rudarite” po podacima danonoćno, kako biste iz istih izvukli maksimum. 

U Data Science-u takođe važi zlatni Pareto. 80% je prljavog posla, u smislu pripreme i inženjeringa podataka, dok je ovaj “fancy” deo koji se tiče samih modela češće tek nekih 20%. Modeli postoje, i ako koristite R ili Python biblioteke, uglavnom se svedu na svega par linija koda. Ono što je veći problem je izvlačenje maksimalne informativne moći iz podataka, i naravno pronalaženje optimalne konfiguracije modela. Na kraju, model je nemoćan, ukoliko podaci nisu dobri – “garbage in, garbage out”.

Ono što se često zanemaruje u Data Science-u je taj značaj eksploratorne analize. Dešava se da se koraci preskaču, od želje da se što pre krene sa privlačnim i sofisticiranim modelima mašinskog učenja. Međutim, dobra eksploratorna analiza je nekad i više od pola obavljenog posla. Tu se radi sa podacima, ulazi se u njihovu prirodu, stiče se razumevanje, na osnovu kojeg su jasni prediktivna moć i ograničenja koja postoje u skupu podataka.

Ako ne volite to tzv. rudarenje po podacima, i preskačete eksploratornu analizu, vrlo verovatno nećete tako brzo napredovati u poslu. Ili prosto – ovo nije za vas. I to je sasvim okej, pronaći ćete nešto drugo što vam bolje fituje. U ovom tekstu možete da pronađete još detaljnije objašnjenje i argumente koji se tiču početaka u Data Science-u, prevelikih očekivanja, i realnosti koja ne odgovara istim.

Data Science vs. Machine learning vs. Artificial intelligence

O ovome sam pričala i na webinaru, tako da neću da se ponavljam, ali jako je bitno da razgraničite da ova tri pojma nisu istva stvar, i da postoji povezanost među njima, a da dokle god mislite da su ista stvar – lutaćete. Možda će vam ovaj tekst pomoći da malo bolje razumete razliku. Ukoliko ne, ima dosta varijacija na temu, izaberite svoju. Nećete mnogo pogrešiti. 

Gradivni elementi Data Science-a

Kako se najćešće tvrdi, Data Science je spoj različitih oblasti – biznisa, odnosno datog domena, IT-a i matematike, odnosno statistike. U zavisnosti od predznanja, kada krećete u Data Science-u, vaše veštine su jače u nekoj od ovih oblasti, a slabije u drugoj. I to je sasvim u redu. Ono što je bitno jeste da prepoznate šta je to vaša jača strana, jer vas to razlikuje od drugih. Kada znate šta je vaša jača strana, a šta je to što vam fali od veština – jasno vam je šta treba da učite kako biste napredovali. Npr. ako dolazite iz društvenih nauka, vi odlično znate specifičnosti oblasti kojom se bavite, ali vam fali znanje iz IT-a, a možda i statistike. Ovo znači da, ako želite da se jednog dana bavite computer visionom npr., prvi kurs koji treba da pređete treba da bude vezan za programiranje. I to ne savladavanje biblioteka (to dolazi kasnije), već elementarno programiranje, koncepti datog programskog jezika, paradigme, kontrola toka, strukture podataka, pa zatim da krenete sa matematikom i algoritmima. Ukoliko dolazite iz IT-a, već bi trebalo da dovoljno dobro poznajete programiranje i matematiku, ali vam fali malo detaljnije znanje statistike, tako da bi neki kurs za statističku analizu dobro došao. Domen, odnosno biznis – je nešto što se savladava sa iskustvom. Ne postoji savršeni kurs koji može da vas pripremi za to, ali naravno uvek možete pročitati neku knjigu, koja će vam približiti domen u kome biste želeli da radite. Na kraju, možda ste apsolutni početnik, i mislite da vam fali elementarno znanje iz svih ovih oblasti. Krenite sa jednom, kada savladate neku elementarnu osnovu, krenite sa drugom, i tako dok ne budete dovoljno spremni da možete (ili ne budete primorani) da žonglirate i u hodu učite više stvari. 

Profili Data Scientist-a

Što se tiče profila Data Scientista, u zavisnosti od toga čime se bave u svakodnevnom poslu, kakvi su zahtevi koje rešavaju i šta je potrebno od veština da poseduju kako bi na njih odgovorili – razlikuje se nekoliko tipova Data Scientista. Svima je zajedničko da vole Data Science i Machine learning, međutim, razlikuju im se fokusi. 

Analitičari su više fokusirani na eksploraciju, utvrđivanje paterna i objašnjavanje određenog ponašanja i uzročno-posledičnih veza. Dakle, više su po prirodi statističari, nego što su developeri. I malo teže barataju sa produkcionalizacijom rešenja i serviranjem modela.

Inženjeri najviše vole da rade sa deep learning problemima, gde ima dosta kompleksnih formulacija, gde mogu da isprobavaju različite arhitekture mreža i da se igraju sa različitim konfiguracijama.

Developeri su uglavnom fokusirani na isporuku modela, kako će se sve to realizovati u produkciji, da li će biti skalabilno i responzivno, kako da kod bude čist i lako nadogradiv, kako će se neki ML model retrenirati itd.

Story-tellerima je najbitnije kako će rešenje da prodaju biznisu. Šta je osnovni benefit njihovog rešenja, kako će biznis od toga profitirati, i zašto je bilo bitno baviti se određenim problemom.

Profil dosta zavisi i od interesovanja, kao i polazne osnove. Nećete na isti način pristupati Data Science-u ukoliko dolazite iz biznis domena, i npr. iz sveta IT-a. Međutim, odgovornosti i zahtevane veštine zavise i od same kompanije. Prvenstveno od toga da li kompanija ima mogućnost da zapošljava više različitih profila kao što su Data Scientist, Data Engineer, Machine Learning Engineer, Developer i DevOps. Ukoliko da – onda će sigurno posao Data Scientista u ovoj kompaniji da se razlikuje od posla u kompaniji koja ne može sebi da priušti sve te profile – te će Data Scientist biti u obavezi da prokriva više sfera.

Metodologije razvoja

Jedna od najjednostavnijih metodologija razvoja analitičkih projekata je CRISP-DM metodologija. I sve druge su uglavnom varijacija na temu, ako se dobro upoznate sa ovom, imaćete već stabilnu osnovu da odradite svoj prvi mini-projekat za vežbu. Metodologije razvoja su bitne zato što uređuju način na koji se pristupa nekom problemu, kao i razvoju rešenja, osiguravaju fokus kao i rezultat. 

Rešenje vs. Proizvod

Kada pričamo o Data Science projektima, uglavnom se odvajaju dve vrste projekata: rešenja i proizvodi. Više o tome možete pronaći npr. ovde.

Rešenja su projekti koji su specijalizovani za određeni problem, dakle razvijeni su za potrebe datog domena, na osnovu definisanog problema, specifične su prirode, i retko mogu da se 1/1 primene na isti način kod više različitih klijenata, ili u različitim biznis domenima. Rešenje može biti npr. neki izveštaj,  fajl sa rezultatima, ili neki dashboard. Ukoliko projekat uključuje razvoj modela predviđanja neke vremenske serije, npr. prodaje u nekom maloprodajnom lancu, koje specifično odgovara modelovanju ponašanja tog maloprodajnog lanca, u smislu sezonalnosti, trendova, posebnih akcija, i tako dalje – to je rešenje razvijeno specifično za potrebe tog maloprodajnog lanca, i ne može se tek tako primeniti u domenu telekomunikacija npr. gde se pojam sezonalnosti i trenda drugačije doživljava i opisuje.

Proizvodi, i to data proizvodi, su projekti koji integrišu naprednu analitiku i alate mašinskog učenja, kako bi unapredili poslovanje u ulozi decision-support sistema. Proizvodi su kreirani tako da su lako skalabilni, i da mogu da se upotrebe u okviru različitih sistema i različitih biznis domena, jer mogu da rešavaju više različitih problema, te tako mogu lakše da se prilagođavaju potrebama klijenata. Proizvodi zahtevaju jako detaljno planiranje, temeljno razvijenu arhitekturu i dosta tehničkih funkcionalnosti, kako bi mogli da odgovore na različite potrebe klijenata. Ako pravimo analogiju sa primerom rešenja, proizvod bi podrazumevao tehnički sistem koji omogućava da se na osnovu vremenske serije dobije predikcija, bez obzira na to da li se radi o maloprodajnom lancu, telekomunikacijama, logistici, i tako dalje.

Već bi trebalo da vam se polako stvaraju obrisi onoga da svaki od ova dva tipa rešenja podrazumeva (mada, ne nužno) različiti skup veština i znanja. Rešenja mogu da variraju što se kompleksnosti tiče, dok su proizvodi izuzetno tehnički zahtevni, i potrebno je veliko iskustvo u smislu developmenta, kako bi se razvio proizvod koji je responzivan, skalabilan i pouzdan. Naravno, oba zahtevaju poznavanje metoda i alata napredne analitike.

Tako da, u zavisnosti od toga šta je vama zanimljivije, ili šta je vašem potencijalnom poslodavcu glavni fokus razvoja, postoji potreba da razvijate tehničke veštine koje će vam pomoći da budete kompetentni za određene pozicije na koje biste voleli da konkurišete.

R vs. Python vs. nešto treće

Ovo je zaista (skoro) nebitno. Kada sam kretala sa učenjem, pisala sam rekurentu mrežu u Javi. I od tada, Javi nisam ni prišla (sem kad mi Spark izbaci neku grešku 😀 ). Ono što je zaista bitno je da hvatate koncepte. Lako ćete izguglati ono što vam treba. Koncepti dataframe-ova, grupisanja i agregiranja postoje i u R, i u Pythonu, i u Sparku, a pre svega su inspirisani manipulacijama koje se mogu raditi u SQL-u, tako da, već vidite o čemu pričam. Ako govorimo o modelima mašinskog učenja, tu se dešava da ima nekih varijacija što se tiče implementacije u različitim jezicima, međutim, najbitnije je razumeti kako algoritam radi, a implementaciju možete savladati kroz dokumentaciju ili Stackoverflow. 

R je fantastičan jezik, ima odličan community, dosta biblioteka i funkcija, fantastične mogućnosti vizualizacije. I ukoliko ne mislite da se bavite razvojem ozbiljnih tehničkih sistema (za koje vam ipak treba programski jezik namenjen toj svrsi), R je dobar izbor.

Kažu da je Python drugi najbolji jezik za sve. Ako vam ovo nešto govori – krenite tim putem. 🙂 U suštini, general purpose je, možete peglati ML, možete peglati Deep learning, možete praviti vizualizacije i interaktivne dashboarde, kao i API-eve, bukvalno  – štagod vam padne na pamet. Sa tim što ne mogu da tvrdim da sve što postoji u R-u, postoji i u Pythonu. Što ne znači da se i to uskoro neće promeniti.

Mnogi za scientific programming, a u poslednje vreme – i za naprednu analitiku, koriste Juliu. Međutim, mislim da je Julia jos daleko od nivoa popularnosti, podrške i community-ja koji imaju R i Python.

Spark je takođe dobra opcija, ali Spark nije uvek nužna opcija. Uglavnom, ukoliko vam ne treba osnovna prednost Sparka – a to je mogućnost paralelizacije kompleksnih procesa nad velikom količinom podataka – po meni, ne bi trebalo da vam je prvi izbor. Opet ako se čak i desi da treba da se shiftujete na Spark, nemojte se plašiti, sve može da se savlada.

Postoje i različiti alati za razvoj ML modela – Orange, RapidMiner, SAS – gde sve funkcioniše po principu drag&drop, ali opet je bitno da razumete metodologiju razvoja i modele koje upotrebljavate, kako biste napravili sistem koji radi. Ako se ne pronalazite u programiranju, ovo može biti dobar izbor.

Moram li da čitam naučne radove/imam PhD?

PhD je najveća zabluda sa kojom sam se susretala tokom ovih godina, čitajući različite tekstove, i FAQ na temu kako krenuti sa Data Science-om. Ono što treba da razumete – PhD je bitan ukoliko se bavite naučno-istraživačkim radom. I onda kada vi razvijate nove algoritme mašinskog učenja, i to ne kao titula, već u smislu znanja i iskustva koje je neophodno da bi se novi algoritmi razvijali. Ovo podrazumeva da imate izuzetno poznavanje linearne algebre, numeričke analize, kombinatorike, i mnoštva još stvari (za šta je zaista potrebna višegodišnja posvećenost). Sa druge strane, PhD iz nekog određenog domena može biti korisna referenca, budući da u tom slučaju poznajete specifičnosti domena u kom biste mogli da primenjujete naprednu analitiku. Međutim, isto tako može biti i problematično sa siromašnim praktičnim iskustvom. Da li će vam titula pomoći da brže, ili da uopšte dođete do posla u Data Science-u? Ne mora da znači. Istina je negde na sredini. 

Što se tiče čitanja naučnih radova – ovo je obavezno. Data Science podrazumeva svakodnevno prelistavanje, iščitavanje i poređenje naučnih radova, jer akademija je ta koja (zajedno sa industrijom) pomera granice. Kada radite na nekom Data Science problemu, najbitnije je da budete svesni limita, šta je sve što je moguće odraditi. Granice su definisane onim dokle je akademija stigla sa istraživačkim radom, i onim što je u industriji moguće primeniti. Kada ste svesni ovih mogućnosti – moći ćete da rešite bilo koji problem sa kojim se susretnete.

Zašto su influenseri važni?

Pored knjiga, kurseva, i blog postova, postoji još jedan, “instant”, način da dolazite do relevantnih informacija i saznanja, a to su društvene mreže.  LinkedIn, Reddit i Twitter su do sada moji favoriti, mada naravno tu su i ostali. Ovim putem možete da pratite lidere u ovoj oblasti, da uvek budete u toku, da se povežete sa ljudima sličnih interesovanja i da delite iskustva i znanja, kao i da zauzvrat, dobijate. Ja sam u svom tekstu već pričala na ovu temu, i ono što mogu reći posle godinu dana je da – i dalje tako mislim. 🙂 

Ok, hajde da konkretizujemo stvari:

 

 

https://www.coursera.org/specializations/recommender-systems?#courses

 

 

 

  • DataCamp

 

 

  • Podcasts

 

 

  • Books

 

 

  • Blogs

 

 

  • Deep learning

 

 

  • Communities

 

Naredni koraci

  • Uključi se u community – posećuj sve moguće meetup-e, konferencije i predavanja, na takvim događajima uvek možeš dobiti dobar savet, ideju, nova znanja i sl.
  • Upoznaj se sa teorijskim osnovama napredne analitike (metodologije razvoja, eksploracija podataka, statistički testovi, algoritmi mašinskog učenja,…)
  • Pronađi primer koji ti je zanimljiv, kroz koji bi bilo moguće da primenjuješ to što učiš i proširuješ svoje znanje i iskustvo (UCI machine learning repository i Google dataset search repository imaju na milione open datasetova, sigurno ćeš pronaći nešto što tebe zanima)
  • GUGLAJ 
  • Projekat na kome radis okači na svoj GitHub profil, to je obavezna i najbitnija stavka u tvom CV-u
  • Napravi izveštaj u kome ćeš objasniti šta je rađeno, koji je problem rešavan, šta su koraci, koji su to najveći izazovi bili, koji zaključi su izvedeni i na osnovu čega, koje su mogučnosti za poboljšanja, …
  • Pitaj nekog iz community-ja ko se bavi oblastima koje te zanimaju za savet kako da kreneš baš u toj oblasti (data science je širok pojam)
  • Apliciraj za praksu/posao, gde ćeš uz mentora najbolje i najbrže učiti i razvijati se. Ukoliko postoji tehnički test prilikom selekcije – i to je savršena prilika da naučiš nešto. Iskoristi je!

Acknowledgements

Hvala svima koji su pomogli da se ovaj dokument realizuje, pre svega mojim kolegama iz Things Solver tima (hvala Anđela, Jasmina, Tijana, Marija, Strahinja, Marko, Bogdane). A posebne zahvalnice idu i mojim kolegama Bojani Soro iz Content Insights-a i Srđanu Šantiću iz Logikka-e. Zajedničkim snagama, sastavili smo listu početnih materijala i oblikovali ovaj dokument. HVALA SVIMA! Nadam se da će ovaj dokument biti od koristi početnicima, i da ćemo ga putem zajednice poboljšavati i obogaćivati. 

Autor : Valentina ĐorđevićHead of Data Science u kompaniji Things Solver