18 Niezbędne oprogramowanie, o którym powinien wiedzieć każdy specjalista ds. danych

Data science jest dla każdego, kto uwielbia rozplątywać splątane rzeczy i odkrywać ukryte cuda w pozornym bałaganie.

To jak szukanie igieł w stogach siana; tylko, że naukowcy zajmujący się danymi nie muszą w ogóle brudzić sobie rąk. Używając wymyślnych narzędzi z kolorowymi wykresami i patrząc na stosy liczb, po prostu zanurzają się w stosach danych i znajdują cenne wskazówki w postaci spostrzeżeń o dużej wartości biznesowej.

Typowy naukowiec danych zestaw narzędzi powinien zawierać co najmniej jeden element z każdej z tych kategorii: relacyjne bazy danych, bazy danych NoSQL, frameworki big data, narzędzia do wizualizacji, narzędzia do scrapingu, języki programowania, IDE i narzędzia do głębokiego uczenia się.

Relacyjne bazy danych

Relacyjna baza danych to zbiór danych uporządkowanych w postaci tabel z atrybutami. Tabele można łączyć ze sobą, definiując relacje i ograniczenia oraz tworząc tak zwany model danych. Do pracy z relacyjnymi bazami danych często używa się języka o nazwie SQL (Structured Query Language).

Aplikacje zarządzające strukturą i danymi w relacyjnych bazach danych nazywane są RDBMS (Relational DataBase Management Systems). Istnieje wiele takich aplikacji, a najbardziej istotne ostatnio zaczęły koncentrować się na dziedzinie nauki o danych, dodając funkcje do pracy z repozytoriami Big Data oraz do stosowania technik, takich jak analiza danych i uczenie maszynowe.

Serwer SQL

RDBMS firmy Microsoft, rozwija się od ponad 20 lat konsekwentnie rozszerzając swoją korporacyjną funkcjonalność. Od wersji 2016 SQL Server oferuje portfolio usług, które obejmują obsługę wbudowanego kodu R. SQL Server 2017 podnosi stawkę, zmieniając nazwę swoich usług R na usługi języka maszynowego i dodając obsługę języka Python (więcej o tych dwóch językach poniżej).

Dzięki tym ważnym dodatkom program SQL Server jest skierowany do naukowców zajmujących się danymi, którzy mogą nie mieć doświadczenia z Transact SQL, natywnym językiem zapytań programu Microsoft SQL Server.

SQL Server jest daleki od bycia darmowym produktem. Możesz kupić licencje, aby zainstalować go na Windows Server (cena będzie się różnić w zależności od liczby jednoczesnych użytkowników) lub używać go jako usługi płatnej za pośrednictwem chmury Microsoft Azure. Nauka Microsoft SQL Server jest łatwa.

MySQL

Po stronie oprogramowania open source MySQL ma koronę popularności RDBMS. Chociaż firma Oracle jest obecnie jej właścicielem, nadal jest bezpłatna i udostępniana na zasadach licencji GNU General Public License. Większość aplikacji internetowych używa MySQL jako bazowego repozytorium danych, dzięki jego zgodności ze standardem SQL.

Jego popularność przyczyniają się również do łatwych procedur instalacji, dużej społeczności programistów, mnóstwa obszernej dokumentacji i narzędzi innych firm, takich jak phpMyAdmin, które upraszczają codzienne czynności związane z zarządzaniem. Chociaż MySQL nie ma natywnych funkcji do analizy danych, jego otwartość pozwala na integrację z niemal każdym wybranym narzędziem do wizualizacji, raportowania i analizy biznesowej.

PostgreSQL

Inną opcją RDBMS o otwartym kodzie źródłowym jest PozycjatgreSQL. Chociaż nie jest tak popularny jak MySQL, PostgreSQL wyróżnia się elastycznością i rozszerzalnością oraz obsługą złożonych zapytań, wykraczających poza podstawowe instrukcje, takie jak SELECT, WHERE i GROUP BY.

Dzięki tym cechom zyskuje popularność wśród naukowców zajmujących się danymi. Inną ciekawą funkcją jest wsparcie dla wielu środowisk, co pozwala na wykorzystanie go w środowiskach chmurowych i on-premise lub w połączeniu obu, powszechnie znanych jako hybrydowe środowiska chmurowe.

PostgreSQL jest w stanie łączyć przetwarzanie analityczne online (OLAP) z przetwarzaniem transakcji online (OLTP), pracując w trybie zwanym hybrydowym przetwarzaniem transakcyjnym/analitycznym (HTAP). Jest również dobrze przystosowany do pracy z big data, dzięki dodaniu PostGIS dla danych geograficznych i JSON-B dla dokumentów. PostgreSQL obsługuje również dane nieustrukturyzowane, co pozwala na przynależność do obu kategorii: baz danych SQL i NoSQL.

