Dziesięć najczęściej popełnianych błędów przez początkujących "Data Scientistów"

7
matekmz
Dziesięć najczęściej popełnianych błędów przez początkujących "Data Scientistów"

Przed osobą, która chce zostać Data Scientistem, stoi bardzo wiele wyzwań. Od takiej osoby wymagana jest ogromna wiedza zarówno ze statystyki, uczenia maszynowego, jak i inżynierii oprogramowania. Komuś, kto dopiero stawia pierwsze kroki w tej branży, może być trudno z początku się w niej odnaleźć, a także narażony jest na popełnienie szeregu błędów, które mogą spowolnić jego rozwój, a co za tym idzie, karierę w Data Science.

Dlatego w tym wpisie postaramy się namierzyć 10 najczęstszych błędów popełnianych przez początkujących Data Scientistów. Pierwsze pięć dotyczy kwestii bardziej ogólnych, jak sposobu uczenia się, zaniedbywania pewnych ważnych aspektów tego zawodu, podczas gdy kolejna połowa jest bardziej techniczna i dotyczy samych twardych umiejętności.

Pamiętajmy, że popełnianie błędów, przywiązywanie zbyt wielkiej wagi do pewnych płaszczyzn tej branży, a lekceważenie innych, może prowadzić do utraty bardzo ważnych zasobów: naszego czasu, energii i motywacji. Może to negatywnie odbić się nie tylko na naszych osiągnięciach zawodowych, ale też na naszej psychice, zniechęcając nas, być może na zawsze, do tego bardzo ciekawego i satysfakcjonującego zawodu. Sprawdźcie dostępne na rynku akcesoria do serwerów, które mogą Wam się przydać i być może znajdziecie coś dla siebie.

1. Uczenie się zbyt wiele teorii

Tak jak wspomnieliśmy wcześniej, Data Science jest nauką o statystyce, uczeniu maszynowym i algorytmach. Nie da się ukryć, że za każdą z tych dziedzin stoi olbrzymia teoria, która pozwoliła na opracowanie skutecznych metod w każdym z tych obszarów. Jednak koncentrowanie się tylko i wyłącznie na zgłębianiu jej niesie ze sobą parę niebezpieczeństw: po pierwsze, może to być zadanie monotonne,  wymagające, a ilość wiedzy, jaka jest do przyswojenia, może nas przytłoczyć. Po drugie, Data Science jest mimo wszystko dziedziną stosowaną. Dużo więcej pożytku przyniesie nam nauka odrobiny teorii, a następnie jej przetestowanie w praktycznym przypadku. Pozwoli nam to lepiej przyswoić wiedzę teoretyczną, a także od razu podszlifujemy swoje umiejętności praktyczne, które są przecież tak ważne w tym zawodzie. Tym bardziej, że jeśli nie będziemy widzieli, jak nauka teorii ma się do praktyki, nasza motywacja może ulec osłabieniu.

2. Kodowanie zbyt wielu algorytmów od zera

Niektórzy ucząc się algorytmów uczenia maszynowego, starają się każdy z nich napisać własnoręcznie. I tak tworzą własne implementacje drzew decyzyjnych, k najbliższych sąsiadów czy prostych sieci neuronowych. O ile pisanie własnych wersji takich modeli jest dobrym ćwiczeniem programistycznym, pozwalającym lepiej zrozumieć i przyswoić, jak działa dany model, zawsze pamiętajmy, że w praktyce prawie nigdy nie implementuje się modeli uczenia maszynowego samemu. Istnieje wiele dojrzałych bibliotek, które zostały na przestrzeni lat przetestowane przez całą społeczność Data Scientistów, co zapewnia nam zarówno niezawodność, jak i dobrą implementację pod względem wydajności. Pamiętajmy więc, że o ile warto czasami zakodować jakiś algorytm od zera, to zawsze jest to w celu szkoleniowym, a nigdy, aby naprawdę wykorzystać taką implementację w warunkach produkcyjnych (sprawdźcie aktualne ceny programów do nauki programowania i kodowania). Dlatego dużo ważniejszym jest, aby rozumieć, jakie modele mamy do dyspozycji, które z nich znajdują zastosowanie w jakich problemach, jaka idea im przyświeca, aby po prostu wiedzieć, po który z nich sięgnąć przy danym zagadnieniu.

