Mnogi u svom poslu koriste R ili MATLAB kada analiziraju podatke. Bez obzira što je R razvijen od strane statističara, u poslednjim godinama se nameće i programski jezik Python sa jako puno kvalitetnih i korisnih open source biblioteka kada je u pitanju data science i sa zajednicom koja je veća i koja se mnogo brže razvija nego R zajednica.
Više o samom jeziku Python sam pisao u ovom tekstu dok u nastavku teksta možete pročitati neke od biblioteke koje se najčešće koriste kada je u pitanju analiza i vizualizacija podataka.
Sadržaj:
NumPy
Jedna od najfundamentalnijih open source biblioteka za Python kada je u pitanju proračunavanje je definitivno NumPy (Numerical Python).
Nudi pre svega matematičke funkcija koje vrše operacije na podacima. Ima karakteristiku veoma brzog i efikasnog izvršavanja funkcija. Dokumentacija i osnove se nalaze ovde.
Pandas
Pandas je besplatna open source biblioteka kreirana od strane Wes McKinney-a koja radi sa obeleženim i relacionim podacima.
Dizajnirana je za brzu i laku manipulaciju podataka, agregaciju, filtriranje itd. Ima dve strukture podatka, Series i DataFrame, a više o njima i samoj biblioteci sam pisao u ovom tekstu.
Odlična knjiga o Pandas napisana je od strane kreatora biblioteke 2012. godine i može se naći u izdanju O’Reilly ‘Python for Data Analysis 2 edition’.
Dokumentacija same biblioteke koju savetujem da se detaljno pregleda i prouči se nalazi ovde.
Vizualizacija
Matplotlib
Matplotlib biblioteka je dizajnirana za laku i moćnu vizualizaciju podataka i postoji već više od 14 godina. Poslednja stabilna verzija je 2.0.2 koja je izašla početkom maja 2017. godine. Ova biblioteka je uz NumPy i Pandas vrlo ozbiljan konkurent naučnim, dobro poznatim alatima (ali poprilično skupim) kao što su MatLab i Mathematica.
Ono što predstavlja manu kod Matplotlib-a je to što je poprilično low level što znači da je potrebno da se napiše više linija koda kako bi se došlo do nekih naprednijih vizualizacija što podrazumeva da je potrebno mnogo više truda i vremena nego kada se koriste high level plaćeni alati ali svakako trud je vredan pokušaja.
Zvanična dokumentacija se nalazi ovde.
Seaborn
Seaborn biblioteka je pre svega fokusirana na izradu atraktivnih vizualizacija statističkih grafikona kao što su prikazi heat mapa, distribucije podataka itd. Ova biblioteka je bazirana i zavisna od Matplotlib biblioteke.
Tutorijal se nalazi ovde.
Bokeh
Još jedna biblioteka koja je usmerena na vizualizacije. Za razliku od Seaborn, Bokeh je nezavisna od Matplotlib-a.
Glavni fokus ovoj biblioteci je interaktivnost i prezentacija vizualizacija kroz moderne web browser-e kao u stilu D3.js. Dokumentacija se može pogledati na ovom linku.
Altair
Altair je novija biblioteka za statističku vizualizaciju. Uz minimalno koda mogu da se produciraju jako efektivne i lepe vizualizacije, a API ove biblioteke je jednostavan i izgrađen na osnovu moćne Vega Lite.
Novi tipovi grafikona i vizualizacija mogu da se očekuju u budućnosti jer je pod konstantnim i aktivnim razvojem.
Mašinsko učenje (machine learning)
Mašinsko učenje je vrsta programiranja koja daje kompjuterima mogućnost da automatski uče od podataka bez potrebe da budu eksplicitno programirani. Ovo znači da ovi programi mogu da promene svoje ponašanje tako što će učiti od podataka. Mašinsko učenje se može grubo podeliti na dve kategorije:
- Učenje pod nadzorom (Supervised learning)
- Učenje bez nadzora (Unsupervised learning)
Scikit-Learn
SciKit-learn je open source biblioteka koja je trenutno jedna od industrijskih standarda kada je u pitanju mašinsko učenje u Python-u. Takođe može da služi kao vrlo efikasan alat za data mining i analizu podataka. Izgrađena je na osnovu NumPy, SciPy i Matplotlib.
Biblioteku kombinuje kvalitetan kod i dobra dokumentacija, lakoća korišćenja i odlične performanse. Poseduje klasifikaciju, regresiju, klastering, preprocesiranje itd. Dizajnirana je da funkcioniše sa Numpy i SciPy bibliotekama. Ima algoritme za mašinsko učenje i može vrlo lako da se mašinsko učenje poveže sa produkcionim sistemima.
MlPy
MlPy je Python biblioteka za mašinsko učenje izgrađena na Numpy-SciPy bibliotekama. Nudi širok spektar metoda za mašinsko učenje kako supervised tako i unsupervised. Ovo je multi platforma, što znači da radi i na Python v2 i na Python v3.
Data scraping
Scrapy
Scrapy predstavlja biblioteku za pravljenje crawling programa poznatijih kao spider bots za dostavljanje struktuiranih podataka kao što su npr. kontakt informacija ili URL-ovi sa interneta.
Open source je, napisana je u Python-u i originalno je dizajnirana striktno za scraping. Vremenom Scrapy je evoluirao u zreo framework sa mogućnošću da skuplja podatke sa API-ja i takođe da se ponaša kao generalni crawler.
Statistika
Statsmodels
Statsmodels je Python biblioteka koja dozvoljava korisnicima da istražuju podatke, procenjuju statističke modele i izvode statističke testove. Poseduje obimnu listu deskriptivne statistike, statističkih testova i dostupna je za različite tipove podataka.
Pruža obimne funkcije za vizualizaciju i dizajnirana je pre svega za statističku analizu i karakterišu je visoke performanse pogotovu kada se upotrebljava sa velikim setovima podataka (big data).
Obrada prirodnog jezika (Natural Language Processing)
NLTK
Skraćenica ove biblioteke zapravo znači The Natural Language Toolkit i koristi se za česte zadatke statističkog procesuiranja prirodnog jezika u Python-u. Izrađena je pre svega da olakša učenje i istraživanje NLP i njegovih srodnih polja (lingvistika, kognitivna nauka i veštačka inteligencija).
Gensim
Gensim je open source biblioteka za Python koja implementira alate koji rade sa vektorskim modelovanjem. Efikasnost postiže korišćenjem NumPy strukture podataka i SciPy operacija i to odlično radi kada su u pitanju veliki tekstovi.
Gensim se koristi za sirove i nestruktuirane digitalne tekstove i implementira razne algoritme koji su unsupervised (bez nadzora).
Zaključak
U tekstu su navedene neke od korisnih i često korišćenih biblioteka kada je u pitanju data science industrija i na njih definitivno treba obratiti pažnju i pratiti njihov razvoj u budućnosti.
Naravno postoji još mnogo frugih biblioteka i framework-a koje su takođe vredne pažnje i koje se koriste tako da budite slobodni ako imate neku sugestiju da podelite utiske u komentaru ispod.
Srećno učenje!
5v2nqf
zilg9a
z54r7v
ac6dqf
fjm5rl