Blog

Blog je mesto gde možeš da čitaš o navikama IT-evaca, najavama IT dešavanja, aktuelnostima na tržištu, savetima i cakama kako da uspeš na ovom dinamičnom polju.
Mi pratimo trendove, na tebi je da se zavališ u fotelju i čitaš :)

Tag: R (9 rezultata)
22.02.2024. ·
1 min

R programiranje | Besplatan kurs

EdX je osnovan od strane Harvarda i MIT-a sa ciljem da najbolje obrazovanje na svetu bude dostupno svima. Ova platforma nudi mogućnost za profesionalni napredak u gotovo svakoj oblasti i za sve nivoe znanja. R jezik ima ključnu ulogu u analizi podataka i često se koristi kao programski jezik prilikom rada u oblasti data science i analitike. Naučićeš uobičajene strukture podataka, osnove programiranja i kako manipulisati podacima, uz pomoć R programskog jezika. Na ovom kursu steći ćeš znanje kako da napišeš jednostavan program koristeći RStudio, manipuliseš podacima u data frame-u ili matrici, i završiš finalni projekat kao data analitičar koristeći Watson Studio i Jupyter. Nije potrebno prethodno znanje R jezika ili programiranja. Kursu možeš pristupiti putem linka.  

HelloWorld
2
06.11.2023. ·
3 min

Zašto zaposleni treba da koriste Excel i Python umesto komplikovanih programskih jezika?

Ako želite da izvučete maksimalnu vrednost iz podataka, naučite zaposlene da koriste Python i Excel umesto specijalizovanih programskih jezika. Istraživanje koje je sprovela kompanija NewVantage Partners pokazalo je da je 93.9% ispitanih osoba na visokim funkcijama očekivalo da će povećati ulaganje u podatke u 2023. godini, dok svega 23.9% organizacija svoje poslovanje vodi na osnovu velikih podataka. Ovi rezultati doveli su do pitanja – gde će navedene investicije ići, ako ne na promenu načina na koji kompanije funkcionišu, i šta sprečava te menadžere da svoju viziju budućnosti vođene podacima nametnu kompaniji? Kratak odgovor je – ljudi. Od tih istih ispitanih menadžera, 79% tvrdi da su kulturološki problem najveća prepreka ulasku u budućnost vođenu podacima. Čini se da je lako reći da poslovanje kompanije vode ozbiljni podaci, ali je to mnogo teže sprovesti u delo i implementirati jer su na kraju dana ljudi ti koji udišu život u posao, a ne podaci. Ako ovo uzmemo u obzir, ključ je obezbediti podatke koji osnažuju ljude, ali ih ne zamenjuju. Python i prijatelji Pre više od jedne decenije, Svetlana Sikular, analitičarka kompanije Gartner, iznela je dve ključne istine o podacima koje vrlo često zaboravljamo: “Organizacije već imaju ljude koji poznaju svoje podatke bolje od mističnih data naučnika” i “učenje Hadoopa je lakše nego učenje kompanijskog posla”. Jedan od načina da se unapredi inteligentna upotreba podataka jeste spuštanje granice programske pismenosti. Ma koliko misteriozni data alati mogu biti, mnogo značajniji alat jeste način na koji zaposleni posmatra poslovanje kompanije jer stručniji zaposleni mogu da postavljaju inteligentnija pitanja i dolaze do dragocenijih zaključaka iz dostupnih podataka. Iz tog razloga, fokus svake kompanije bi trebalo da bude veća dostupnost data alata zaposlenima. Napori da se Microsoft Excel učini ključnom komponentom analize podataka je nešto što treba ohrabrivati s obzirom na to da postoji znatno veći broj ljudi stručnih u Excelu nego sa TensorFlow ili Hugging Face modelima. Isto važi i za Python. Iako R i drugi specijalizovani jezici nastavljaju da igraju značajnu ulogu, Python je jedan od najvećih pokretača AI produktivnosti za sve veći broj data analitičara. Ako planiramo da podatke stavimo u centar poslovanja svake kompanije, onda bi dominantan jezik trebalo da bude onaj koji je najpristupačniji najširem broju zaposlenih. A to je Python. Ali, i SQL. Nedavna analiza popularnosti programskih jezika pokazala je da se Python i SQL nalaze na prve dve pozicije. Python je definitivno na prvom mestu sa velikom prednošću - koja nastavlja da raste. Ova dva jezika zajedno predstavljaju dobru kombinaciju s obzirom na činjenicu da se uklapaju u veštine koje mnogi zaposleni već imaju i samim tim nema potrebe da se oni uče novim načinima za rad sa podacima. Generativni AI je još jedan način na koji zaposleni mogu da se ohrabre na rad sa podacima. Međutim, rezultati i odgovori koje AI može da pruži i dalje nisu dovoljno dobri po pitanju tehničke preciznosti, mada je prozaičnost tu. Na kraju dana, poenta nije tehnologija, već ljudi koji je koriste – i to je stvar u kojoj mnoge kompanije greše. Osnaživanje zaposlenih Kako NewVantage izveštaj navodi, svake godine, velika većina ispitanih izjavljuje da su ključni izazovi na putu ka data transformaciji organizacija ljudske prirode – kultura, ljudi, procesi i same organizacije – a ne tehnološke. Sa druge strane, veliki broj kompanija fokus stavlja na probleme u čijoj srži nisu ljudi poput data modernizacije, data proizvoda, veštačke inteligencije i različitih data arhitektura. Drugim rečima, polako shvatamo da postoji problem sa ljudima, ali pokušavamo da ga rešimo tehnologijom. Ključna stvar u svakoj kompaniji su ljudi koji interpretiraju dostupne podatke, ne sami podaci. Ti ljudi već rade svoj posao, a ključna stvar jeste shvatiti kako da se bolje iskoriste alati koje već poznaju ili lako mogu da se nauče.

28.09.2023. ·
10 min

Kako da učite Data Science? (2) Formalno obrazovanje ili ne?