Bazy danych NoSQL

Ten typ repozytorium danych, znany również jako nierelacyjne bazy danych, zapewnia szybszy dostęp do nietabelarycznych struktur danych. Przykładami takich struktur są między innymi wykresy, dokumenty, szerokie kolumny, kluczowe wartości. Magazyny danych NoSQL mogą odłożyć na bok spójność danych na rzecz innych korzyści, takich jak dostępność, partycjonowanie i szybkość dostępu.

Ponieważ w magazynach danych NoSQL nie ma języka SQL, jedynym sposobem na zapytanie tego rodzaju bazy danych jest użycie języków niskiego poziomu, a nie ma takiego języka, który byłby tak powszechnie akceptowany jak SQL. Poza tym nie ma standardowych specyfikacji dla NoSQL. Dlatego, jak na ironię, niektóre bazy danych NoSQL zaczynają dodawać obsługę skryptów SQL.

MongoDB

MongoDB to popularny system bazodanowy NoSQL, który przechowuje dane w postaci dokumentów JSON. Koncentruje się na skalowalności i elastyczności przechowywania danych w sposób nieustrukturyzowany. Oznacza to, że nie ma ustalonej listy pól, które muszą być przestrzegane we wszystkich przechowywanych elementach. Co więcej, struktura danych może być zmieniana w czasie, co w relacyjnej bazie danych wiąże się z wysokim ryzykiem wpływu na działające aplikacje.

Technologia w MongoDB umożliwia indeksowanie, zapytania ad-hoc i agregację, które stanowią solidną podstawę do analizy danych. Rozproszona natura bazy danych zapewnia wysoką dostępność, skalowanie i dystrybucję geograficzną bez konieczności stosowania zaawansowanych narzędzi.

Redis

Ten jedna to kolejna opcja na froncie open-source, NoSQL. Jest to w zasadzie magazyn struktury danych, który działa w pamięci i oprócz świadczenia usług bazodanowych działa również jako pamięć podręczna i broker komunikatów.

Obsługuje mnóstwo niekonwencjonalnych struktur danych, w tym skróty, indeksy geoprzestrzenne, listy i posortowane zestawy. Jest dobrze przystosowany do nauki o danych dzięki wysokiej wydajności w zadaniach wymagających dużej ilości danych, takich jak obliczanie przecięć zbiorów, sortowanie długich list lub generowanie złożonych rankingów. Powodem wyjątkowej wydajności Redisa jest jego działanie w pamięci. Można go skonfigurować tak, aby utrwalał dane selektywnie.

Ramy Big Data

Załóżmy, że musisz przeanalizować dane generowane przez użytkowników Facebooka w ciągu miesiąca. Mówimy o zdjęciach, filmach, wiadomościach, wszystkim. Biorąc pod uwagę, że ponad 500 terabajtów danych jest dodawanych codziennie do sieci społecznościowej przez jej użytkowników, trudno jest zmierzyć objętość reprezentowaną przez cały miesiąc jej danych.

Aby efektywnie manipulować tak ogromną ilością danych, potrzebujesz odpowiedniego frameworka zdolnego do obliczania statystyk w architekturze rozproszonej. Na rynku dominują dwa frameworki: Hadoop i Spark.

Hadoop

Jako ramy Big Data, Hadoop zajmuje się zawiłościami związanymi z wyszukiwaniem, przetwarzaniem i przechowywaniem ogromnych stosów danych. Hadoop działa w środowisku rozproszonym, składającym się z klastrów komputerowych przetwarzających proste algorytmy. Istnieje algorytm aranżacji o nazwie MapReduce, który dzieli duże zadania na małe części, a następnie rozdziela te małe zadania między dostępne klastry.

Hadoop jest zalecany w przypadku repozytoriów danych klasy korporacyjnej, które wymagają szybkiego dostępu i wysokiej dostępności, a wszystko to w tanim schemacie. Ale potrzebujesz administratora Linuksa z deep Wiedza Hadoop utrzymanie struktury i działanie.

Iskra

Hadoop nie jest jedyną dostępną platformą do manipulacji dużymi danymi. Innym wielkim nazwiskiem w tej dziedzinie jest Iskra. Silnik Spark został zaprojektowany, aby przewyższyć Hadoop pod względem szybkości analizy i łatwości użytkowania. Najwyraźniej osiągnął ten cel: niektóre porównania mówią, że Spark działa do 10 razy szybciej niż Hadoop podczas pracy na dysku i 100 razy szybciej działa w pamięci. Wymaga również mniejszej liczby maszyn do przetworzenia tej samej ilości danych.

