Študijný checklist pre začínajúcu dátovú vedkyňu

Tom (z Toma & Jerryho) náhodne miešajúci kuchynské prísady označené ako dáta, Pytorch, Numpy a pod.

Nedávno som stretol niekoho, kto by sa chcel naučiť dátovú vedu - presne ako som sa ju kedysi naučil ja! Tento článok je pre teba, milá budúca dátová vedkyňa.

Keď sa obzriem späť na svoju kariéru, nikdy nebol problém nájsť dostatok kvalitných a voľne dostupných učebných materiálov na internete. Mal som presne opačný problém - každý článok, video, tutoriál, kniha alebo nástroj sa tvárili ako tá najdôležitejšia vec na svete, bez ktorej sa v žiadnom prípade nezaobídem. To najťažšie bolo správne rozpoznať priority.

Takže aby som ti s tým pomohol, tu je zoznam konceptov, ktoré by začínajúci dátový vedec mal poznať. Nie je to samozrejme jediná možná vzdelávacia cesta ani jediná správna definícia dátovej vedy (koniec koncov, je to veľmi vágne definovaná pracovná pozícia), ale je to dobrý kompromis medzi stručnosťou a úplnosťou. Ber tento zoznam ako odrazový mostík, ako niečo čo ťa povedie skôr, ako sa budeš vedieť viesť sama.

Legenda

  • Červená - Toto sa nauč detailne, bude to tvoj každodenný chlebíček.
  • Zelená - Toto sa nauč dosť dobre na to, aby si si prinajhoršom len musela dohľadať nejaké podrobnosti.
  • Modrá - Zapamätaj si, že toto existuje a čo to je. Detaily si doštuduješ neskôr podľa potreby.

Základné nástroje

  • Visual Studio Code - Odporúčam tento editor kódu (presnejšie IDE - Integrated Development Environment - slúži na písanie a editovanie kódu, jeho spúšťanie a iné užitočné veci). IDE bývajú plné užitočných funkcií, ale nemusíš sa trápiť tým, že sa ich hneď všetky naučíš používať, nauč sa najprv tie základné. Existujú aj iné dobré voľby než len VS Code, napr. Spyder. Pár ich vyskúšaj a jeden si vyber.

  • Jupyter Notebook - Toto je zároveň formát kódu a IDE užitočné na interaktívne skúmanie a vizualizáciu dát. Je plne kompatibilný s VS Code a s Google Collab.

  • Základná práca s linuxovým terminálom (alebo príkazovým riadkom, ak používaš Windows) - Nauč sa ako zmeniť adresár v ktorom sa nachádzaš, vypísať obsah adresára, spustiť príkaz, a zobraziť nápovedu (help) pre daný príkaz.

  • Git
  • GitHub - alebo nejaká iná služba na hosting Gitu, ako napr. Gitlab alebo Gitea

Programovanie

  • Python
  • SQL

Formáty dát

  • CSV - Základný formát pre tabuľkové dáta.
  • JSON - Veľmi rozšírený formát v ktorom sa dajú uložiť aj netabuľkové dáta. Výborný nástroj na skúmanie JSONových súborov je jq.

Pythonové balíky a nástroje

  • Pandas - Všestranný nástroj s vysokou úrovňu abstrakcie na prácu s tabuľkami. Taký pythonový ekvivalent Excelu. Nauč sa načítať dáta, transformovať ich a vybrať z nich len nejakú časť. Zbytok sa naučiš popri učení ostatných vecí.
  • Matplotlib - Najrozšírenejší balík na kreslenie graafov. Pod kapotou ho používa a Pandas, Seaborn a Scikit-learn pre ich grafy. Nauč sa ako nakresliť základné grafy, formátovanie (nastaviť nadpis, premenovať osi, zmeniť interval) a ako uložiť obrázok do súboru.
  • Seaborn - Veľmi užitočné rozšírenie Matplotlibu, je dobrý nápad zvyknúť si používať ho miesto Matplotlibu aj na základné grafy.
  • Numpy - Násobenie matíc a iná lineárna algebra, ľubovoľná práca s poliami (tzn. tabuľkami) čísel.
  • Scikit-learn - Obrovská zbierka modelov a nástrojov na ich evaluáciu, od základných až po pokročilé. Nauč sa aké evaluačné nástroje sú k dispozícií, ako vyzerá interface modelov a ber zoznam dostupných modelov ako inšpiráciu pre ďalšie štúdium.
  • Scipy - Pokročilá matematika, štatistika a optimalizácia.
  • Pytorch a/alebo Tensorflow - Pythonové balíky pre prácu s neurónovými sieťami.
  • Pip - Manažér balíkov, budeš ho potrebovať už na nainštalovanie všetkých týchto balíkov.
  • Conda - Manažér balíkov a virtuálnych prostredí.

