Musisz nauczyć się chodzić, zanim zaczniesz biegać.

Terry Pratchett

Często zapominam, że najważniejsze są podstawy. Tonę w morzu możliwości i mnogości rozwiązań. Chcę poznać wszystko, w efekcie nie znam niczego. Powyższy cytat przypomina mi, aby skupić się na podstawach przed robieniem zaawansowanych rzeczy.

Wpis ten jest logiczną kontynuacją wpisu o 7 słowach kluczowych, bo chcąc pracować z danymi, to oprócz teoretycznego zrozumienia potrzebne są praktyczne umiejętności.

Ponieważ mam ograniczone zasoby czasu i energii, to powstaje więc pytanie, na czym się skupić skoro możliwości jest tak wiele.

Najważniejszą umiejętnością jest posługiwanie się narzędziami, które poskromią dane i dadzą odpowiedź na zadane pytania.

Celem tego wpisu nie jest więc opisanie wszystkich możliwych narzędzi i bibliotek, z którymi można się spotkać przy pracy z danymi.

6 Niezbędnych Narzędzi

1. Python

Praca z danymi polega na badaniu i pozyskiwaniu z nich informacji. Aby uzyskać taką informację, często trzeba wykonać po drodze wiele operacji: pozyskać dane, zaimportować, odpowiednio przetworzyć, poradzić sobie z brakującymi danymi, przeanalizować, zaprezentować i zinterpretować.

Wiele z tych operacji, gdyby nie języki programowania, trwałoby niemiłosiernie długo. Bez funkcji i metod programistycznych efektywna praca byłaby niemożliwa.

Na rynku istnieje sporo języków programowania. Jest ich tak dużo, że ciężko wszystkie wymienić. Aby ten wybór uprościć, warto sobie zadać wstępne pytania:

  • Jak szybko jestem w stanie się danego języka programowania nauczyć?
  • Jak bardzo jest on elastyczny?

Pomocnym może okazać się poniższy ranking pokazujący popularność kilku języków programowania.

TIOBE INDEX LUTY 2020
Popularność języków programowania; TIOBE INDEX

Nie jest tajemnicą, że w świecie Data Science najbardziej popularnym obecnie językiem programowania jest Python. Jak widać, jego popularność rośnie. Być może jest to związane z tym, że:

  • jest intuicyjny i łatwy w nauce
  • jest bardzo elastyczny, bo ucząc się go, możemy zastosować go w wielu różnych dziedzinach niekoniecznie związanych z danymi, analizami czy uczeniem maszynowym.

Warto w tym miejscu wspomnieć o języku R, który jest ujęty w powyższym rankingu. Dla osób, które mają głębokie zrozumienie statystyki, może będzie to bardziej oczywisty wybór. Dla mnie jednak bariera wejścia, czyli nauka tego narzędzia na samym początku jest zbyt duża. Moim zdaniem osobom, które zaczynają przygodę z danymi, też łatwiej będzie zacząć od Pythona.

Warto pobrać go w postaci gotowego pakietu Anaconda distribution. W tym pakiecie dostajemy cały zestaw darmowych narzędzi i bibliotek gotowych do pracy.

Poniżej kilka przydatnych linków:

2. Pandas

Pandas (Python Data Analysis Library) jest darmową biblioteką Pythona pozwalającą na pracę i różnego rodzaju operacje z danymi. Od importowania danych, poprzez ich transformację, analizę do prezentacji włącznie.

Pandas jest bardzo wydajna, ogromne ilości danych potrafi szybko i łatwo czytać, przekształcać, agregować i wizualizować.

Jako źródło danych możemy wykorzystać zwykłe pliki tekstowe, CSV, pliki HTML, a także bazy danych SQL. Wszechstronność tej biblioteki jest ogromna.

Co możesz zrobić z Pandas?

  • Importować dane z różnych źródeł
  • Indeksować, agregować, sortować, scalać i przekształcać dane
  • Radzić sobie z brakującymi wartościami w zbiorze danych
  • Wizualizować i prezentować wyniki za pomocą wykresów

Wszystko to czyni Pandas, fundamentalną biblioteką w Data Science.

3. NumPy

Podstawowa biblioteka Pythona do pracy z wielowymiarowymi tablicami. Zapewnia wysoką wydajność dlatego często wykorzystywana do przechowywania i manipulowania tablicami.

Kiedy używamy? Kiedy chcemy dokonywać operacji na tablicy zawierającej te same typy danych. Są to duże obiekty z dużą liczbą danych i chcemy, aby to było szybkie i wydajne.

Pandas w głównej mierze opiera się o NumPy i dzięki niej zawdzięcza swoją wydajność.

4. i 5. Matplotlib i Seaborn

W pewnym momencie chcemy nasze dane wizualizować, aby je przeanalizować i zinterpretować. W tym celu potrzebujemy grafik i wykresów.

Do tych celów świetnie nadaje się biblioteka Matplotlib. Jest potężna, jeśli chodzi o możliwości, ale bywa nieporęczna w użyciu.

Seaborn czyni o wiele łatwiejszym tworzenie wizualizacji. Jest to biblioteka zbudowana na Matplotlib ale oferuje bardziej przyjemny i prostszy interfejs. Powiedzmy Matplotlib lepiej opakowane.

6. Scikit Learn

Scikit-Learn jest podstawową i ogólnego zastosowania biblioteką do uczenia maszynowego w Pythonie. Posiada wiele wbudowanych algorytmów i modułów do przygotowania danych, trenowania, testowania i walidacji modeli.

Podsumowanie

Oczywiście są jeszcze inne narzędzia, o których nie wspomniałem: TensorFlow, Keras, Statsmodels, Plotly i wiele innych. Nie chodzi o to by znać wszystkie, ale by poznać te niezbędne i móc ich używać.

Zaprezentowałem moim zdaniem niezbędne narzędzia do pracy z danymi. Te, z którymi najczęściej się spotkamy. Warto więc od nich zacząć, bo łączą się z umiejętnościami, których potrzebujemy:

  • praca z danymi: Pandas i NumPy
  • wizualizacja: Matplotlib i Seaborn
  • uczenie maszynowe: Scikit Learn
  • automatyzacja i połączenie wszystkiego w jedno: Python

Z czasem dojdziemy do momentu, kiedy opanowane podstawy pozwolą nam ruszyć dalej z tematami bardziej zaawansowanymi. Jednym słowem nauczmy się chodzić, zanim zaczniemy biegać.