Oprócz szybkości, kolejną zaletą Sparka jest obsługa przetwarzania strumieniowego. Ten rodzaj przetwarzania danych, zwany także przetwarzaniem w czasie rzeczywistym, obejmuje ciągłe wprowadzanie i wyprowadzanie danych.

Narzędzia do wizualizacji

Powszechny dowcip wśród naukowców zajmujących się danymi mówi, że jeśli wystarczająco długo torturujesz dane, przyznają się do tego, co musisz wiedzieć. W tym przypadku „tortury” oznaczają manipulowanie danymi poprzez ich przekształcanie i filtrowanie w celu ich lepszej wizualizacji. I tu właśnie pojawiają się narzędzia do wizualizacji danych. Narzędzia te pobierają wstępnie przetworzone dane z wielu źródeł i pokazują ujawnione prawdy w graficznych, zrozumiałych formach.

Do tej kategorii należą setki narzędzi. Czy ci się to podoba, czy nie, najczęściej używanym jest Microsoft Excel i jego narzędzia do tworzenia wykresów. Wykresy programu Excel są dostępne dla każdego, kto korzysta z programu Excel, ale mają ograniczoną funkcjonalność. To samo dotyczy innych aplikacji do arkuszy kalkulacyjnych, takich jak Arkusze Google i Libre Office. Ale mówimy tutaj o bardziej szczegółowych narzędziach, specjalnie dostosowanych do analizy biznesowej (BI) i analizy danych.

Power BI

Nie tak dawno Microsoft wypuścił swój Power BI aplikacja wizualizacyjna. Może pobierać dane z różnych źródeł, takich jak pliki tekstowe, bazy danych, arkusze kalkulacyjne i wiele usług danych online, w tym Facebook i Twitter, i używać ich do generowania pulpitów nawigacyjnych wypełnionych wykresami, tabelami, mapami i wieloma innymi obiektami wizualizacyjnymi. Obiekty pulpitu nawigacyjnego są interaktywne, co oznacza, że ​​możesz kliknąć serię danych na wykresie, aby ją wybrać i użyć jako filtru dla innych obiektów na tablicy.

Usługa Power BI to połączenie aplikacji klasycznej systemu Windows (część pakietu Office 365), aplikacji sieci Web i usługi online do publikowania pulpitów nawigacyjnych w sieci Web i udostępniania ich użytkownikom. Usługa umożliwia tworzenie i zarządzanie uprawnieniami, aby przyznać dostęp do tablic tylko wybranym osobom.

Żywy obraz

Żywy obraz to kolejna opcja tworzenia interaktywnych pulpitów nawigacyjnych z kombinacji wielu źródeł danych. Oferuje również wersję komputerową, wersję internetową i usługę online do udostępniania utworzonych pulpitów nawigacyjnych. Działa naturalnie „zgodnie ze sposobem, w jaki myślisz” (jak twierdzi) i jest łatwy w użyciu dla osób nietechnicznych, co jest wzbogacone o wiele samouczków i filmów online.

Niektóre z najbardziej wyjątkowych funkcji Tableau to nieograniczone złącza danych, dane na żywo i w pamięci oraz projekty zoptymalizowane pod kątem urządzeń mobilnych.

QlikView

QlikView oferuje przejrzysty i prosty interfejs użytkownika, który pomaga analitykom odkrywać nowe spostrzeżenia na podstawie istniejących danych za pomocą elementów wizualnych, które są łatwo zrozumiałe dla wszystkich.

To narzędzie jest znane z tego, że jest jedną z najbardziej elastycznych platform Business Intelligence. Udostępnia funkcję o nazwie Wyszukiwanie asocjacyjne, która pomaga skupić się na najważniejszych danych, oszczędzając czas potrzebny na samodzielne ich znalezienie.

Dzięki QlikView możesz współpracować z partnerami w czasie rzeczywistym, przeprowadzając analizy porównawcze. Wszystkie istotne dane można połączyć w jedną aplikację z funkcjami bezpieczeństwa, które ograniczają dostęp do danych.

Narzędzia do skrobania