Evo nas na vreme za moje drugo izdanje Data Science Letters. Nastavljamo sa diskusijom o tome kako ući u Data Science i postati profesionalac u njoj, koje su pretpostavke, kakav background je poželjan, šta i koliko treba da učimo, na koji način da razmišljamo i kako sebe da dodatno motivišemo. U ovom izdanju, kao što sam obećao, hoću da se pozabavim pitanjem koje danas postaje sve zanimljivije i zanimljivije: da li nam je potrebno formalno obrazovanje i koliki je značaj naših akademskih titula za rad u Data Science? Kao što sam naglasio već u prvom izdanju ovog newsletter-a: mnogobrojni su i čudni putevi gospodnji, a vi čitate o samo jednom od njih. Autorovo lično iskustvo je neraskidivo od onoga što on piše i načina na koji razmišlja, tako da dok čitate ovo molim vas držite na umu da ja mogu da vam dam samo deo mogućeg iskustva, samo jednu perspektivu - onu koju sam sam stvorio i iz koje vidim stvari. Oslanjam se na to da posle decenija kontinuiteta u poslu koji je evoulirao iz Statistics, Quantitative Analytics, Data Mining u Big Data, Data Science, i Machine Learning možda mogu da pokušam da izvedem neke generalizacije, ali obećavam vam da ću to činiti veoma oprezno. Morate da čitate šta piše više ljudi, da razgovarate sa više ljudi, i po mogućstvu da probate da radite sa mnogima kako biste doneli zaključke za sebe. Hajde ovako: hoćete da uđete u Data Science jednog dana ozbiljno, niste naučnik, niste inženjer, imate interesovanja za analizu paterna različitih podataka, pomalo ste enciklopedista, hoćete i volite da programirate, ne bežite od matematike, fasciniraju vas vizuelizacije podataka i voleli biste da naučite kako se prave - pa, vidim vas narednih šest meseci na Google Data Analytics Professional Certificate programu na Coursera za svih $39 mesečno. U Google neće imati problem da razmatraju vašu aplikaciju za posao ako im umesto fakultetske diplome donesete ovakav sertifikat, ona čak ima i ustanovljen ekvivalent vrednosti u kreditima akademskih programa! Ovaj sertifikovani program je razvijen za uvodni nivo analitike podataka i oslanja se (naravno) na programski jezik R. Šta tek reći za poznatu Data Science Specialization u programskom jeziku R koju Johns Hopkins University već godinama nudi na Coursera: to ko prođe, i stvarno zna sve se što se tamo razmatra, ozbiljan je igrač na više zamislivih pozicija u Data Science. Ako mislite da sam sada ciničan i da kao doktor nauka gajim neku distancu prema obrazovanju putem kurseva: već dve godine, za polaznike iz Srbije i inostranstva, držim Data Science Sessions, sada već seriju šestomesečnih kurseva za Data Science u programskom jeziku R, i garantujem vam da ako to možete da prođete, naučite i izvežbate sve što je tim kursom pokriveno, ne vidim kako ne biste bili spremni za ma koju entry-level poziciju na tržištu (kurs je i planiran tako da zadovolji kriterijume koji se najčešće traže na entry-level pozicijama, dok pokriva i nešto više zanata od tog nivoa). Ok: jel' može to bez diplome neke STEM oblasti - može. Da vidimo zašto kursevi i programi rade i do koje mere. Zašto kursevi i obrazovni programi van akademije rade? Razlog je pre svega u tome što rad u Data Science zahteva praktičara - čoveka koji je u stanju da stvari koje uči i zna primenjuje na neposredne probleme, da izručuje rešenja, po čemu je disciplina uporediva (doslovce ovo mislim) sa zanatima i primenjenim umetnostima. Drugim rečima - i o ovome ćemo imati posebno izdanje newsletter-a uskoro - da li čovek mora da razume precizno, duboko i detaljno kako rade npr. optimizacioni algoritmi da bi mogao da oceni neki ML model - ne, ne mora. Pogotovo sa savremenim sredstvima za razvoj modela u Data Science, njihovu evaluaciju i serviranje u produkciona okruženja, apstrakcija od detalja takvih stvari je toliko visoka da ja mislim da neko treba da bude svestan toga (1) šta su optimizacioni algoritmi, (2) u načelu šta će pokušati da urade tj. koji problem da reše, (3) kako se oni odnose prema modelu koji se razmatra, i (4) na osnovu čega možemo da znamo da li je takav algoritam - ključan u svakom statističkom učenju - problem rešio uspešno na nekim podacima, ili nije. Više od toga treba da zna osoba koja će razvijati nove matematičke modele i suočiti sa problemom koji optimizacioni algoritam te modele može da oceni na podacima i kako ga implementirati, i to je mahom research koji se odvija u okvirima akademije ili sve češće u kompanijama kojima je research od ključnog značaja za proizvode (Google, Facebook i ekipa, rekao bih, odavno po tom pitanju šiju istraživanja na univerzitetima u Data Science i ML).  Ako hoćete to da radite (što sam ja radio do neke 2013 godine) - prvo, to i nije Data Science (može da se zove tako, ako hoćete, ali ona je primenjena, ne fundamentalna oblast) već doslovce fundamentalno istraživanje u matematici, nekoj empirijskoj nauci, i inženjeringu, drugo - za te stvari, lepo faks, pa Phd, godine laboratorijskog rada, i onda. Data Scientist čiji je posao neposredna primena modela statističkog učenja na određene podatke u svrhu rešavanja (nadamo se) dobro definisanog poslovnog problema uopšte ne mora da ima taj nivo obrazovanja da bi svoj posao radio dobro - pod uslovom da se matematike nije baš bojao toliko da nije nikad ni razumeo šta su optimizacije, čemu služe, okvirno kako rade, i ponovo, najvažnije: kako da znamo da li su nam problem rešile, ili nisu, u nekom konkretnom slučaju. Izabrao sam pitanje optimizacije samo kao primer; ima tu pregršt matematičkih i tehničkih detalja preko kojih je moguće apstrahovati, ponovo ukoliko se razume, odgovorno, čemu služe, šta rade, i kako njima bezbedno rukovati. Zbog ove razlike, kursevi za one koji hoće da uče i zagrizu rade. Gde su granice, koliki nivo znanja je neophodan? Primer. Da li bih zaposlio nekoga kao Data Scientist a da ne zna da objasni kako Gradient Boosting optimizuje seriju drveta odlučivanja i objasni mi algoritam do detalja, bih, zaposlio bih ga, ako zna da mi objasni: sve indikatore performanse (evaluaciju) tog modela (komplentu ROC analizu i izvedene metrike), da uradi njegovu kros-validaciju i tjunuje parametre u selekciji modela. Da li bih zaposlio nekoga u Data Science ko ne razume ili ne zna u ggplot2 ili matplotlib da mi nacrta površinu greške prostog linearnog regresionog modela za određene podatke i pokaže mi prstom tačku koju bi optimizacija trebalo da otkrije, ili ne zna da mi objasni šta je MLE za tek Binomijalni Logistički Regresioni model - ne, ne bih ga zaposlio. Rezon je: osobi koja zna ono prvo, to znanje neće mnogo pomoći u rešavanju neposrednih problema i učestvovanju u razvoju proizvoda ili usluga na osnovu njih (iako će ona sigurno biti sigurnija, samopouzdanija u svom radu - što i te kako vrednujem), dok osoba koja ne zna ono drugo ima sve šanse da slupa matematički model koji trenira u neki jarak (poznato još i kao: lokalni minimum :) i vrati neoptimalne rezultate, što je naravno pogubno po rešavanje ma kog problema, fundamentalnog ili primenjenog svejedno. Moji kursevi, na primer upravo Data Science Sessions u R (a uskoro će biti ponuđen i u Python), traže tačno ovu ravnotežu koju sam opisao. Ponovo: svaki stručnjak će verovatno imati svoje nijanse u pro et contra različitih pristupa, upoznao sam ljudi od onih koji misle da matematičko-tehnički detalji uopšte nisu bitni (i ti ljudi izvesno nisu u pravu) do onih koji ne bi zapošljavali u Data Science bez doktorata ni u ludilu (i niko od njih nije uspeo da mi odgovori na pitanje neposredne primene znanja takve dubine u realnim, svakodnevnim izazovima primene na tržištu). Suštinska je razlika, po mom mišljenju, da li ljude školujemo za primenu, ili za razvoj i istraživanje; budimo zato svesni da je Data Science na tržištu primena, veoma retko razvoj i istraživanje. Moje stav u tome je: čovek za Data Science mora da razume principe, i to savršeno, ali ne mora da poznaje duboke detalje svakog algoritma koji će koristiti (jer ako poznaje opšte principe dobro - znaće i da odgovorno koristi ma koji model sa kojim bude radio). Da li za te principe čovek mora da završi studije i stekne akademske titule: moj odgovor je ne, njih je moguće koncizno i čak temeljno naučiti i u okviru kursa ili nekog dužeg obrazovnog programa. Ali šta će nam onda... Akademija Ima to svoje: (1) Na kursevima je teško steći domensku ekspertizu: uzmite dva odlična polaznika nekog temeljnog Data Science kursa, i budite sigurni da u poslovima procene rizika bolje prolazi onaj koji je studirao ekonomiju ili psihologiju od onog koji nije; empirijska intucija za fenomene koji se modeliraju u primeni se bolje i detaljnije razvija tokom višegodišnjih akademskih studija. (2) Višegodišnje bavljenje nekom solidno matematizovanom, empirijskom naukom, što i dalje smatram najboljim načinom da se karijera nastavi u Data Science, je jednostavno nezamenljivo u tom smislu reči što vas vodi u najveću dubinu problematike matematičkog modeliranja u nekoj oblasti. Primer: neke 2012/13 valjda, pre nego što se odgovarajuća funkcija pojavila u jednom i sad verovatno u više R paketa, morao sam da ispišem na ruke kod za Voungov test kako bih poredio neugnježdene deskriptivne modele odlučivanja; dani su mi bili potrebni da se probijem kroz njegov naučni rad i budem siguran da nisam pogrešio negde u implementaciji. Drugi primer: ko nije video kanjone sa ravnim platoima u funkcijama verodostojnosti klase modela odlučivanja koju sam pomenuo, ne zna šta je pakao optimizacije, potpisujem. To iskustvo je zaista teško steći van konteksta fundamentalnog istraživanja. (3) Akademske titule: Za to me je najmanje briga, odmah da kažem, ali dozvolite mi da vam prepričam staru anegdotu sa američkog univerziteta na kome sam završio prve dve godine mojih doktorskih studija. Rikruteri iz velikih kompanija, sa berze i sl, znaju par puta godišnje da navrate i organizuju predavanja postdiplomcima gde im objašnjavaju kako stvari rade u poslu, kakav je job market, šta se traži, kako to sve izgleda i sl. To je za doktorante, onako ošamućene od fundamentalnih istraživanja, ispita, i prosečnih pet do šest sati sna pa tako mesecima, prilično značajno. Nekom prilikom, čovek sa berze drži predavanje pred studentima (ako me sećanje služi) filozofije i antropologije. Završi se to, prilaze filozofi i antropolozi sa pitanjem čoveče dragi kakve blage veze mi imamo sa procenom rizika investicije i predikcijom vremenske serije fjučursa tih i tih, čovek odgovara: vidite, ko god da uđe u našu firmu, mi znamo koliko vremena treba da ga obrazujemo. Ne tražim ja ovde to, nego me interesuju ljudi koji su u stanju da prežive pet godina pakla doktorskih studija. To ko može - nema ničega što ga mi posle ne možemo naučiti da radi. Tako da, da, ako mi neko donose solidan Phd i ide u Data Science, imaću poprilično više poverenja da uđem u saradnju sa njim nego sa nekim drugim. Ali to uopšte ne znači, kao što sam potencirao u ovom tekstu, da su akademske titule i formalno obrazovanje presudni. Presudno je kakav je čovek: ispite na svakom fakultetu, uključujući i doktorske studije, moguće je izlemati sa nekim ocenama, izvući neku tezu ovako ili onako, i poneti titulu. Šta je u umu, šta u srcu, a šta u prstima kad krene da se kodira, e to je pravo pitanje. Sve ostalo su znaci koji mogu i ne moraju da budu ključni. Manje me interesuje šta čovek zna (o čemu čovek govori), više me interesuje šta čovek može da uradi, a najmanje koja mu se skraćenica piše ispred imena. Ko hoće u Data Science sprema se na rad u oblasti koja ima direktne, merljive posledice: pomeriti projekat iz tačke A u tačku B, na vidljiv i objašnjiv način, je ono što se traži. Ko ima karakter za takav rad, taj ima i preduslove za ovu oblast.