Matematika

  • Lineárna algebra:
    • Vektory a ich skalárny súčin
    • Matice a ich násobenie
    • Geometrická interpretácia
  • Štatistika:
    • Pravdepodobnosť
    • Pravdepodobnostné rozdelenie (distribúcia) a rozdiel medzi pravdepodobnosťou a hustotou pravdepodobnosti
      • Normálna (tzn. gausovská) distribúcia
      • Kategorická distribúcia
      • Binomiálna ditribúcia
      • Poissonova ditribúcia
    • Korelácia a korelácia ranku (rank correlation)
    • Interval spoľahlivosti
    • Koncept štatistického testu
    • P-hodnota
    • P-hackovanie (ako niečo čomu sa chceš vyhnúť)
  • Podmienená pravdepodobnosť
  • Kognitívne skreslenia a štatistické chyby:
    • Simpsonov paradox
    • Výberové skreslenie (selection bias)
    • Skreslenie preživších (survivorship bias)
    • Mätúca premenná (confounding variable) a náhodné korelácie
  • Neintuitívne vlastnosti mnohorozmerných priestorov
  • Základy Bayesovskej štatistiky:
    • Bayesovo pravidlo
    • Apriori a aposteriori pravdepodobnostná distribúcia
    • Rozdiel medzi “maximum likelihood estimate” a “maximum posterior probability estimate”

Vizualizácia a deskriptívna štatistika

  • Čiarový graf (lineplot)
  • Bodový graf (scatterplot)
  • Histogram
  • Krabicový diagram (boxplot)
  • Vyhladenie histogramu pomocou KDE (kernel density estimate)
  • Kvantily
  • Priemer, mód, medián, variancia a štandardná odchýlka

Modelovanie

  • Rozdiel medzi regresiou a klasifikáciou
  • Lineárna regresia a logistická regresia
  • Overfitting a strátegie proti nemu:
    • Rozdelenie dát na trénovanie/testovanie/validáciu
    • Cross-validácia
    • Regularizácia
    • Obohacovanie dát (data augmentation)
  • Normalizácia dát - ktoré modely ju potrebujú a ktoré nie
  • Chybová matica (confusion matrix) a ako z nej vypočítať rôzne metriky:
    • sensitivita (recall)
    • špecificita
    • precision
    • accuracy
    • ako sa navzájom ovplivňujú
  • ROC krivka a plocha pod ROC krivkou (možno aj krivka precission-recall)
  • Dôsledky nevyvážených dáta (data imbalance) pri trénovaní a evaluačných metrikách
  • Rozhodovacie rozhranie (decision boundary) - lineárny vs. nelineárny model, koncept lineárne separovateľných dát
  • Feature engineering, obzvlášť ako pomoocu neho premeniť lineárny model na nelineárny, viď tiež “kernel trick”.
  • Rozhodovací strom
  • Neurónové siete pre klasifikáciu
  • Kompromis medzi systematickou chybou a varianciou (Bias Vs variance tradeoff)
  • Skupinové modely (ensemble models)
  • Zhluková analýza (clustering)
  • Tématické modelovanie dokumentov (topic modeling)
  • Dimenzionálna redukcia
  • Autoenkódery a embeddingy

Etika

  • Skreslené dáta vedú k skresleným modelom.
  • Dezinterpretácia výstupu modelu - užívateľ nerozumie matematike tak ako ty.
  • Prehnaná dôvera v spoľahlivosť modelu - užívateľ nerozumie obmedzeniam modelu tak ako ty.
  • Nezamýšľané použitie - užívatelia si robia čo sa im zachce, občas je to skvelé, občas je to hlúpe a občas je to kruté.
  • Automatické rozhodovanie - nerob to, lepší nápad je pomáhať sa rozhodovať ľuďom, ale mysli pri tom na predošlé body.
  • Kedy nerobiť strojové učenie - dobré užívateľské rozhranie a dobrá matematika sú často lepšie riešenia ako dobrý model.

Ako vyzerá typický pracovný postup dátového vedca?

Okrem premýšľania nad prioritami, formovania a testovania hypotéz, komunikácie a iných činností pozostáva väčšinou “remeselná” časť dátovej vedy z týchto krokov:

  • Načítaj dáta.
  • Preskúmaj ich - ako dáta vyzerajú, koľko ich je, aké dáta chýbajú, sú nejako skreslené? Sú reprezentatívne voči skutočnému svetu? Aké dáta vlastne potrebuješ? Sú tam nejaké odľahlé, extrémne hodnoty?
  • Zosumarizuj vlastnosti dát pomocou deskriptívnej štatistiky a vizualizácie.
  • Vyčisti dáta: odstráň duplicity a vysporiadaj sa s chýbajúcimi dátami a extrémnymi hodnotami.
  • Modeluj dáta - pochop, akú odpoveď hľadáš a aký model ti ju vie poskytnúť.
  • Vyhodnoť model - robí to, čo po ňom chceš? Ak nie, vráť sa k predchádzajúcemu kroku.
  • Vizualizuj a jasne odkomunikuj svoje závery. Čo znamená výstup modelu? Ako veľmi si si svojimi závermi istá?
  • Ak je to potrebné, nasaď model pre opakované použitie.

Záver

Veľa šťastia!

Napísané 3. 4. 2023