W czasach, gdy internet dopiero się pojawiał, roboty sieciowe zaczęły podróżować wraz z sieciami zbierającymi informacje na swojej drodze. Wraz z rozwojem technologii termin indeksowanie stron internetowych zmienił się na skrobanie stron internetowych, ale nadal oznacza to samo: automatyczne wyodrębnianie informacji ze stron internetowych. Aby wykonać web scraping, używasz zautomatyzowanych procesów lub botów, które przeskakują z jednej strony internetowej na drugą, wydobywając z nich dane i eksportując je do różnych formatów lub wstawiając je do baz danych w celu dalszej analizy.

Poniżej podsumowujemy charakterystykę trzech najpopularniejszych obecnie dostępnych skrobaków internetowych.

Ośmiornica

Ośmiornica Web scraper oferuje kilka interesujących cech, w tym wbudowane narzędzia do uzyskiwania informacji ze stron internetowych, które nie ułatwiają robotom skrobania wykonywania ich pracy. Jest to aplikacja komputerowa, która nie wymaga kodowania, z przyjaznym dla użytkownika interfejsem użytkownika, który umożliwia wizualizację procesu ekstrakcji za pomocą graficznego projektanta przepływu pracy.

Wraz z samodzielną aplikacją Octoparse oferuje usługę opartą na chmurze, która przyspiesza proces ekstrakcji danych. Użytkownicy mogą doświadczyć 4x do 10x wzrostu prędkości podczas korzystania z usługi w chmurze zamiast aplikacji komputerowej. Jeśli pozostaniesz przy wersji komputerowej, możesz korzystać z Octoparse za darmo. Ale jeśli wolisz korzystać z usługi w chmurze, będziesz musiał wybrać jeden z płatnych planów.

Pochłaniacz treści

Jeśli szukasz bogatego w funkcje narzędzia do skrobania, powinieneś zwrócić uwagę Pochłaniacz treści. W przeciwieństwie do Octoparse, aby korzystać z Content Grabbera, konieczne jest posiadanie zaawansowanych umiejętności programistycznych. W zamian otrzymujesz edycję skryptów, interfejsy debugowania i inne zaawansowane funkcje. Dzięki Content Grabber możesz używać języków .Net do pisania wyrażeń regularnych. W ten sposób nie musisz generować wyrażeń za pomocą wbudowanego narzędzia.

Narzędzie oferuje interfejs API (interfejs programowania aplikacji), którego można użyć do dodania funkcji skrobania do aplikacji komputerowych i internetowych. Aby korzystać z tego interfejsu API, programiści muszą uzyskać dostęp do usługi Content Grabber Windows.

ParseHub

Ten skrobak może obsługiwać obszerną listę różnych typów treści, w tym fora, zagnieżdżone komentarze, kalendarze i mapy. Może również radzić sobie ze stronami zawierającymi uwierzytelnianie, JavaScript, Ajax i inne. ParseHub może być używany jako aplikacja internetowa lub aplikacja komputerowa działająca w systemach Windows, macOS X i Linux.

Podobnie jak Content Grabber, zaleca się posiadanie pewnej wiedzy programistycznej, aby jak najlepiej wykorzystać ParseHub. Ma darmową wersję, ograniczoną do 5 projektów i 200 stron na uruchomienie.

Języki programowania

Podobnie jak wcześniej wspomniany język SQL został zaprojektowany specjalnie do pracy z relacyjnymi bazami danych, istnieją inne języki stworzone z wyraźnym naciskiem na naukę o danych. Języki te pozwalają programistom pisać programy, które zajmują się masową analizą danych, taką jak statystyka i uczenie maszynowe.

SQL jest również uważany za ważną umiejętność, którą programiści powinni mieć do nauki o danych, ale to dlatego, że większość organizacji wciąż ma dużo danych w relacyjnych bazach danych. „Prawdziwe” języki nauki o danych to R i Python.

Pyton

Pyton to wysokopoziomowy, interpretowany język programowania ogólnego przeznaczenia, dobrze przystosowany do szybkiego tworzenia aplikacji. Ma prostą i łatwą do nauczenia składnię, która pozwala na stromą krzywą uczenia się i obniżenie kosztów utrzymania programu. Jest wiele powodów, dla których jest to preferowany język nauki o danych. Aby wymienić kilka: potencjał skryptowy, szczegółowość, przenośność i wydajność.

Język ten jest dobrym punktem wyjścia dla naukowców zajmujących się danymi, którzy planują dużo eksperymentować przed przystąpieniem do prawdziwej i ciężkiej pracy z przetwarzaniem danych i którzy chcą tworzyć kompletne aplikacje.

R