HelloWorld
0
22.09.2023. ·
17 min

Kako učiti Data Science?

Za početak, o tome zašto je bitno da (a) učite Data Science rešavajući neki problem koji ste rešeni da rešite, u nekoj oblasti koja raspaljuje vašu radoznalost i znači vam, te (b) da učite Data Science funkcionalno, odn. da što pre vaše učenje pretočite u praksu koja ne samo da je korisna i vama i drugima već vas potencijalno i plaća za to da kroz rad učite; o potrebi da neprestano stvarate prilike za tako nešto i ni slučajno ne propuštate prilike nastale pukom srećom ili sticajem okolnosti. Iz prve ruke Konačno, sa skoro pedeset godina, posle programiranja čitav život počevši od moje desete godine (da, da - 8 bita i 64 Kb RAM-a 80-ih), silnih škola i rada u fundamentalnim istraživanjima koji sam započeo još 1993 a koje je potrajalo dvadesetak godina, te više od dvadeset godina karijere u onome što se nekada zvalo Quantitative Analytics, pa Data Mining, i konačno Data Science i/ili Machine Learning - rešio sam da je vreme da počnem da delim iskustvo pređenog puta. Pišem u oblasti u kojoj sam prošao sve od rada u statističkom softveru poput SPSS ili Statistica 90-ih, MATLAB, zatim R i konačno Python, u prethodnih tridesetak godina; od 64Kb u kojima treba da naučite da programirate do iskustva rada u Big Data (i to baš, baš Big Data u mom konkretnom slučaju); od statističke analize bihejvioralnih eksperimenata, anketnih istraživanja, skala stavova u oblastima istraživanja javnog mnjenja, međunarodnim odnosima, javnom zdravstvu, bankarskom sektoru, gemblingu i FMCG, do skrejpovanja i razvoja Information Retrieval sistema from scratch, mentorisanja Data Science studenata američkog edu-startapa, analize paterna ponašanja editora Wikidata koja je graf sa kojih 90+ miliona čvorova, te razvoja ML za predikciju popularnosti sadržaja na socijalnim medijima. Iskustvo je neverovatno a investicija dan danas lepo vraća, najviše time što mi omogućava da živim radeći poslove u kojima uživam, tako da mi je granica između radnog vremena, slobodnog vremena i hobija praktično izbrisana. A to je veoma važna stvar u vašem životu, stvar koju treba da se trudite da postignete: da uživate, a ne da mrzite ceo svet ponedeljkom ujutru smatrajući da je 8h radnog vremena nešto što je prosto ujedeno od vašeg života da bi finansiralo preostalih 16h. Pare nisu toga vredne, verujte mi. Počeću sa postom naslovljenim: Kako učiti Data Science? Biće više nastavaka: praktično svaku od tema i motivacija kojih se dotaknem, elaboriraću u nekom kasnijem postu. Cilj mi je da pokušam pomognem onima koji su ili tek zainteresovani za Data Science kao moguć izbor za karijeru u istraživanju ili primeni, onima koji su tek počeli da uče, onima koji su naučili i traže posao, pa i onima koji su uveliko u Data Science - jer oni su odavno već shvatili da to znači učiti doslovce svaki dan. Izbor je dobar Data Science je dobar karijerni izbor, ako vas zanima, jer je danas svugde. Doslovce: kako je IT ušao u svaku moguću i nemoguću industriju i granu, tako je danas kao suza čista istina da u data intenzivnim okruženjima (engl. data intensive environments) - čitaj: gde god ima dosta podataka - za Data Scientista ima posla. A gde danas nema dosta podataka - pa, samo u poslu onih koji još nisu shvatili da bez stavljanja informacija u pogon u poslovnom okruženju više teško da ima pravog uspeha... Nema šanse da neko pravi pogrešan izbor životnog poziva ako se opredeljuje za Data Science: gap na tržištu rada je ogroman, potražnja za njima je velika, raste konstantno, i tek će da raste, jer su deo transformacije kompletne globalne ekonomije kroz ono što danas ljudi zovu Četvrtom industrijskom revolucijom. Često se pogrešno pretpostavlja da je uloga Data Science da automatizuje sve i svačiji posao i prepusti funkcionisanje sveta i privrede autonomnim algoritmima koji iz podataka uče i donose optimalne odluke. To jeste deo posla, ali (a) ne na svakoj Data Science poziciji, (b) ima i te kako posla koji ne podrazumeva primenu čitavog takvog ciklusa, u kome se od nas traži da (c) pomoću podataka i mašinskog učenja donosimo neke sasvim ljudske zaključke i preporuke, da (d) ponekad tek dovoljno lukavo vizuelizujemo neke podatke da bih ih neko drugi razumeo ili mogao da ih komunicira nekom trećem, te (e) često se naš posao sastoji u tome da uopšte iz nekih početnih, sirovih podataka tek dođemo do podataka koji ljudima nešto počinju da znače i na osnovu kojih će se tek kasnije razmatrati kuda dalje. Ali tog posla ima, i ima ga u toliko različitih oblasti i industrija, da je nesumnjiva jedna stvar: teško je da ako naučite Data Science nemate posla, i teško je da uz toliki raspon naše discpline kroz različita tržišta ne nađete neku nišu u kojoj će vam biti interesantno i izazovno da radite. Kako onda izgleda početak u Data Science? U kom trenutku, kako neko počne da stiče motivaciju, znanja i veštine, i počne da postaje Data Scientist? Moj odgovor je: ne znam. Jedino što po tom pitanju mogu da učinim za druge je da podelim moje lično iskustvo, dovedem nas danas do tek par izvesnih zaključaka (na kraju teksta), i podsetim da ima N (gde je N neki veliki ceo broj) izbora, iskustava, i ličnih priča drugačijih od moje kroz koje su ljudi ulazili i ulaze u ovu disciplinu. Evo kako je sve počelo za mene, ukratko i bez ulaženja u ličnu biografiju, ljubavi, muzički i filmski ukus ili sklonosti ka funkcionalnom ili objektno orijentisanom programiranju. Prva stvar, pretpostavke: počeo sam da programiram sa deset (brojem: 10) godina, prvo učeći BASIC iz baš ma kog časopisa o mikrokompjuterima koji je 80-ih mogao da mi dopadne šaka i pišući kod na svesci "na kockice" (tako je zovu, iako je papir, koliko ja znam, "na kvadratiće", ali Ok), i od neke 1986 na 8-bitnom Commodore 64 koji sam uspeo da iskukam na poklon od roditelja u ekonomski ne tako slatka vremena po građane ondašnje Jugoslavije. Koliko sam bio lud i predan u tome: pa, imao sam nekih šesnest godina kada sam u jednom ex-Yu časopisu o računarima objavio prvu recenziju kompajlera za programski jezik PASCAL... Interesovanje nikada nije prestalo: preko prijatelja iz Istraživačke stanice Petnica sam došao do fotokopija poglavlja čuvene "Algorithms + Data Structures = Programs" Niklaus Wirtha, pratio razvoje koliko sam mogao, i maštao da jednog dana razvijam ekspertske sisteme u (danas prilično zaboravljenom) programskom jeziku PROLOG za logičko programiranje. Šta drugo programere uopšte zanima do razvoj AI? Studije: ranih 90-ih, ako hoćeš da ideš u karijeru programiranja a živiš u Beogradu, to je bilo ili ETF, ili Matematika. Veliki je broj bio samoukih kao ja, ali opet - neka ozbiljna škola ti treba. Treba ne samo znati da programiraš, nego i razumeti matematička sredstva koja treba da pretočiš u algoritme, i onda u kod. Moj izbor (nerado; objasniću) je bila matematika; međutim, posle I semestra na Matematičkom je meni postalo jasno da jednostavno nisam osoba koja će svaki dan da vežba analizu i linearnu algebru tri, četiri sata dnevno, jer propustiš li jedne, dve vežbe za redom eto tebi problema kako da uopšte stigneš grupu sa kojom radiš do kolokvijuma ili ispita. A moja interesovanja su bila uska, i svakako vezana ne za baš sve u matematici: ono što nekoga zainteresovanog za računarstvo najviše interesuje, matematička logika, teorija formalnih jezika, teorija dokaza, izračunljivosti, meta-matematika. Iskreno nisam bio lud za verovatnoćom, statistikom i numeričkom analizom - oblastima za koje bi se reklo da zapravo predstavljaju same fundamente za Data Science. Ne - ja sam teoriju verovatnoće zavoleo kasnije. Sve u svemu, sa tih 18, 19 godina pala je nagla odluka da se studira nešto drugo, i to nešto sasvim drugo... posle prethodno položenih prijemnih ispita na matematici i fizici (izbor je bio matematika), položio sam prijemne ispite za Filozofski (filozofiju i psihologiju) i presrećan što sam sa tankim uspehom iz gimnazije uspeo u žešćoj konkurenciji da upišem psihologiju odlučio da nju i studiram. Nema više programiranja, nema više analiza i diferencijalnih jednačina, ide neki novi svet, neka nova interesovanja... Sve dok me na prvoj godini psihologije nisu sačekali ispiti iz statistike, fiziologije centralnog nervnog sistema, te oblasti kao što su psihofizika i kognitivna obrada informacija... Kad imate iza sebe prilično solidnu matematiku još iz gimnazije i godine programiranja u kojima svakako barate brojevima svaki dan, vidite šta je nastava psihologije na prvoj godini, okrenete se oko sebe i dođe vam skoro da se nasmejete bledim licima većine vaših kolega koji mahom dolaze sa bekgroundom društvenih nauka i humanističkih discplina, načitani Frojda i Junga (koje sam poprilično pročitao i sam i osećam samo najveće poštovanje za njihov rad i dan danas), kako u neverici slušaju o linearnoj regresiji, tome šta je histogram, a šta psihofizička funkcija za koju je Fehner verovao da je logaritamska a Stivens da je stepena - brzo shvatite da se nalazite na mestu koje je potencijalno veoma interesantno za vas. Tako je i bilo: nisam završio ni prvu godinu studija a već sam izveo moju prvu eksperimentalnu studiju u kognitivnoj psihologiji. Druga godina studija, prvi nastup na naučnoj konferenciji. Do kraja studija sam ih imao ne znam koliko i objavljena četiri naučna rada do neke dvadeset i četvrte ili dvadeset i pete godine: svaki je, po prirodi oblasti u kojoj sam istraživao, uključivao statističke modele podataka, najčešće analize varijanse i multipla linearne regresije. Interesovanja su mi se brzo proširila na ono što su osnove oblasti Unsupervised Learning danas (PCA, i MDS - nešto što se koristilo za redukciju dimenzionalnosti pre t-SNE i UMAP), jer su mi znanja u toj oblasti bila potrebna da bih istraživao u oblasti semantičkog pamćenja i distribucione - ili statističke, ako hoćete - semantike, koja me je veoma interesovala. Najbolje od svega je bilo otkriće da je mejnstrim teorija kognitivnih nauka - koje predstavljaju osnovu za istraživanja u oblasti veštačke inteligencije, a pored kognitivne psihologije obuhvataju mnoge druge naučne oblasti od neurobiologije do inženjeringa - nešto što se zove Computational Theory of Mind. Drugim rečima: psiholozi i filozofi koji su se bavili problemima saznanja i pitanjem inteligencije nisu pretpostavljali ništa drugo do ono što su u XX veku takođe pretpostavili matematičari, logičari i inženjeri, naime, da objašnjenje inteligencije leži u razumevanju ljudskog uma kao kompjutacione mašinerije. Bio sam, i ostao fasciniran time (iako danas ne verujem da je kompjutaciona teorija uma u stanju da objasni ljudsku inteligenciju u potpunosti). Oblast je bila prepuna matematičkih modela raznih kognitivnih funkcija: prepoznavanja, pamćenja, razumevanja značenja reči, donošenja odluka... I konačno, naučni rad je i te kako zahtevao dobro poznavanje verovatnoće i statistike da bi se analizirali i modelirali eksperimentalni podaci, a da biste matematičke modele mogli da primenite na podatke nije bilo dovoljno imati papir i olovku, dabome. Godine rada u SPSS, zatim STATISTICA, do momenta kada su me doktorske studije konačno dovele do MATLAB (kroz jedan od najboljih i najtežih kurseva koje sam ikada uzimao u životu, Simulation and Data Analysis na njujorškom NYU). Usput sam "pokupio" bejzijansku verovatnoću i statistiku i ostao ubeđeni subjektivista u teoriji verovatnoće do dan danas. Naravno da je programski jezik R bio sledeći logičan korak. R sam počeo da učim neke 2006. godine, mislim. Od 2013 godine, kada sam konačno završio rad na doktorskoj tezi, uključujući razvoj originalne bihejvioralne teorije odlučivanja i njene matematičke formulacije, do danas, teško da sam godišnje imao više od sedam dana da nisam napisao liniju R koda. Nešto Python sam znao s početka 2000-ih, ali me je R, specijalizovan za matematičku statistiku i tada visoko popularan samo u akademskoj zajednici prirodno više zainteresovao. Danas, u R radim bukvalno sve, uključujući i ono čemu jezik u suštini nije namenjen: održavanje i razvoj sajtova ili pisanje blogova : ) Od neke 2015. godine, kada sam već neko vreme prestao sa svakim akademskim angažmanom u istraživanjima ili nastavi i uzeo moju prvu poziciju koja se zvanično zvala Data Scientist, do danas, imam osećaj da sam završio još najmanje jedan fakultet radeći u Data Science. Istina, još od 2002 godine sam imao iskustva u istraživanjima javnog mnjenja (gde vam i te kako treba dobro znanje matematičke statistike), radio kao analitičar na međunarodnim projektima, radio u istraživanju tržišta, tako da mi nije bio toliki problem da nekako izađem na tržište kao konsultant u analizi podataka. Ali je realni rad u Data Science vremenom, a ponajviše od početka mog angažmana kao Data Scientist za Wikidata (2017 - 2022) - najluđi posao koji sam u životu radio - zahtevao mnogo više od dobrog R programiranja i poznavanja statističkih modela. SQL sam, ruku na srce, naučio još tokom nekih angažmana na razvoju Information Retrieval i Text Mining sistema u R za jednu međunarodnu fondaciju neke 2015, ako ne grešim, od kada datira i moja sklonost ka PostgreSQL, ali su ulaz u Big Data okruženja (Apache Hadoop i Spark) te potreba da razvijam kompletna softverska rešenja i plasiram ih u produkciona, virtuelna okruženja bili za mene priličan šok. Ali me je jedna stvar držala: ja sam, jednostavno, voleo sve to. I nikada mi nije predstavljalo problem to da nešto novo učim, toliko sam radoznao po prirodi da bih mogao da idem u školu za pare i polažem ispite do penzije (ako ikad u penziju uopšte i odem). Apache Spark je bila stvar koja me je naterala da se ozbiljnije vratim Python programiranju, i danas koristim Python i R uporedo u poslu - mada 90% koda koji pišem danas jeste u Python, dok R koristim za istraživačke faze projekata jer mi omogućava rapidan razvoj prototipa ma kog modela na kome radim. A i više ga volim : ) Vremenom, kroz posao, godinama, prešao sam kompletan put od čoveka koji koristi matematičku statistiku i modeliranje da bi testirao neku naučnu hipotezu ili teoriju do čoveka koji radi full-stack software development u Data Science: od istraživanja, preko prototipa, mašinskog učenja i selekcije modela, do njihovog plasiranja u produkciju upakovane u različite data proizvode u koordinaciji sa product i communications stranama posla. Pa ovo je lična priča: ponovo, šta su opšte pretpostavke, kako se ulazi u Data Science? Prvi način da vam pomognem u tome kako da uđete i kako da učite Data Science se sastoji u izvođenju nekoliko zaključaka iz ove moje profesionalne i lične priče, podsećajući vas da postoji bezbroj načina na koje možete da uđete u Data Science i učite tu oblast. 1. Treba da volite to, i da radite na nečemu konkretnom! Često ljudima koji me pitaju kako da počnu u Data Science odgovorim tako što ih pitam: koji problem vi pokušavate da rešite, a da to nije problem šta isplaćuje vašu mesečnu platu i plaća kiriju? Ja sam ono što me je odvelo u Data Science karijeru naučio rešavajući tri problema kognitivnih nauka koji su me najviše zainteresovali: problem odlučivanja, problem otkrića kauzalnih odnosa iz statističkih podataka, i problem značenja; sredstva kojima danas raspolažem u mom znanju i veštinama sam stekao radeći na rešavanju ovih problema. Za vas to može da bude nešto sasvim drugo, iz oblasti ekonomije, biologije, fizike, menadžmenta, inženjeringa, entertjmenta, kriptovaluta i NFTs, čega god hoćete, ali uvek je za učenje bolje da ispred sebe imate konkretan problem koji hoćete da rešite matematičkim sredstvima u Data Science nego da ga nemate: to ključno utiče na vašu motivaciju, da se bavite nečime što vas interesuje, što vam daje snage da napredujete. Ljudi znaju tokom kurseva u Data Science koje držim da me pitaju koji dataset treba da uzmemo i na njemu vežbamo R ili Python? Ja im obavezno odgovaram, vidite, na Kaggle i drugde ih ima milion - ali vi treba da odaberete onaj koji vas zanima, jer će vam svi drugi verovatno biti dosadni. 2. Treba da imate sreće, jeste - ali i da prilike za učenje stvarate i da ih koristite kada vam se pruže. Primetićete kako se u mojoj priči o početku karijere u Data Science stvari nekako perfektno slažu: čovek programira od malih nogu, čak i kad promeni faks da pobegne od matematike on uleti u oblast društvenih nauka koja je solidno matematizovana, dobije priliku da se bavi naukom, tokom studija se razbije od metodologije, verovatnoće i statistike, sve vreme nešto programira, ubada dobre poslove, i kako da na kraju ne postane Data Scientist? Pa čovek ima lude sreće! To samo zvuči tako kad se ispriča. Prvi časopis o računarima mi jeste otac doneo na poklon 1984. godine, ali nije on nego ja seo za sto, izvadio svesku i počeo da uči da programira (bez računara, zvuči kao vic danas). Kada sam upisao psihologiju, mogao sam te više prirodno-naučne ispite da ispolažem sa desetkama, slegnem ramenima, nakupim sertifikate za neke terapije i couching i danas razgovaram sa ljudima za novac kao što radi ogroman broj mojih kolega (zbog toga na tržištu koje je daleko više zasićeno nego ono u Data Science): ja sam izabrao da zagrizem i uđem u naučni rad pored redovnih studija; to je duplo više rada na studijama nego što se od vas traži. Nekih 2000/01, dok sam bio polaznik Beogradske otvorene škole, mogao sam da je završim i stavim u džep lepe preporuke za posao, odem i bavim se nekim reasearch managementom i uživam; ja sam predložio osnivanje istraživačkog centra koji bi se bavio razvojem Interneta i proučavanjem informacionog društva, tako stvorio priliku da oformim tim, izvedem istraživanja sa hiljadama ispitanika i naučim proces menadžmenta istraživanja od ideje do publikacije s leva na desno (četiri knjige smo mi u tom timu objavili zajedno 2002 - 2005; i to je trebalo napisati). Za doktorat, nisam morao da razvijam novi matematički model u teoriji odlučivanja, doktorira se i sa mnogo manje. Uopšte nisam morao da u životu prihvatam pozicije na kojima je trebalo da radim i back-end na Big Data u Hadoop i Spark, i mašinsko učenje, i razvoj RStudio Shiny dashboards, i njihovu produkciju u cloud okruženjima; mogao sam da kažem Ok, platite nekog Data inženjera za Big Data i zaposlite nekog juniora da radi dashboards, ja sam specijalista za ML i radim samo to - kao što danas radim na poziciji na kojoj se od mene zahteva samo ML, a u većini firmi kojima treba Data Science to što sam godinama radio ja radi tim ljudi. Ali je to za mene bio izazov - pa sam učio. Sve ono što nisam uradio je bilo da propustim priliku da učim kada bi mi se pružila pukom srećom, ili da propustim da priliku za učenje stvorim kada takve prilike nije bilo. U većini slučajeva, nisam uspevao samo to, već sam uspevao i da budem plaćen da radim posao koji je podrazumevao da na njemu mnogo učim. To bi bile pretpostavke: (1) da učite Data Science radeći na nečemu što vas interesuje i što volite, jer u suprotnom ozbiljno rizikujete da sebi zagorčate život ubrzo, te (2) da neprestano tražite prilike za učenje, kontekste u kojima će vaše učenje postajati funkcionalno i koristiti i vama i drugima (pri tom vas, kad god je to moguće, i plaćajući za to), i ne da prilike za učenje Data Science čekate nego da ih aktivno stvarate. Predlažite projekte, okupljajte timove, tražite podatke, otvorite blog i pišite šta i kako radite, i objasnite zašto je važno koji problem rešavate i zašto vam je do toga stalo. U narednim postovima, o tome da li i koliko teorije verovatnoće i statistike treba da znate da biste preuzeli neku poziciju u Data Science/ML, o tome da li vam trebaju master i doktorske studije da biste radili u Data Science (odmah da odgovorim: ne, ali nije ni loše ako je upravo to bio vaš razvojni put), kako da učite samo programiranje za Data Science, kako da organizujete vaše projekte tokom učenja (obavezno morate da imate projekat na kome radite dok učite Data Science), i drugim nadam se korisnim raspravama. Autor: Goran S. Milovanović