3. Rzucanie się na głęboką wodę

Data Science jest nam "sprzedawane" jako dziedzina wiedzy pozwalająca na konstruowanie autonomicznych samochodów, rozpoznawanie ludzi i innych obiektów na zdjęciach czy rozumienie tekstów pisanych w języku naturalnym, takim jak polski czy angielski.

Oczywiście to wszystko prawda. Jednak pamiętajmy, aby najpierw opanować podstawy. Nawet maratończyk musiał najpierw nauczyć się chodzić. Dlatego zanim zaczniemy zgłębiać ostatnio modne uczenie głębokie (deep learning) czy przetwarzanie języka naturalnego, zacznijmy od zrozumienia podstaw statystyki, a także prostych modeli, takich jak regresja czy drzewo decyzyjne. Po pierwsze, tak samo rozwijała się ta dziedzina: najpierw tworzono proste rozwiązania, a dopiero na ich podstawie wymyślano coraz to bardziej skomplikowane algorytmy. Po drugie, pozwoli nam się to nie zniechęcić na samym starcie, a zrozumienie prostszych metod pozwoli nam łatwiej zrozumieć także te trudniejsze. Dokładnie tak samo jest z programowaniem: najpierw uczy się prostych pętli i instrukcji warunkowych, by dopiero później przejść do paradygmatu programowania obiektowego czy wzorców projektowych.

4. Niedocenianie wartości wiedzy dziedzinowej

Oczywiście wiedza ze statystyki, algebry liniowej, uczenia maszynowego czy umiejętność programowania nie zmieniają się i zawsze są takie same, niezależnie od tego, w jakim segmencie rynku zdarzy nam się pracować. Jednak takie kompetencje to nie wszystko. Każda branża ma swoją własną specyfikę, język, którym się posługuje, koncepcje wokół których się obraca, a które to pozwalają po pierwsze na łatwiejszą komunikację pomiędzy ludźmi zajmującymi się tą samą dziedziną, a po drugie są niezbędne, aby naprawdę dobrze rozumieć naturę jej problemów i podejmować dobre decyzje z punktu widzenia Data Science. Dlatego starając się o pracę w banku warto poznać terminy i pojęcia związane choćby z udzielaniem kredytów, a w firmie ubezpieczeniowej te będące specyficzne właśnie dla niej, jak chociażby "bonus malus".

Big-Data-Data-Sciene-Analiza-Danych

5. Zaniedbywanie umiejętności komunikacyjnych

Gdy mówi się o Data Science i ludziach, którzy się tą dziedziną parają, zazwyczaj, tak jak zresztą w tym wpisie, porusza się kwestię umiejętności twardych, jak wspomniane już wcześniej statystyka, algebra liniowa, algorytmy uczenia maszynowego czy programowanie. Jednak nie można zapominać o równie ważnym aspekcie: umiejętnościach komunikacji. Data Scientist nie tylko siedzi nad kartką papieru wyprowadzając wzoru czy przed ekranem monitora pisząc kolejne skrypty. Musi on też komunikować się z różnymi kolegami w pracy, począwszy od programistów, przez analityków, a skończywszy na wszelkiej maści menadżerach. Ludzie ci mają różną wiedzę matematyczną, jednak każdemu z nich Data Scientist będzie musiał wyjaśnić swoje racje oraz wnioski. Dlatego już na początkowym etapie nauki warto próbować wytłumaczyć swój ulubiony algorytm nietechnicznemu koledze. Pozwoli nam to zarówno na ugruntowanie naszej wiedzy, jak i szlifowanie umiejętności komunikacyjnych. Z tymi zaś ma wiele wspólnego kolejny punkt.

6. Brak doskonalenia umiejętności efektywnego wizualizowania danych oraz wyników