The język R służy głównie do przetwarzania danych statystycznych i tworzenia wykresów. Chociaż nie jest przeznaczony do tworzenia pełnoprawnych aplikacji, jak miałoby to miejsce w przypadku Pythona, R stał się bardzo popularny w ostatnich latach ze względu na jego potencjał do eksploracji danych i analizy danych.

Dzięki stale rosnącej bibliotece bezpłatnych pakietów, które rozszerzają jego funkcjonalność, R jest w stanie wykonywać wszelkiego rodzaju prace związane z przetwarzaniem danych, w tym modelowanie liniowe/nieliniowe, klasyfikację, testy statystyczne itp.

Nie jest to łatwy język do nauczenia się, ale kiedy już zapoznasz się z jego filozofią, będziesz wykonywać obliczenia statystyczne jak profesjonalista.

IDE

Jeśli poważnie rozważasz poświęcenie się nauce o danych, musisz starannie wybrać zintegrowane środowisko programistyczne (IDE), które odpowiada Twoim potrzebom, ponieważ Ty i Twoje IDE spędzicie dużo czasu na wspólnej pracy.

Idealne środowisko IDE powinno zawierać wszystkie narzędzia potrzebne w codziennej pracy programisty: edytor tekstu z podświetlaniem składni i autouzupełnianiem, potężny debugger, przeglądarkę obiektów i łatwy dostęp do narzędzi zewnętrznych. Poza tym musi być zgodny z preferowanym językiem, więc dobrym pomysłem jest wybranie swojego IDE po poznaniu języka, którego będziesz używać.

Spyder

Ten Ogólne środowisko IDE jest przeznaczone głównie dla naukowców i analityków, którzy również muszą kodować. Aby zapewnić im wygodę, nie ogranicza się do funkcjonalności IDE – udostępnia również narzędzia do eksploracji/wizualizacji danych i interaktywnego wykonywania, jakie można znaleźć w pakiecie naukowym. Edytor w Spyder obsługuje wiele języków i dodaje przeglądarkę klas, dzielenie okien, skok do definicji, automatyczne uzupełnianie kodu, a nawet narzędzie do analizy kodu.

Debuger pomaga w interaktywnym śledzeniu każdego wiersza kodu, a profiler pomaga w znajdowaniu i eliminowaniu nieefektywności.

PyCharm

Jeśli programujesz w Pythonie, prawdopodobnie Twoim wyborem będzie IDE: PyCharm. Posiada inteligentny edytor kodu z inteligentnym wyszukiwaniem, uzupełnianiem kodu oraz wykrywaniem i naprawianiem błędów. Za pomocą jednego kliknięcia możesz przeskoczyć z edytora kodu do dowolnego okna kontekstowego, w tym testu, supermetody, implementacji, deklaracji i innych. PyCharm obsługuje Anacondę i wiele pakietów naukowych, takich jak NumPy i Matplotlib, by wymienić tylko dwa z nich.

Oferuje integrację z najważniejszymi systemami kontroli wersji, a także z testerem, profilerem i debuggerem. Aby sfinalizować transakcję, integruje się również z Dockerem i Vagrantem, aby zapewnić wieloplatformowy rozwój i konteneryzację.

RStudio

Dla tych analityków danych, którzy wolą zespół R, IDE z wyboru powinno być: RStudio, ze względu na wiele funkcji. Możesz zainstalować go na komputerze stacjonarnym z systemem Windows, macOS lub Linux lub możesz uruchomić go z przeglądarki internetowej, jeśli nie chcesz instalować go lokalnie. Obie wersje oferują gadżety, takie jak podświetlanie składni, inteligentne wcięcia i uzupełnianie kodu. Dostępna jest zintegrowana przeglądarka danych, która przydaje się, gdy trzeba przeglądać dane tabelaryczne.

Tryb debugowania pozwala zobaczyć, jak dane są aktualizowane dynamicznie podczas wykonywania programu lub skryptu krok po kroku. W celu kontroli wersji RStudio integruje obsługę SVN i Git. Miłym plusem jest możliwość tworzenia grafik interaktywnych, z bibliotekami Shiny i Gives.

Twój osobisty zestaw narzędzi

W tym momencie powinieneś mieć pełny obraz narzędzi, które powinieneś znać, aby doskonalić się w nauce o danych. Mamy również nadzieję, że przekazaliśmy Ci wystarczająco dużo informacji, aby zdecydować, która opcja jest najwygodniejsza w każdej kategorii narzędzi. Teraz to zależy od Ciebie. Data science to kwitnąca dziedzina rozwijać karierę. Ale jeśli chcesz to zrobić, musisz być na bieżąco ze zmianami trendów i technologii, ponieważ zachodzą one niemal codziennie.