HelloWorld
2
21.06.2023. ·
12 min

Kako postati data scientist: Martin Dippolito iz Luxofta otkriva tajne uspeha

U svetu u kom su podaci i informacije sve, potražnja za kvalifikovanim stručnjacima je u sve većem porastu. Kompanije iz svih sfera poslovanja aktivno tragaju za stručnjacima koji će im pružiti dragocene informacije i uvide iz podataka kojima raspolažu kako bi donele informisane i pravovremene odluke. Međutim, šta je tačno potrebno da bi neko postao data scientist? Koje veštine i znanja morate posedovati kako biste započeli karijeru u ovom polju? Odgovor na to daje nam data scientist Martin Dippolito iz kompanije Luxoft. Moja interesovanja su me odvela ovim putem Kao data scientist, uvek je potrebno da jednu nogu imate u informacionim tehnologijama, a drugu čvrsto postavite u poslovnom svetu. Čini se da se ove dve stvari međusobno poništavaju za mnoge prilikom izbora karijere u IT sektoru. Šta je vas navelo da izaberete ovaj put? - Izabrao sam put podataka (Data Science) jer mi omogućava da jednom nogom budem u informacionoj tehnologiji, a drugom u poslovnom svetu. Može se činiti da se ove dve stvari međusobno poništavaju za neke ljude u IT industriji, ali za Data Scientist-a zaista postoji uzbudljiva prilika da ih spoji. Sviđa mi se to što je Data Science multidisciplinarna oblast u kojoj mogu da kombinujem svoje teorijsko znanje o verovatnoći i statistici sa veštinama programiranja kako bih rešavao probleme iz stvarnog sveta. Data Science je most koji popunjava jaz između tehnologije i poslovanja. Mogu da zaronim u suštinu verovatnoće i statistike, ali istovremeno da primenim to znanje praktično putem programiranja. Mogu da istražujem složene probleme, pronalazim značajne uvide iz ogromne količine podataka i pretvaram ih u primenjiva rešenja. Upravo ta kombinacija tehničkog znanja i poslovnog rezona pokreće moju strast da nastavim svoju karijeru u oblasti Data Science-a. Takođe, ponekad pomislim da Data Science nije nešto što sam izabrao za sebe, već su me moja interesovanja odvela na ovaj put. Kada sam bio mlađi, eksperimentisao sam sa operativnim sistemom na mom ličnom računaru do te mere da sam oštetio hard disk. Vodio sam i održavao tehnološki blog koji je pokrivao nadolazeće operativne sisteme, aplikacije, uređaje i programske jezike. Tokom odrastanja, krenuo sam putem matematičkog/statističkog univerzitetskog obrazovanja. Spajanje ovog obrazovnog puta sa mojim ličnim interesovanjima jednostavno se činilo kao pravi izbor za moj trenutni posao Koje veštine i znanja ljudi u IT sektoru treba da steknu kako bi postali uspešni data scientist? - Da bi postale uspešan data scientist, osobe koje dolaze iz IT sveta moraju steći specifične veštine i znanje. U IT svetu, stručnjaci su upoznati sa konceptom "prekvalifikacije" kako bi se zadovoljile potrebe novih uloga. Međutim, prekvalifikacija sa IT posla na ulogu data scientist-a nije toliko jednostavna kao kod drugih IT pozicija. Prelazak na ulogu data scientist-a sa sobom nosi  jedinstvene izazove zbog promene radne paradigme i potrebe za razvojem posebnog skupa veština i znanja. Ove veštine se ne stiču lako samo kroz "obuku na poslu" radom na projektima vezanim za data science. Iako je praktično iskustvo vredno, postoje osnovne veštine i znanja kojima bi budući data scientist-i trebalo da daju prioritet. Jedna ključna osnova je dobro matematičko obrazovanje, posebno iz oblasti računara i linearne algebre. Ove matematičke discipline služe kao preduslovi za dalje proučavanje statističkih pojmova kao što su deskriptivna statistika, inferenca, bajesijanska analiza i teorija verovatnoće. Razumevanje ovih matematičkih osnova pruža čvrstu podlogu data scientist-ima da efikasno analiziraju i tumače podatke. Pored toga, data scientist mora odlično da razume statističke tehnike, uključujući testiranje hipoteza, analizu regresije i algoritme mašinskog učenja. Sve navedene veštine mogu se svakako naučiti putem samostalnog učenja, ali pohađanje (bakalaureatskih) studija pruža veće šanse za sticanje tog znanja. Tokom veoma kratkog perioda radili ste kao bibliotekarski pomoćnik - da li je to bilo nešto što nije bilo povezano sa vašim poslovnim ciljevima ili je to bio samo prvi korak, i ako jeste... kako ste imali koristi od rada u biblioteci? - Iako taj posao nije bio povezan sa mojim poslovnim ciljevima, radio sam u Odeljenju za Statistiku (i Data Science) na Univerzitetu u Bolonji, što mi je omogućilo da razumem koje su najaktuelnije istraživačke teme u oblasti Mašinskog učenja/veštačke inteligencije. Takođe sam imao priliku da razgovaram sa starijim kolegama koje su ulazili na tržište rada i da razumem u koje industrije i kompanije bih mogao da se uključim. Ovo iskustvo takođe mi je dalo samopouzdanje da u poslednjoj godini studija započnem pravi IT posao, jer sam shvatio da je zaista moguće uskladiti akademske studije i profesionalni rad. Različiti zadaci na konkretnom projektu Uloga data scientist-a kombinuje nekoliko stvari koje se mnogima čine teško spojive. Kako izgleda tipičan dan data scientist-a - dobar i loš? - Svaki dan data scientist-a je jedinstven, budući da različite osobe mogu biti uključene u različite aktivnosti unutar istog projekta. Važno je napomenuti da ne postoji definitivno "dobar" ili "loš" dan, jer to zavisi od ličnih interesa i perspektiva. Da bismo ljudima pomogli da razumeju šta je "dobar" i "loš" dan, možemo napraviti poređenje sa ulogom front-end developera, koji se fokusira na izgradnju korisničkog interfejsa za veb servise ili aplikacije. Zamislimo tipičan dan front-end developera. Oni počinju tako što sarađuju sa svojim timom kako bi razumeli nove funkcionalnosti i pregledaju unapred definisane skice. Mogu provesti vreme rešavajući neočekivane probleme ili integrišući rad backend developera radi dobijanja podataka. Njihov rad je struktuiran i predvidljiv. Kada imaju sve potrebne informacije, posvećuju se izradi kreativnog, funkcionalnog, održivog i optimizovanog koda. Tim komunicira bez problema, svi su svesni svojih odgovornosti i sposobnosti. S druge strane, dan data scientist-a je dinamičniji i izazovniji za opisivanje. Uključuje različite zadatke zasnovane na konkretnom projektu. Jednog dana, data scientist se može fokusirati na razumevanje poslovnih problema, pregledanje prošlih projekata i konsultacije sa drugima koji su se susreli sa sličnim izazovima. Moraju identifikovati relevantne podatke potrebne za rešavanje problema, odabrati odgovarajuće metodologije i razmisliti o tome kako zapakovati i predstaviti rešenje korisnicima. Za razliku od front-end developera, data scientist-i nemaju unapred definisane skice, a rezultati nisu zagarantovano uspešni, uglavnom zbog kvaliteta i dostupnosti podataka koji igraju važnu ulogu u oblikovanju ishoda. Data scientist-i možda neće uvek biti u obavezi da pišu savršeno strukturiran kod, posebno tokom eksperimentalne faze kada se kod često menja. Stil kodiranja može varirati u zavisnosti od potreba projekta i kompromisa između vremena i kvaliteta. Komunikacija unutar tima može biti izazovna, jer drugi članovi tima možda neće u potpunosti shvatiti nivo neizvesnosti koji je prisutan u projektima data science-a. Data scientisti moraju da ravnotežu pronađu između istraživanja složenih algoritama i obimnog zadatka "obrađivanja podataka", što može zauzeti značajan deo njihovog vremena tokom projekta, minimum 70%. Preostalo vreme posvećeno je predstavljanju rezultata i ubeđivanju drugih o vrednosti njihovog rada, često putem informativnih statistika. Implementacija uzbudljivih modela, koji izazivaju entuzijazam svih, generalno zauzima manje od 10% njihovog vremena. Kako gradite "odnos" sa podacima i koristite ih da postignete zadate ciljeve? - Na početku, posmatram podatke tako što se upoznajem s njima, razumem njihove karakteristike, strukturu i obrasce. To je kao susret s novom osobom i započinjanje razgovora. Kako napreduje naše "prijateljstvo" s podacima, sve više se zaranjam u detalje i počinjem da otkrivam dragocene uvide i donosim odluke na osnovu informacija koje pružaju. Primenjuju se razne analitičke tehnike kako bi se izvuklo značajno znanje, a podaci se postepeno oblikuju kako bi se uskladili sa željenim algoritmom za rešavanje poslovnog problema. Da li verujete da nove tehnologije poput cloud računarstva i veštačke inteligencije mogu doprineti ulozi data scientist-a i biti pouzdani izvori informacija? - Verujem da je Cloud sadašnjost i budućnost Data Scientist-a. Cloud računarstvo pruža mnoštvo prednosti, pri čemu je posebno značajno eliminisanje fizičke infrastrukture i njenog održavanja. Ono nudi ekonomična, skalabilna i fleksibilna rešenja. Ova osnovna razlika u odnosu na lokalna rešenja rezultira niskim ili čak nepostojećim troškovima ulaska, što omogućava brzu izradu prototipova, ubrzava digitalnu transformaciju, podstiče eksperimentisanje s novim idejama i podržava širu primenu poslovnih modela zasnovanih na podacima. Prelazak na usvajanje poslovnih modela usmerenih na podatke izuzetno je koristan za Data Scientist-e. Pruža jasan fokus na korišćenje odlučivanja zasnovanog na podacima, prepoznajući ključnu ulogu podataka u postizanju poslovnog uspeha. Stvara kulturu koja vrednuje i daje prioritet analizi podataka, što rezultira povećanjem resursa i podrške timovima za data science. Data Scientist-i mogu aktivno doprinositi strateškim poslovnim odlukama, koristeći svoje stručno znanje kako bi pružili vredne uvide i vodili ključne inicijative. Kako rad Data Scientist-a postaje vidljiviji i ima veći uticaj unutar kompanije, otvaraju se nove mogućnosti za razvoj karijere i profesionalno napredovanje. Sveukupno, usvajanje poslovnih modela usmerenih na podatke osnažuje Data Scientist-e, pozicionirajući ih kao ključne pokretače uspeha organizacije. Iako neke industrije poput bankarstva i dalje više naginju ka korišćenju lokalnih rešenja zbog brige o privatnosti, provajderi Cloud usluga intenzivno rade na sigurnosti i usaglašenosti, čime čine Cloud platforme pouzdanim izvorima informacija. Pouzdanost veštačke inteligencije kao izvora informacija zavisi od različitih faktora, uključujući tu kvalitet i reprezentativnost trening podataka, transparentnost algoritama veštačke inteligencije i etička razmatranja koja su uključena u proces razvoja veštačke inteligencije. Pozitivna strana je da veštačka inteligencija već doprinosi, a biće još važnija u povećanju produktivnosti Data Scientist-a. Koje programske jezike i alate najčešće  koristite? Da li je bilo iznenađenja u vezi sa znanjem i alatima koje data scientist-i koriste kada ste počeli? Pitajte bilo kojeg data scientist-a koja je osnovna alatka za data science i reći će vam "Python". Njihov drugi odgovor će biti... "Python". Sada, šale na stranu, postoje i drugi programski jezici kao što su Julia i Scala sa bržim vremenom izvršavanja određenih scenarija, kao i jezici usmereni više ka statistici poput SAS-a, Stata-e, SPSS-a, R itd. Python ima ogroman ekosistem sa bogatom kolekcijom biblioteka i okvira za različite oblasti, uključujući data science i mašinsko učenje. Njegova popularnost čini da ga preferiraju mnogi data scientist-i, uključujući tu i mene koji sam kao bivši R developer (zbog statističke akademske pozadine) većinu svojih aktivnosti prebacio na Python od početka svoje karijere. Drugi alati koje svakodnevno koristim su po redosledu vremenske upotrebe razvojna okruženja poput VS Code-a ili PyCharm-a, git (za verzionisanje), Cloud ML platforme (AWS Sagemaker, Azure ML studio, GCP uglavnom), alati za prezentacije, R, SQL upiti. Najviše me je iznenadila široka upotreba softvera za tabelarne proračune u raznim industrijama. Iako ga trenutno ne koristim za svoje aktivnosti, prepoznajem vrednost koju može ponuditi u određenim scenarijima, da ne pominjem zabavu koju možete imati automatizujući zadatke pomoću VBA. Takođe, nisam bio svestan ključnog značaja cloud tehnologije u današnjem svetu, jer je tokom studiranja fokus bio više na modelima i njihovom unutrašnjem funkcionisanju. Ako pogledate svoje znanje, u kojim oblastima smatrate da bi trebalo da se poboljša i zašto? - Kada započnete putovanje u Data Science, svakodnevno možete naučiti novi algoritam.  Iako često istražujem nove modele i proširujem znanja, dolazi trenutak kada akumulirate snažan set alata i znanja za rešavanje različitih problema, otvarajući put ka sledećoj fazi. Ta sledeća faza, u koju želim da se upustim, vezana je za ekosistem koji obuhvata sferu Data Science-a. Trenutno, moj fokus je na dizajnu sistema mašinskog učenja jer čvrsto verujem da je to ključno za sticanje sveobuhvatnog razumevanja primena mašinskog učenja od početka do kraja. Ove veštine omogućavaju Data Scientist-ima da bez problema implementiraju modele u proizvodnju, čineći ih lako dostupnim i konačno donoseći merljivu vrednost poslovnim subjektima. Ne oslanjajte se samo na programe obuke Da li biste radije preporučili budućim data scientist-ima da stiču tradicionalna znanja (fakultet, doktorat...) ili postoje bolji načini za sticanje potrebnog znanja? - Preporučujem sticanje znanja kroz diplomu na osnovnim studijama, ne samo iz statistike, već i iz matematike, kvantitativnih finansija, ekonometrije, demografije i drugih srodnih oblasti. Iako je doktorat iz statistike/mašinskog učenja neophodan za Data Scientist-a u istraživačkim ili akademskim sferama, nije obavezan za početak karijere u ovom polju. Takođe, obuka koju pruža doktorski program može biti korisna, ali nije preduslov. Alternativno, doktorske studije iz STEM polja mogu takođe biti od koristi jer uključuju analizu podataka vezanih za specifično polje studija. Mnoge moje bivši kolege stekle su doktorate iz oblasti kao što su fizika ili biologija, i uz online specijalizacije, uspeli su da prevaziđu jaz u metodologijama mašinskog učenja. Oslanjanje isključivo na programe obuke nije preporučljivo, osim ako već imate snažnu analitičku osnovu. Šanse za uspešnu karijeru u data science-u bez čvrstih osnova su prilično male. Čak i unutar industrije, održavanje konkurentnosti zahteva čvrsto razumevanje matematičkih koncepata. Iako postoje izuzeci, ovi poslovi često više naginju ka mašinskom inženjerstvu sa manje naglaska na "Naučni" aspekt, što i dalje doprinosi uzbudljivosti ovog polja. Koji bi bio idealan put za nekoga ko je zainteresovan za data science? Koje bi bile vaše preporuke za svakoga ko je zainteresovan da krene na ovaj put? - Možda zvučim kao da se ponavljam, ali kada bih pružao savet, išao bih nekako ovako: "Prvo i pre svega, izgradite čvrste temelje u matematici sve dok matrice i višedimenzionalni prostori ne postanu sastavni deo vaših snova. Zatim, primenite to stečeno znanje da biste se upustili u statističke tehnike, testiranje hipoteza i sve teorijske veštine potrebne za rad sa podacima. Moja preporuka je da se upustite u studije u relevantnoj oblasti, jer vam to omogućava da se isključivo investirate u sebe, bez ograničenja poslovnih razmatranja. Kada uspostavite čvrst temelj, tražite praktično iskustvo ili pridružite se kompaniji u juniorskoj ulozi ili se bavite Python projektima koji se uklapaju u vaše interese. Usvojite dobre prakse kodiranja kako napredujete. I zapamtite, kontinuirano učenje je ključ za održavanje ovog divnog putovanja. Od izuzetne matematičke osnove i poznavanja statistike, do iskustva u programiranju i mašinskom učenju, spektar znanja koja data scientist mora da poseduje podjendako je velik i opširan kao i podaci koje posmatra. Bilo da razmišljate o promeni karijernog koloseka, ili tek započinjete svoj put, razumevanje svih navedenih faktora, znanja i veština svakako je najvažniji korak na putu ka uspešnoj data scientist karijeri.

HelloWorld
0
12.07.2022. ·
9 min

The Best Mobile Apps to Help you Learn Programming

Programming is a category of computer science where you study how to build desktop, mobile or web apps.

HelloWorld
0
12.01.2022. ·
5 min

Šta jedan Data Scientist treba da zna

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!  

06.11.2019. ·
8 min

Ekskluzivno programersko ili uopšteno tehničko polje? Istine i zablude o Data Science-u

Intervju: Ilija Subašić - u susret Sprint2DataScience kursu u Subotici

HelloWorld
0
04.04.2019. ·
2 min

R Bootcamp sa otvorenim podacima

U beogradskom Startit Centru će se održati kurs tokom kog će učesnici imati priliku da saznaju kako se koristi programski jezik R za pristup podacima sa Portala otvorenih podataka, kao i kako da se uz pomoć njega obavlja efektivna analiza i vizualizacija. Kurs će se održati od 14. do 16. maja, u trajanju od 13:00 do 18:00 časova.

HelloWorld
0
Da ti ništa ne promakne

Ako želiš da ti stvarno ništa ne promakne, prijavi se jer šaljemo newsletter svake dve nedelje.