Cała prawda o matematyce w DS
Często na różnych grupach na fejsie widzę pytania o to czy matematyka jest potrzebna w DS (Data Science). Odpowiedzi są tak mocno podzielone, że gdybym była autorką pytania, to czułabym że wiem dokładnie tyle samo przed zadaniem pytania co i po 🤷♀️🤷♀️ Jedni “straszą” matematyką przyszłych DSów a inni twierdzą, że “prawie się nie przydaje” dlatego postanowiłam rozprawić się z tym pytaniem oraz wyjaśnić skąd wynika ta podzielność odpowiedzi.
Zanim zaczniemy chciałabym podkreślić, że wszystko co napiszę dotyczy głównie początków drogi w Data Science. “Im dalej w las, tym więcej drzew” – nie mogę zagwarantować, że matematyka o której piszę w poście wystarczy na dowolnym etapie. W szczególności nasze ambicje mogą podążyć za nieco bardziej skomplikowanymi modelami i trudno jest wówczas generalizować nt. tego co potrzebne, a co nie. To co opiszę zazwyczaj wystarczy aby zostać juniorem. Oczywiście każda firma ma inne wymagania i inny poziom, dlatego nie gwarantuję, że to wystarczy, ale ogółem powinno.
Czym jest w ogóle Data Science?
Data Science jest dziedziną nauki, która zajmuje się badaniem danych. Zaczynając od feature engineering’u, czyli sprawdzeniu jakości danych, wydobyciu tylko istotnych zmiennych a kończąc na tworzeniu modeli zarówno statystycznych jak i modeli uczenia maszynowego. Jeżeli interesuje Cię jak wygląda praca jako Data Scientist, zajrzyj do jednego z moich poprzednich wpisów 👉👉👉https://analitycznyumysl.pl/jak-zaczac/
Warto również wspomnieć, że teoria Data Science to nic innego jak połączenie kilku dziedzin matematyki (statystyka, prawdopodobieństwo, algebra) z programowaniem. Dlatego matematyka zdecydowanie jest nieodłącznym kompanem Data Science‼️ Ale (tak, wiem – nie zaczynamy zdania od ale…) czy Ty jako przyszły Data Scientist musisz znać matematykę? 🤔🤔🤔
I tu zaczynają się schody… dlatego, że nie ma tu jednej dobrej odpowiedzi. Zanim wyjaśnimy temat głębiej odpowiedzmy sobie na kilka pytań, które się nam nasuwają odnośnie pracy jako Data Scientist a znajomości matematyki. Skonstruujemy te pytania tak, aby były jasno określone, unikamy pytań “Czy DS musi znać matematykę?” bo co to właściwie znaczy że “znasz” matematykę?
- Czy mogę pracować jako DS jeżeli moja znajomość matematyki jest na poziomie liceum (np. Ostatni raz matematyki uczyła_em się w liceum? – Nie, to jest za mała wiedza.
- Czy muszę kończyć studia z zakresu STEM (Science, Technology, Engineering, Mathematics) lub Data Science, aby pracować jako DS? – Nie, chociaż na pewno takim osobom jest łatwiej znaleźć pierwszą pracę jako DS (mówię o sytuacji, gdzie bez żadnego doświadczenia zawodowego rekrutujemy na DSa). STEM często jest pożądane, ale nie obligatoryjne 😉 Oczywiście może się zdarzyć firma, która zatrudnia TYLKO matematyków i informatyków, ale to raczej wyjątek niż reguła.
- Czy muszę mieć matematykę na studiach, aby pracować jako DS? – Nie, wiedzę można przyswoić na wiele sposobów – za pomocą kursów, ucząc się “na własną rękę” itp.
- Czy muszę rozumieć (umieć przeczytać) wzory matematyczne, aby pracować jako DS? – To zależy. Jeżeli będziesz pracować jako researcher to zdecydowanie! Dużą częścią Twojej pracy będzie czytanie prac naukowych, które takie wzory zawierają. Może się nawet okazać, że na ich podstawie będziesz tworzyć własne podejście do problemu. Wówczas warto nie tylko rozumieć, ale również umieć je zastosować w praktyce czy nawet opracować własny wzór. Do researchu przydaje się zarówno matma jak i doktorat z niej. Jako zwykły DS dobrze jest rozumieć takie wzory, bo czasami też się czyta papery, ale jest to zdecydowanie rzadsze niż w przypadku osób zajmujących się researchem.
Matematyka bez której się nie obejdziesz
- Każdy DS musi znać i rozumieć statystykę oraz prawdopodobieństwo przynajmniej w stopniu umożliwiającym przeprowadzenie analizy danych oraz zrozumienie podstawowych modeli statystycznych, takich jak np. Regresja liniowa. Jaki zakres wiedzy to obejmuje? Na pewno statystyka opisowa, korelacja, zmienne losowe, ich rozkłady, własności i statystyki. W znajomości rozkładów ważne też jest, aby rozumieć do czego każdy z nich się przydaje.
- Znajomość testów służących do badania rozkładów zmiennych.
- Musimy również znać algebrę – pojęcie wektorów, macierzy, tensorów, działań jakie możemy na nich wykonywać.
Wypisane tutaj punkty to nie jest jakaś bardzo skomplikowana matematyka, więc o ile umiesz myśleć logicznie i chcesz się nauczyć, to jesteś w stanie to zrobić. Nie potrafię wskazać ile czasu potrzebujesz, bo każdy z nas jest inny – ma inną dostępność czasową, zaczyna z inną wiedzą początkową i inaczej przyswaja wiedzę. Myślę jednak, że nie skłamię mówiąc, że kilka miesięcy to oczekiwany czas na przyswojenie tej wiedzy dla osoby, która miała matematykę na studiach (np. osoby po studiach inżynierskich). Ponownie podkreślam, że jest to kwestia indywidualna zależna od wielu czynników. Na pewno będzie to więcej niż kilka dni i prawdopodobnie będzie to mniej niż rok. W tym miejscu warto również zaznaczyć, że dla osób “humanistycznych” prawdopodobnie więcej czasu będzie potrzebne.
Matematyka to przede wszystkim specyficzny sposób myślenia, który doskonale kształcą w nas kierunki ścisłe. Warto w tym miejscu zaznaczyć jeszcze jedną rzecz: napisałam wyżej, że kilka miesięcy wystarczy by przyswoić wiedzę. Należy pamiętać o tym, że jest znacząca różnica pomiędzy przyswojeniem wiedzy z matematyki a intuicyjnym rozumieniem matematyki. To prawdopodobnie nie przyjdzie od razu. Pewnie na początku będziemy poruszać się w świecie matematyki jak “dziecko we mgle”. Data Science to umiejętność i jej nauka jest podobna do nauki wielu innych rzeczy. Pewien mój znajomy doskonale przyrownał DS do gry w piłkę. Każdy może w parę minut zrozumieć wszystkie zasady gry, ale to zdecydowanie za mało, żeby grać jak profesjonalista. Nawet jeśli mamy wystarczające do tego warunki fizyczne, kluczowe jest jeszcze zbudowanie tego intuicyjnego wyczucia dynamiki własnego ciała, piłki, innych graczy, które przyjdzie tylko na treningach. Z uczeniem się matematyki jest bardzo podobnie. Nie chcę, aby zabrzmiało to w sposób “Możesz być DSem dopiero jak czujesz matme”. Jako junior możesz zacząć pracę ciągle jeszcze gdzieś szukając zrozumienia matematyki. Chcę przede wszystkim zaznaczyć, że jest to umiejętność, którą będziesz szlifować przez długo nawet pracując już w zawodzie (podobnie z resztą jest z umiejętnością programowania). Tu ponownie przewagę mają osoby z wykształceniem inżynierskim. Nie oznacza to jednak, że jako osoba klasyfikowana jako “humanista_tka” nie możesz zostać DSem. Oczywiście możesz, ale prawdopodobnie będzie to dla Ciebie większe wyzwanie niż dla osoby, która ma “scisły umysł”.
Matematyka, której znajomość może ułatwić życie DSa
- Umiejętność czytania matematycznych wzorów przyda się gdy będziemy robić research (który jest nieodłączną częścią pracy na etapie gdy dopiero tworzymy algorytm).
- Szersza znajomość statystyki – np. pozostałych testów statystycznych jak test t-studenta, test chi-kwadrat itp.
- Szersza znajomość algebry – np. Wartości własne i wektory własne, które kryją się za PCA (jeden z modeli ML).
Warto może w tym miejscu zaznaczyć, że to co wypisałam nie jest żadnym wyznacznikiem, a jedynie moją obserwacją i moją subiektywną opinią bazującą na moim doświadczeniu a także na rekrutacjach, w których uczestniczą moi kursanci.
Dlaczego zatem niektórzy mogą twierdzić, że matematyka praktycznie się nie przydaje?
Poniższy mem idealnie obrazuje odpowiedź na to pytanie 😂😂😂😂😂
Hipotetycznie pracując jako DS możesz w ogóle nie korzystać z matematyki – praktycznie każdy algorytm jest zaimplementowany w Pythonie – nie musisz go pisać od zera, także możesz z nich korzystać bazując na nie-matematycznej wiedzy jaką masz na ich temat. Również wszystkie metryki są zaimplementowane, wystarczy znać ich interpretację i już wiemy czy algorytm jest dobry czy nie. Importujesz odpowiednią bibliotekę i nic tylko z niej korzystać!
Po co w takim razie to całe zamieszanie?! 🤔🤔
Data Scientist bez znajomości teorii jest trochę jak ja pracująca na budowie. Ktoś mi powie tu masz klej, tam masz płytki, smarujesz płytkę klejem kładziesz i czekasz aż wyschnie. I ok, ja to zrobię i jakoś to będzie wyglądać (tak jak taki model będzie jakoś działać), ale… moje płytki na budowie mogą wyjść krzywo, może źle pomierzę i mi ich zabraknie albo źle potnę, albo może źle dobiorę klej. Ogólnie jest duża szansa, że efekt będzie raczej średni, bo nie uwzględnie wielu rzeczy, które uwzględniłby profesjonalista.
Z tworzeniem modeli bez znajomości matematyki kryjącej się za nimi jest dokładnie tak samo! Osoba nieznająca matematyki kryjącej się za modelami może pominąć wiele ważnych aspektów gdy dobiera model. Pierwsze co mi przychodzi do głowy: wybiorę model, który ma pewne ścisłe założenia np. Regresję liniową albo model Bayesa bez sprawdzania założeń i wyniki wyjdą zwyczajnie słabe. I ok, mogę teraz “po omacku” sprawdzać kolejne modele aż osiągnę coś z dobrym wynikiem, ale czy to ma sens?
Zdecydowanie wyjdziemy na profesjonalistkę_te, gdy wiedząc jakie mamy dane (ich specyfikacja, rozkład itp.) możemy powiedzieć, które modele należy z góry odrzucić albo może które wydają się warte rozważenia. Oczywiście bez statystyki (zrozumienie danych) i matematyki kryjącej się za modelami, będzie ciężko to stwierdzić 🤷♀️🤷♀️ Jako Data Scientist MUSISZ być profesjonalistką_tą, aby piąć się po szczeblach kariery. O ile pewne “niedociągnięcia” w znajomości teorii zostaną wybaczone juniorowi, o tyle osobie starającej się o stanowisko mida czy seniora, na pewno nie (w szczególności na rekrutacji).
No dobra przekonałaś… matematyka ukryta za modelami ma jakiś sens, ale po co modele statystyczne skoro interesuje mnie uczenie maszynowe?
Modele statystyczne okazują się zwyczajnie przydatne. Czasami wcale nie potrzebujemy super machiny, wystarczy jakiś prosty statystyczny model (tak, czasami zdarza się, że DS tworzy model statystyczny a nie tylko ML). Czasami też wykorzystujemy połączenie kilku modeli i może okazać się, że jeden z nich jest statystyczny, a drugi (i kolejne) to typowe uczenie maszynowe.
Podsumowanie
Bycie DSem nie wymaga od nas znajomości matematyki na poziomie osoby kończącej studia w tym kierunku. Teoretycznie możemy nawet tworzyć modele całkowicie bez znajomości matematyki, ale nie jest to słuszne podejście. Warto jest mieć oswojoną matematykę do poziomu takiego, na jakim z niej rzeczywiście korzystamy. Dla każdego to będzie inny poziom. Ten zawód ma ogromną liczbę twarzy, więc jeden DS będzie potrzebował lepszej znajomości, a dla innego wystarczy znajomość punktów “must have”, które sobie wymieniliśmy.
Mam nadzieję, że udało mi się chociaż trochę rozjaśnić czy matematyka jest potrzebna i w jakim stopniu. Daj znać w komentarzu co sądzisz oraz czy czegoś brakuje, a na pewno uzupełnię post 😊
You are right, you need to understand linear regression e.g. when looking for e.g. health data from health cause and effect.
Cześć Kinga,
Nie planuję zostać DS, ale od pewnego czasu odpowiadam za jakość danych w projekcie. Generalnie wcześniej byłem QA związanym z webem i ta dziedzina jest dla mnie super_nowa. Nowa do tego stopnia, że dopiero uczę się co wpisywać w google żeby się doszkolić. Czy może mi napisać coś więcej o “feature engineering’u, czyli sprawdzeniu jakości danych”? Generalnie jest to dokładny opis mojego najważniejszego obowiązku w pracy więc będę bardzo wdzięczny:)
Z pewnością za jakiś czas pojawi się na moim blogu temat feature engineeringu 🙂 Zachęcam do zapisania się do newslettera aby nie przeoczyć 🙂