To zaniedbanie będzie nam szkodzić w dwójnasób: po pierwsze, gdy dostajemy nowy zbiór danych, naprawdę warto, poza policzeniem podstawowych statystyk i otrzymaniem szeregu liczb, zwizualizować i w ten sposób zapoznać się z danymi. Pozwoli nam to szybciej i bardziej intuicyjnie pozyskać wiedzę o ich naturze.

Drugi powód, dla którego ta umiejętność jest taka ważna, łączy się z poprzednim punktem. Wizualizacje pozwalają nam lepiej komunikować się z drugim człowiekiem. Kolorowe obrazki przemawiają lepiej niż rząd cyfr. Stanowią wspaniałe uzupełnienie, a czasami wręcz punkt główny raportu albo prezentacji. Jedno spojrzenie pozwala nam porównać dwie metody albo różne zestawy parametrów, zrozumieć zależności i podjąć decyzję.

7. Przywiązywanie zbyt wielkiej wagi do algorytmów, a zbyt małej do zmiennych i jakości danych

Naturalnym jest, że gdy zaczynamy swoją przygodę z uczeniem maszynowym, chcemy od razu poznawać najnowsze zdobycze z tej dziedziny: po co uczyć się metod opracowanych 20 lat temu, jeśli powstały już nowsze, ciekawsze, bardziej skomplikowane?

Okazuje się jednak, że to nie do końca dobre podejście. Owszem, powstają coraz to nowe algorytmy, bardziej skomplikowane od poprzednich, które mają zapewnić nam jeszcze lepszą jakość predykcji. Jednak w praktyce okazuje się, że dużo więcej zależy po prostu od jakości danych, na których uczymy nasz model. Mówiąc o jakości danych, możemy to zagadnienie rozpatrywać na dwa sposoby: po pierwsze, sprytny Data Scientist, który ma wiedzę dziedzinową, o której wspominaliśmy w jednym z poprzednich punktów, potrafi zaproponować mierzenie pewnych cech i sygnałów, zależnych od konkretnego problemu, a które po zamianie na liczby okażą się bardzo dobrymi informacjami wspomagającymi podejmowanie decyzji. Innymi słowy, dodanie odpowiedniej wiedzy do modelu może okazać się mieć większe znaczenie, niż sam wybór algorytmu podejmującego decyzję.

data-analyst-vs-data-scientist-article

Drugą kwestią, o której nie możemy zapominać, jest czyszczenie danych. Cały czas miejmy w głowie hasło garbage In, garbage out, czyli jeśli podajemy śmieci na wejściu, to nie możemy się spodziewać niczego innego na wyjściu. Dlatego trzeba wykrywać wszelkie braki danych, wartości spoza zakresu (np. wiek człowieka mniejszy od zera albo większy od 150), wartości niespójne czy odstające. Odpowiednie przygotowanie danych do uczenia modelu może także okazać się o wiele ważniejsze, niż sam jego wybór.

8. Overfitting i używanie złych miar jakości modelu

Kolejną kwestią jest samo poprawne uczenie modelu i ocena jego jakości. Po pierwsze pamiętajmy, żeby modelu nie przeuczyć: ma to miejsce wtedy, gdy model nauczy się dokładnie przewidywać wyniki dla danych, na których się uczy, ale kompletnie nie jest w stanie tej wiedzy uogólnić na jakiekolwiek inne przypadki, obserwacje, które są spoza zbioru treningowego. Pewnym remedium na to zjawisko jest tzw. kroswalidacja (cross-validation). Dzielimy dostępny zbiór na dwie części: większą, zazwyczaj 80% wszystkich obserwacji, na której uczymy model, a także mniejszą, zazwyczaj 20% pozostałych obserwacji, na których oceniamy jakość przewidywań naszego modelu. Nigdy nie testujmy modelu na danych, na których go uczyliśmy.

