Software

Nie da się badać danych bez używania odpowiedniego oprogramowania. No ok, można samodzielnie napisać funkcje dla każdego algorytmu w każdym języku programowania, ale niekoniecznie ma to sens. Będzie bardzo trudno utrzymać takie rozwiązanie i dzielić się z nim innymi. No, chyba że to, co chcemy zrobić, nie zostało przez nikogo do tej pory ogarnięte i opublikowane. W innym wypadku powinniśmy skorzystać z powszechnie znanych, wspieranych i przetestowanych rozwiązań. Oto moje preferencje, jeśli chodzi o software w moim „warsztacie”:

System operacyjny:

Ubuntu Logo
By Canonical Ltd. – http://design.ubuntu.com/wp-content/uploads/logo-ubuntu_no%C2%AE-black_orange-hex.svg, Public Domain, Link

Ubuntu LTS – Ubuntu to darmowa dystrybucja GNU/Linux wspierana przez firmę Canonical. Wybrałem Ubuntu, gdyż bazuje na Debianie, co daje mu solidną bazę łatwo instalowalnych paczek z oprogramowaniem oraz całkiem sporą stabilność użytkowania. Ubuntu zostało również całkiem dobrze przyjęte w środowisku badaczy danych, dzięki czemu wiele nowoczesnych rozwiązań trafia najpierw do tej dystrybucji. Aktualnie używam Ubuntu w wersji 16.04, lecz jeśli przygotowujesz się do nowej instalacji, to powinieneś wybrać każdą nowszą wersję, która ma dopisek LTS. Ten dopisek gwarantuje, że firma Canonical będzie wspierać to wydanie przez 5 lat co najmniej w kontekście poprawek bezpieczeństwa.

Platforma programistyczna:

Anaconda Logo
By Source (WP:NFCC#4), Fair use, Link

Anaconda – Anaconda to prawie kompletny zestaw narzędzi do badania danych, bazujący na Pythonie i R. Większość składników Anacondy jest open source, a te, które nie są, są darmowe. Działa na systemach Windows, macOS i Linux więc prawie każdy będzie mógł korzystać z tego zestawu. Anaconda jest dystrybuowana w dwóch wersjach – z Pythonem 2 i 3. Jeśli zaczynamy nowe projekty, to zawsze powinniśmy wybrać Anacondę z Pythonem 3.

Języki programowania:

Python Logo
By www.python.org – https://www.python.org/community/logos/, GPL, Link

Python – Uniwersalny (i open source) język programowania, a od kilku lat również uniwersalny język wykorzystywany w badaniu danych. Sam Python nie daje zbyt dużego wsparcia w pracy z danymi, ale dzięki dużej liczbie solidnie przygotowanych modułów rozszerzających jego funkcjonalność, bardzo szybko możemy wystartować z projektami analitycznymi, uczeniem maszynowym i sztuczną inteligencją. Tak jak wspomniałem powyżej, wszystkie nowe projekty powinny bazować na Pythonie 3, gdyż wersje modułów do Pythona 2 są już zaplanowane do wygaszenia.

R Logo
By Hadley Wickham and others at RStudio – https://www.r-project.org/logo/, CC BY-SA 4.0, Link

R – Zanim Python stał się popularny w nauce o danych, R dominował tę dziedzinę. R jest również językiem open source i można go łatwo doinstalować przez Anacondę. Praktycznie prawie wszystko, co da się wykonać w Pythonie w kontekście nauki o danych, da się również wykonać w R. W drugą stronę również mamy taką możliwość.

IDE:

Jupyter Logo
By BonyicecreamOwn work, CC BY-SA 4.0, Link

Jupyter Notebook – Jupyter Notebook to całkiem zgrabne IDE działające w przeglądarce internetowej, które pozwala na interaktywną pracę z kodem, wykonywanie bloków kodu w wygodniej kolejności oraz umożliwia integrację kodu, opisów w markdown i latex oraz umieszczanie wizualizacji. Utworzone w ten sposób notatniki stanowią interaktywne raporty, które ułatwiają rozwój i wymianę wyników badań.

Moduły Python:

Pandas Logo
By Michael Droettboom – https://github.com/pydata/pandas/commit/ab4ac12, CC BY-SA 4.0, Link

Pandas – Pandas to podstawowy moduł do manipulacji danymi w Pythonie. Oprócz funkcji, które ułatwiają oczyszczanie i przekształcanie danych, dodaje jeszcze dwa nowe typy danych: DataFrame i Series, które są po prostu bardzo popularnymi ramkami danych i szeregami używanymi w nauce o danych. Moduł Pandas bazuje na module NumPy, więc nie musimy martwić się o szybkość operacji, a dodatkowo dostajemy bardzo wygodne interfejsy do pracy.

Scikit-Learn Logo
By Source (WP:NFCC#4), Fair use, Link

Scikit-Learn – Trudno byłoby tworzyć modele w uczeniu maszynowym bez solidnie zaimplementowanych algorytmów. W Pythonie największym zbiorem takich implementacji jest moduł Scikit-Learn. Moduł ten zawiera kilkanaście algorytmów do uczenia nadzorowanego i nienadzorowanego oraz algorytmy do przekształceń danych, selekcji cech i wielu pomniejszych operacji związanych z uczeniem maszynowym.

Biblioteki R:

RStudio Logo
By Source, Fair use, Link

Tidyverse – Tidyverse to zbiór bibliotek R, które współdzielą wspólną filozofię i są zaprojektowane, żeby jak najbardziej ułatwić badanie danych. Zbiór ten składa się z 8 bibliotek, z których każda może być równie dobrze używana osobno. Tidyverse jest rozwijane przez zespół odpowiedzialny a RStudio.