Nauka o podacima je fascinantna oblast za sve one koji uživaju u razotkrivanju složenih problema i pronalaženju skrivenih uvida u naizgled haotičnim situacijama.
Može se uporediti sa traženjem igle u plastu sena, samo što stručnjaci za podatke ne moraju da prljaju ruke. Koristeći sofisticirane alate, raznovrsne grafikone i analizirajući velike količine brojeva, oni se upuštaju u pretragu podataka i izdvajaju dragocene informacije koje imaju značajnu poslovnu vrednost.
Tipičan arsenal alata naučnika podataka trebalo bi da sadrži najmanje po jedan alat iz sledećih kategorija: relacione baze podataka, NoSQL baze podataka, okvire za obradu velikih podataka, alate za vizualizaciju, alate za web scraping, programske jezike, integrisana razvojna okruženja (IDE) i alate za duboko učenje.
Relacione baze podataka
Relaciona baza podataka je zbirka podataka organizovana u tabele sa atributima. Tabele se mogu povezivati međusobno, uspostavljajući relacije i ograničenja, stvarajući tako model podataka. Za manipulaciju relacionim bazama podataka najčešće se koristi jezik pod nazivom SQL (Structured Query Language).
Aplikacije koje upravljaju strukturom i podacima u relacionim bazama podataka nazivaju se RDBMS (Relational Database Management Systems). Postoji veliki broj takvih aplikacija, a najrelevantnije su nedavno počele da se fokusiraju na oblast nauke o podacima, dodajući funkcionalnosti za rad sa velikim skladištima podataka i primenu tehnika kao što su analitika podataka i mašinsko učenje.
SQL Server
Microsoft-ov RDBMS se razvija već više od 20 godina, uz kontinuirano širenje poslovnih funkcionalnosti. Od verzije iz 2016. godine, SQL Server nudi portfelj usluga koji uključuje podršku za integrisani R kod. SQL Server 2017 podiže standard preimenovanjem svojih R usluga u usluge mašinskog učenja i dodavanjem podrške za Python jezik (više o ova dva jezika u nastavku).
Ovim značajnim dodacima, SQL Server se obraća naučnicima podataka koji možda nemaju iskustva sa Transact SQL-om, izvornim jezikom upita za Microsoft SQL Server.
SQL Server nije besplatan proizvod. Možete kupiti licence za instalaciju na Windows Server (cena će varirati u zavisnosti od broja istovremenih korisnika) ili ga koristiti kao uslugu zasnovanu na naplati, putem Microsoft Azure cloud-a. Učenje Microsoft SQL Server-a je lako.
MySQL
Na strani softvera otvorenog koda, MySQL je najpopularniji RDBMS. Iako je trenutno u vlasništvu Oracle-a, i dalje je besplatan i otvorenog koda pod uslovima GNU opšte javne licence. Većina web aplikacija koristi MySQL kao osnovno skladište podataka, zahvaljujući njegovoj usklađenosti sa SQL standardom.
Njegovoj popularnosti takođe doprinose jednostavne procedure instalacije, velika zajednica programera, obimna dokumentacija i alati trećih strana, kao što je phpMyAdmin, koji pojednostavljuju svakodnevne aktivnosti upravljanja. Iako MySQL nema izvorne funkcije za analizu podataka, njegova otvorenost omogućava integraciju sa gotovo svim alatima za vizualizaciju, izveštavanje i poslovnu inteligenciju koje odaberete.
PostgreSQL
Još jedna opcija RDBMS otvorenog koda je PostgreSQL. Iako nije toliko popularan kao MySQL, PostgreSQL se ističe svojom fleksibilnošću i proširivošću, kao i podrškom za složene upite, one koji prevazilaze osnovne izjave kao što su SELECT, WHERE i GROUP BY.
Ove karakteristike mu omogućavaju da stekne popularnost među naučnicima podataka. Još jedna interesantna karakteristika je podrška za više okruženja, koja omogućava da se koristi u oblaku i lokalnim okruženjima, ili u kombinaciji oba, poznatoj kao hibridno cloud okruženje.
PostgreSQL je sposoban da kombinuje analitičku obradu na mreži (OLAP) sa obradom transakcija na mreži (OLTP), radeći u režimu koji se naziva hibridna transakcijska/analitička obrada (HTAP). Takođe je pogodan za rad sa velikim podacima, zahvaljujući dodatku PostGIS-a za geografske podatke i JSON-B za dokumente. PostgreSQL takođe podržava nestrukturirane podatke, što im omogućava da budu u obe kategorije: SQL i NoSQL baze podataka.
NoSQL baze podataka
Poznate i kao nerelacione baze podataka, ove vrste skladišta podataka omogućavaju brži pristup netabelarnim strukturama podataka. Neki primeri ovih struktura su grafovi, dokumenti, široke kolone, ključ-vrednost parovi, između mnogih drugih. NoSQL skladišta podataka mogu žrtvovati doslednost podataka u korist drugih prednosti, kao što su dostupnost, particionisanje i brzina pristupa.
Pošto u NoSQL skladištima podataka nema SQL-a, jedini način da se postavi upit za ovu vrstu baze podataka je korišćenje jezika niskog nivoa, a ne postoji jezik koji je tako široko prihvaćen kao SQL. Pored toga, ne postoje standardne specifikacije za NoSQL. Zbog toga, ironično, neke NoSQL baze podataka počinju da dodaju podršku za SQL skripte.
MongoDB
MongoDB je popularan NoSQL sistem baze podataka, koji čuva podatke u obliku JSON dokumenata. Njegov fokus je na skalabilnosti i fleksibilnosti za skladištenje podataka na nestrukturiran način. To znači da ne postoji fiksna lista polja koja se mora poštovati u svim sačuvanim elementima. Štaviše, struktura podataka se može menjati tokom vremena, nešto što u relacionoj bazi podataka podrazumeva visok rizik od uticaja na pokrenute aplikacije.
Tehnologija u MongoDB-u omogućava indeksiranje, ad-hoc upite i agregaciju koji pružaju snažnu osnovu za analizu podataka. Distribuirana priroda baze podataka obezbeđuje visoku dostupnost, skaliranje i geografsku distribuciju bez potrebe za sofisticiranim alatima.
Redis
Ovo je još jedna opcija na frontu otvorenog koda, NoSQL baze podataka. To je, u suštini, skladište struktura podataka koje radi u memoriji i, osim što pruža usluge baze podataka, radi i kao keš memorija i posrednik poruka.
Podržava brojne nekonvencionalne strukture podataka, uključujući heševe, geoprostorne indekse, liste i sortirane skupove. Pogodan je za nauku o podacima zahvaljujući visokim performansama u zadacima koji zahtevaju veliku količinu podataka, kao što su izračunavanje preseka skupova, sortiranje dugačkih lista ili generisanje složenih rangiranja. Razlog za izvanredne performanse Redis-a je njegovo izvršavanje u memoriji. Može se konfigurisati da selektivno čuva podatke.
Okviri za obradu velikih podataka
Pretpostavimo da treba da analizirate podatke koje korisnici Facebook-a generišu tokom jednog meseca. Govorimo o fotografijama, video snimcima, porukama, i svemu ostalom. Uzimajući u obzir da korisnici svakodnevno dodaju više od 500 terabajta podataka na društvenu mrežu, teško je izmeriti obim koji predstavlja ceo mesec njenih podataka.
Da biste manipulisali tom ogromnom količinom podataka na efikasan način, potreban vam je odgovarajući okvir koji može da izračunava statistiku preko distribuirane arhitekture. Postoje dva okvira koja predvode tržište: Hadoop i Spark.
Hadoop
Kao okvir za obradu velikih podataka, Hadoop rešava probleme povezane sa pronalaženjem, obradom i skladištenjem ogromnih količina podataka. Hadoop radi u distribuiranom okruženju, sastavljenom od računarskih klastera koji obrađuju jednostavne algoritme. Postoji algoritam za orkestraciju, nazvan MapReduce, koji deli velike zadatke na male delove, a zatim distribuira te male zadatke među dostupne klastere.
Hadoop se preporučuje za skladišta podataka poslovne klase koja zahtevaju brz pristup i visoku dostupnost, a sve to po niskoj ceni. Međutim, potreban vam je Linux administrator sa dubokim Hadoop znanjem da bi okvir bio održavan i da bi pravilno funkcionisao.
Spark
Hadoop nije jedini okvir dostupan za manipulaciju velikim podacima. Još jedno značajno ime u ovoj oblasti je Spark. Spark motor je dizajniran da nadmaši Hadoop u pogledu brzine analitike i lakoće korišćenja. Očigledno je postigao ovaj cilj: neka poređenja govore da Spark radi do 10 puta brže od Hadoop-a kada radi sa podacima na disku i 100 puta brže kada radi u memoriji. Takođe je potreban manji broj mašina za obradu iste količine podataka.
Pored brzine, još jedna prednost Spark-a je njegova podrška za obradu tokova podataka. Ova vrsta obrade podataka, koja se naziva i obrada u realnom vremenu, uključuje kontinuirani unos i izlaz podataka.
Alati za vizualizaciju
Uobičajena šala među naučnicima podataka kaže da ako dovoljno dugo “mučite” podatke, oni će vam otkriti ono što želite da znate. U ovom slučaju, “mučenje” podrazumeva manipulaciju podacima transformisanjem i filtriranjem, kako bi se bolje vizuelizovali. Tu na scenu stupaju alati za vizuelizaciju podataka. Ovi alati uzimaju prethodno obrađene podatke iz više izvora i prikazuju njihove otkrivene istine u grafičkim, razumljivim oblicima.
Postoje stotine alata koji spadaju u ovu kategoriju. Sviđalo se to vama ili ne, najčešće se koristi Microsoft Excel i njegovi alati za crtanje. Excel grafikoni su dostupni svima koji koriste Excel, ali imaju ograničenu funkcionalnost. Isto važi i za druge aplikacije za tabelarne proračune, kao što su Google Sheets i Libre Office. Međutim, ovde govorimo o specifičnijim alatima, posebno prilagođenim za poslovnu inteligenciju (BI) i analizu podataka.
Power BI
Ne tako davno, Microsoft je objavio svoju Power BI aplikaciju za vizualizaciju. Ona može da preuzima podatke iz različitih izvora, kao što su tekstualne datoteke, baze podataka, tabelarni proračuni i mnogi online servisi podataka, uključujući Facebook i Twitter, i da ih koristi za generisanje kontrolnih tabli ispunjenih grafikonima, tabelama, mapama i mnogim drugim objektima vizualizacije. Objekti kontrolne table su interaktivni, što znači da možete da kliknete na seriju podataka u grafikonu da biste je izabrali i koristili kao filter za druge objekte na tabli.
Power BI je kombinacija Windows desktop aplikacije (deo Office 365 paketa), web aplikacije i online servisa za objavljivanje kontrolnih tabli na webu i njihovo deljenje sa korisnicima. Servis vam omogućava da kreirate i upravljate dozvolama za odobravanje pristupa tablama samo određenim ljudima.
Tableau
Tableau je još jedna opcija za kreiranje interaktivnih kontrolnih tabli iz kombinacije više izvora podataka. Takođe nudi verziju za desktop, web verziju i online servis za deljenje kontrolnih tabli koje kreirate. Funkcioniše intuitivno, „onako kako razmišljate“ (kako se tvrdi), i jednostavan je za korišćenje za netehničke korisnike, što je dodatno poboljšano kroz veliki broj tutorijala i video snimaka na internetu.
Neke od najistaknutijih karakteristika Tableau-a su neograničeni konektori za prenos podataka, podaci uživo i u memoriji, kao i dizajn optimizovan za mobilne uređaje.
QlikView
QlikView nudi čist i jednostavan korisnički interfejs koji pomaže analitičarima da otkriju nove uvide iz postojećih podataka kroz vizuelne elemente koji su svima lako razumljivi.
Ovaj alat je poznat po tome što je jedna od najfleksibilnijih platformi za poslovnu inteligenciju. Pruža funkciju pod nazivom Asocijativna pretraga, koja vam pomaže da se fokusirate na najvažnije podatke, štedeći vam vreme potrebno da ih sami pronađete.
Sa QlikView-om, možete sarađivati sa partnerima u realnom vremenu, radeći uporednu analizu. Svi relevantni podaci se mogu kombinovati u jednu aplikaciju, uz sigurnosne funkcije koje ograničavaju pristup podacima.
Alati za web scraping
U vreme kada se internet tek pojavljivao, web pretraživači su počeli da putuju internetom prikupljajući informacije na svom putu. Kako je tehnologija napredovala, termin web indeksiranje se promenio u web scraping, ali i dalje znači isto: automatsko izvlačenje informacija sa web lokacija. Da biste izveli web scraping, koristite automatizovane procese ili botove koji skaču sa jedne web stranice na drugu, izvlače podatke iz njih i izvoze ih u različite formate ili ih ubacuju u baze podataka radi dalje analize.
U nastavku sumiramo karakteristike tri od najpopularnijih web scrapera dostupnih danas.
Octoparse
Octoparse web scraper nudi neke zanimljive karakteristike, uključujući ugrađene alate za preuzimanje informacija sa web lokacija koje ne olakšavaju botovima za scraping da obavljaju svoj posao. To je desktop aplikacija koja ne zahteva kodiranje, sa korisničkim interfejsom koji omogućava vizualizaciju procesa ekstrakcije kroz grafički dizajner radnog toka.
Zajedno sa samostalnom aplikacijom, Octoparse nudi uslugu zasnovanu na oblaku za ubrzavanje procesa ekstrakcije podataka. Korisnici mogu iskusiti povećanje brzine od 4x do 10x kada koriste uslugu u oblaku umesto desktop aplikacije. Ako se držite desktop verzije, Octoparse možete koristiti besplatno. Ali ako više volite da koristite uslugu u oblaku, moraćete da izaberete jedan od njegovih plaćenih planova.
Content Grabber
Ako tražite alat za scraping bogat funkcijama, trebalo bi da pogledate Content Grabber. Za razliku od Octoparse-a, da biste koristili Content Grabber, potrebno je da imate napredne veštine programiranja. Za uzvrat dobijate uređivanje skripti, interfejse za otklanjanje grešaka i druge napredne funkcionalnosti. Uz Content Grabber, možete koristiti .Net jezike za pisanje regularnih izraza. Na taj način, ne morate da generišete izraze koristeći ugrađeni alat.
Alat nudi API (Application Programming Interface) koji možete da koristite da dodate mogućnosti scraping-a vašim desktop i web aplikacijama. Da bi koristili ovaj API, programeri moraju da dobiju pristup Windows usluzi Content Grabber.
ParseHub
Ovaj scraper može da obrađuje opsežnu listu različitih tipova sadržaja, uključujući forume, ugnježđene komentare, kalendare i mape. Takođe može da se bavi stranicama koje sadrže autentifikaciju, JavaScript, Ajax i još mnogo toga. ParseHub se može koristiti kao web aplikacija ili desktop aplikacija koja može da radi na Windows, macOS X i Linux.
Kao i Content Grabber, preporučuje se da imate određeno znanje o programiranju da biste maksimalno iskoristili ParseHub. Ima besplatnu verziju, ograničenu na 5 projekata i 200 stranica po pokretanju.
Programski jezici
Baš kao što je prethodno pomenuti SQL jezik dizajniran posebno za rad sa relacionim bazama podataka, postoje i drugi jezici kreirani sa jasnim fokusom na nauku o podacima. Ovi jezici omogućavaju programerima da pišu programe koji se bave masivnom analizom podataka, kao što su statistika i mašinsko učenje.
SQL se takođe smatra važnom veštinom koju bi programeri trebalo da imaju u nauci o podacima, ali to je zato što većina organizacija još uvek ima mnogo podataka u relacionim bazama podataka. “Pravi” jezici nauke o podacima su R i Python.
Python
Python je programski jezik visokog nivoa, interpretiran, opšte namene, veoma pogodan za brz razvoj aplikacija. Ima jednostavnu i lako razumljivu sintaksu koja omogućava brzu krivu učenja i smanjenje troškova održavanja programa. Postoji mnogo razloga zašto je on preferirani jezik za nauku o podacima. Da pomenemo neke: potencijal skriptovanja, opširnost, prenosivost i performanse.
Ovaj jezik je dobra polazna tačka za naučnike koji planiraju mnogo da eksperimentišu pre nego što uskoče u stvarni i naporan rad na prikupljanju podataka i koji žele da razviju kompletne aplikacije.
R
The R jezik se uglavnom koristi za statističku obradu podataka i grafički prikaz. Iako nije namenjen za razvoj punopravnih aplikacija, kao što bi bio slučaj sa Python-om, R je postao veoma popularan poslednjih godina zbog svog potencijala za rudarenje podataka i analitiku podataka.
Zahvaljujući stalno rastućoj biblioteci besplatno dostupnih paketa koji proširuju njegovu funkcionalnost, R je sposoban da obavlja sve vrste poslova prikupljanja podataka, uključujući linearno/nelinearno modeliranje, klasifikaciju, statističke testove, itd.
Nije ga lako naučiti, ali kada se upoznate sa njegovom filozofijom, bavićete se statističkim računanjem kao profesionalac.
IDE
Ako ozbiljno razmišljate da se posvetite nauci o podacima, onda ćete morati pažljivo da izaberete integrisano razvojno okruženje (IDE) koje odgovara vašim potrebama, jer ćete vi i vaš IDE provesti dosta vremena radeći zajedno.
Idealan IDE bi trebalo da sadrži sve alate koji su vam potrebni u svakodnevnom radu kao koder: uređivač teksta sa isticanjem sintakse i automatskim dovršavanjem, moćan program za otklanjanje grešaka, pretraživač objekata i jednostavan pristup spoljnim alatima. Pored toga, mora biti kompatibilan sa jezikom koji želite da koristite, tako da je dobra ideja da odaberete svoj IDE nakon što znate koji jezik ćete koristiti.
Spyder
Ovaj generički IDE je uglavnom namenjen naučnicima i analitičarima koji takođe moraju da kodiraju. Da bi bili udobni, on se ne ograničava na IDE funkcionalnost – takođe pruža alate za istraživanje/vizualizaciju podataka i interaktivno izvršavanje, kao što se može naći u naučnom paketu. Uređivač u Spyder-u podržava više jezika i dodaje pregledač klasa, razdvajanje prozora, prelazak na definiciju, automatsko dovršavanje koda, pa čak i alat za analizu koda.
Program za otklanjanje grešaka vam pomaže da interaktivno pratite svaku liniju koda, a profiler vam pomaže da pronađete i eliminišete neefikasnosti.
PyCharm
Ako programirate u Python-u, velike su šanse da će vaš IDE biti izbor PyCharm. Ima pametan uređivač koda sa inteligentnom pretragom, dovršavanjem koda i otkrivanjem i ispravljanjem grešaka. Sa samo jednim klikom, možete preći sa uređivača koda na bilo koji prozor vezan za kontekst, uključujući test, super metod, implementaciju, deklaraciju i još mnogo toga. PyCharm podržava Anaconda i mnoge naučne pakete, kao što su NumPy i Matplotlib, da navedemo samo dva od njih.
Nudi integraciju sa najvažnijim sistemima za kontrolu verzija, kao i sa alatkom za pokretanje testova, profilerom i debugger-om. Uz sve to, on se takođe integriše sa Docker-om i Vagrantom kako bi se obezbedio razvoj na više platformi i kontejnerizacija.
RStudio
Za one naučnike podataka koji preferiraju R tim, IDE bi trebalo da bude izbor RStudio, zbog brojnih karakteristika. Možete ga instalirati na radnu površinu sa operativnim sistemom Windows, macOS ili Linux, ili možete da ga pokrenete iz web pretraživača ako ne želite da ga instalirate lokalno. Obe verzije nude pogodnosti kao što su isticanje sintakse, pametno uvlačenje i dovršavanje koda. Postoji integrisani pregledač podataka koji je zgodan kada treba da pretražujete tabelarne podatke.
Režim za otklanjanje grešaka omogućava vam da vidite kako se podaci dinamički ažuriraju kada se program ili skripta izvršavaju korak po korak. Za kontrolu verzija, RStudio integriše podršku za SVN i Git. Lep dodatak je i mogućnost kreiranja interaktivne grafike, pomoću Shiny-a i biblioteka.
Vaš lični alatni okvir
U ovom trenutku, trebalo bi da imate jasan uvid u alate koje treba da poznajete da biste bili uspešni u nauci o podacima. Takođe, nadamo se da smo vam dali dovoljno informacija da odlučite koja je opcija najprikladnija u okviru svake kategorije alata. Sada je na vama.