Drugą sprawą jest dobranie odpowiedniej miary jakości modelu. Zazwyczaj podawany jest tutaj następujący przykład: załóżmy, że mamy rzadką chorobę, która występuje u 1% populacji. Pozostałe 99% jest zdrowe. Chcemy zbudować model, który będzie orzekał, czy dana osoba jest chora na to schorzenie. Wyobraźmy sobie teraz, że zaproponujemy następujące podejście: zawsze, niezależnie od danych, mówimy, że dana osoba jest zdrowa. Jeśli naszą miarą oceny będzie, jak często odpowiedź zgadza się ze stanem faktycznym, otrzymamy 99% skuteczności. Oczywiście model będzie bezużyteczny. Dlatego w przypadku niezbalansowanych problemów używamy takich miar jak precyzja (precision), czułość (recall) i miara F (F-measure), które rozróżniają pomiędzy klasą bardziej i mniej liczną.

9. Brak dokumentowania użytych metod

Początkującego Data Scientista może kusić, aby, po rozwiązaniu danego problemu i zaproponowaniu pewnego modelu przejść od razu do następnego zagadnienia. Jednak dużo lepszą praktyką będzie zatrzymanie się na chwilę i udokumentowanie dotychczasowych poczynań. Co było największym problemem? Czy dane wymagały czyszczenia? Czy trzeba je było w jakiś sposób przetworzyć? Które cechy okazały się kluczowe? Jakie modele zostały przetestowane, które okazały się najlepsze? Jakimi miarami jakości je ocenialiśmy? Spisanie tych informacji może pomóc nam jeszcze raz przeanalizować problem, spojrzeć z boku, czy niczego nie pominęliśmy, a także pozwoli nam do niego wrócić za jakiś czas lub przekazać projekt komu innemu.

10. Usilne dążenie do perfekcji

O ile oczywiście zawsze należy się zastanowić, czy wykonaliśmy naszą pracę odpowiednio i czy nie dałoby się czegoś poprawić, nigdy nie należy tracić lasu wśród drzew. Czy spędzenie kolejnych kilkunastu godzin, aby poprawić wartość miary F na trzecim miejscu po przecinku jest tego warte? Czy nie lepiej będzie zająć się czymś innym, gdzie przy dużo mniejszym nakładzie pracy możemy dokonać naprawdę znaczącej poprawy? Starajmy się poprawiać nasze modele, sprawdzać różne możliwości, ale niech jeden problem nie przysłoni nam oglądu na całość.

Punkt ten możemy też przełożyć na naukę: nie przejmujmy się, że nie wszystko od razu rozumiemy, czy nie wszystko nam wychodzi. Ważne jest, aby każdego dnia robić mały kroczek naprzód, który przybliży nas do bardzo dobrego opanowania całego materiału w przyszłości. Tak samo w wielu przypadkach zupełnie wystarczające będzie, jeśli będziemy umieli np. przetworzyć ramkę danych po przeszukaniu Stackoverflow, zamiast zrobić to z pamięci.

Podsumowując, błędów, jakie mogą popełnić początkujący Data Scientiści, trochę jest. Ważne jest, aby być ich świadomym, by choć części z nich uniknąć. Oczywiście, zgodnie z ostatnim punktem, nie należy się spodziewać, że wszystko pójdzie idealnie. Raczej ważniejsze jest, aby wiedzieć, gdzie szukać pomocy, nie tracić motywacji i traktować proces nauki jako dobrą zabawę.

Kupując najnowszy numer magazynu Komputer Świat (11/2017), znajdziecie wewnątrz zniżki od Kodołamacz.pl. Rabat dostępny jest również dla czytelników wydań elektronicznych. Co więcej, możecie wziąć udział w specjalnym konkursie, w którym do wygrania będzie udział w Warsztacie Programistycznym organizowanym w Warszawie, 18 listopada bieżącego roku. Zgłoszenia przyjmowane są do 31 października!

Szczegóły konkursu i wydarzenia znajdziecie w najnowszym numerze magazynu Komputer Świat, lub w e-wydaniu, dostępnym na stronie KSPlus.pl. Serdecznie zachęcamy!

Tekst napisał Maciej Bartoszuk

Maciej Bartoszuk

Ukończył z wyróżnieniem informatykę na wydziale Matematyki i Nauk Informacyjnych Politechniki Warszawskiej, gdzie aktualnie pracuje w zakładzie Sztucznej Inteligencji i Metod Obliczeniowych. Tam też od 2013 roku prowadzi zajęcia dydaktyczne z programowania w R, Pythonie, C/C++, C#. Uczestnik studiów doktoranckich w Instytucie Podstaw Informatyki Polskiej Akademii Nauk w latach 2013-2015.

Przygotowuje doktorat, system antyplagiatowy dla języka R, który obejmuje zarówno algorytmy przetwarzania kodów źródłowych programów, jak i data science. Prowadzący zajęcia na bootcampach Kodołamacz.pl, wykładowca na studiach podyplomowych "Data Science – algorytmy, narzędzia i aplikacje dla problemów typu Big Data" realizowanych przez Sages oraz Politechnikę Warszawską. Prywatnie miłośnik wycieczek rowerowych i fotografii.

Oceny (9)
Średnia ocena
Twoja ocena
revcorey (2017.10.18, 10:44)
Ocena: 8
Ja to bym powiedział nie data scientistów a studentów tudzież absolwentów uczelni :)
Ineare Terrane (2017.10.18, 21:24)
Ocena: 3
Czyli Data Scientist to taki Cyfrowy Hasiosznup - z masy binarnych śmieci ma wygrzebać przydatne jeszcze bajty :)
pu$2ek (2017.10.19, 09:54)
Ocena: 3
wg mnie w biznesie szczególnie pkt 6 ma ogólne zastosowanie.
Kilka razy spotkałem się z sytuacją w której specjaliści z dziedziny technicznej, (programiści, matematycy) tak skupiają się na swojej działce że zapominają o tym, że ich produkty kupują zazwyczaj ludzie nietechniczni, dla których w jasny sposób trzeba przedstawić korzyści z używania ich programu/danych.

P.S. coś mało komentarzy.. nie ma nazwy firm to nie ma kogo obrzucać błotem i trzeba się skupić na treści? ojeeej...
matekmz (2017.10.19, 11:23)
Ocena: 4
Komentarzy jest niewiele, a tekst bardzo ciekawie napisany. Szkoda, myślałem, że tendencja będzie odwrotna.
wojtzuch (2017.10.19, 14:38)
Ocena: 4
matekmz (2017.10.19, 11:23)
Komentarzy jest niewiele, a tekst bardzo ciekawie napisany. Szkoda, myślałem, że tendencja będzie odwrotna.


Być może czytelnicy spoza branży nie dochodzą do pierwszego punktu, bo zjadło opis dziedziny i nie wiadomo, o co chodzi :)

Tak jak wspomnieliśmy wcześniej, Data Science jest nauką o statystyce, uczeniu maszynowym i algorytmach.


Nie, nie wspomnieliśmy. Jest tylko zdanie o tym, jakiej wiedzy ta dziedzina wymaga.
PCMarek (2017.10.29, 00:16)
Ocena: 2
a co to jest ten 'Data Scientista' ?? i czy ma coś wspólnego ze scientologami ? i czy czasem jakiejś polskiej nazwy nie ma na tą dewiację :)
doman18 (2017.10.31, 15:04)
Ocena: 0
Szacunek za pracę ale tekst powinien pojawić się w jakimś portalu bardziej specjalistycznym. A nie ogólnym portalu o wszystkim związanym z technologią i komputerami. Pytania typu 'co to ten Data Scientista' potwierdzają fakt. Jakby tekst był o czymś bardziej ogólnym przyziemnym, np. o grzechach początkującego programisty, developera gier czy junior admina to więcej osób mogłoby się nim zainteresować. A tak od dechy do dechy przeczyta go garstka osób związanych z tematem. Tak jak już wspomniałem, większą widownię miałby na portalach związanych stricte z programowaniem .
Zaloguj się, by móc komentować
Najnowsi blogerzy
ZenFistunknown_soliderhainczludojadkrzysztofwolongiewiczPuszorMuMineQPhalandircicior112kozarovvkristoflampart[DH] BanitovhpMade In 3WŚruTubaFoxaZlotoUchyGorylJaRoMalloygatorListonosz_złej_nowinytomeczek80max-bitroksiphaker146Blog technologiczny TECHNETQingwaWodziantracer123Windows7 fanWojtek Żuchowski