Wstęp#
Celem niniejszego opracowania jest stworzenie uporządkowanie i zaprezentowanie najważniejszych koncepcji z zakresu uczenia maszynowego i zaawansowanej analizy danych (ang. data science).
Z założenia, materiał ma być przeglądowy i przystępny dla osób, które nie miały wcześniej styczności z tematyką uczenia maszynowego, a także dla tych, którzy chcą uporządkować wiedzę rozproszoną w różnych źródłach.
W opracowaniu skupiono się głównie na praktycznych aspektach uczenia maszynowego, a omawiane zagadnienia poparto przykładami w języku Python. Gdzie to tylko możliwe - podano odsyłacze do materiałów źródłowych/przewodników/dokumentacji/tutoriali, które warto przeczytać, aby lepiej zrozumieć dany aspekt. Oczywiście, pojawią się też sekcje poświęcone np. teorii uczenia maszynowego czy szeregów czasowych - mają one na celu kompleksowe i całościowe przedstawienie danego tematu. Czytelnik lub Czytelniczka odnajdzie tu też szereg formalnych definicji, które starają się usystematyzować pojęcia powszechnie znane i stosowane w praktyce, ale niekoniecznie wyłożone w ustrukturyzowany sposób (np. czym różni się model od algorytmu uczenia maszynowego? Jak zdefiniować ograniczenia poznawcze modelu?).
Podręcznik ma charakter otwarty i płynny, co oznacza, że prace nad nim wciąż trwają, a ich efekty będą systematycznie udostępniane na niniejszej stronie.
Dalsze plany i zakres prac / „early access”#
Niniejsze opracowanie jest w fazie rozwoju. W miarę postępów w pracach nad skryptem, będziemy dodawać nowe rozdziały, poprawiać błędy, uzupełniać treści. Docelowo, planowane jest pokrycie następujących tematów:
Data science - czym jest, z czego się składa, jakie są narzędzia, jakie są etapy procesu analizy danych.
Praca z danymi - rozdział poświęcony obróbce i przetwarzaniu danych. W szczególności:
Typy i struktury danych - ustruktyzowane i nieustrukturyzowane, numeryczne, itd.
Typowe operacje na danych - filtrowanie, grupowanie, łączenie, itd.
Analiza poprawności i kompletności danych.
Potoki przetwarzania (ang. pipelines) - automatyzacja procesu przetwarzania danych.
Wizualizacja danych.
Wprowadzenie do uczenia maszynowego - rozdział omawiający niezbędne minimum teorii i notacji potrzebnej do zrozumienia tej dziedziny. W szczególności:
Podstawowe pojęcia - model, cechy, etykiety, funkcja kosztu, itd.
Elementy teorii COLT - elementy teorii uczenia obliczeniowego i generalizacji.
Taksonomia modeli uczenia maszynowego - modele liniowe, drzewiaste, sieci neuronowe, itd.
Projektowanie eksperymentów - w jaki sposób projektować i przeprowadzać eksperymenty związane z uczeniem maszynowym. W szczególności:
Podział danych na zbiory treningowy, walidacyjny i testowy.
Ocena modeli - metryki jakości, walidacja krzyżowa, itd.
Optymalizacja hiperparametrów.
Analiza wyników eksperymentów.
Modele uczenia maszynowego - rozdział poświęcony praktycznemu zastosowaniu modeli uczenia maszynowego. W szczególności:
Regresja - modele liniowe, drzewiaste, sieci neuronowe.
Klasyfikacja - modele liniowe, drzewiaste, sieci neuronowe.
Grupowanie - k-means, DBSCAN, itd.
Klasyfikacja wieloklasowa.
Regresja wielowymiarowa.
Modele sekwencyjne - sieci rekurencyjne, sieci splotowe.
Modele generatywne - sieci GAN, VAE.
Budowanie projektów data science - w jaki sposób konstruować projekty DS. W szczególności:
Metoda CRISP-DM zarządzania projektami.
Szablony projektów DS i rozwiązań technicznych.
Narzędzia i zaplecze techniczne Data Science - czyli o technikach, narzędziach i rozwiązaniach, które warto znać, aby płynnie poruszać się po projektach DS. W szczególności:
Środowiska pracy - Visual Studio Code, Jupyter, Google Colab, Lightning Studio, etc.
Git, jako podstawowe narzędzie kontroli wersji.
Przydatne biblioteki w Pythonie - czyli które trzeba znać obowiązkowo, które ułatwiają pracę, automatyzują zadania, itd.
Docker o Kubernetes - narzędzia do konteneryzacji aplikacji.
Kedro, DVC, MlFlow - narzędzia do zarządzania eksperymentami, danymi i modelami.
MLOPS - szersze spojzrenie na to, jak zarządzać cyklem życia modeli uczenia maszynowego.
Opracowanie całego tego materiału zajmie oczywiście wiele czasu. Rozdziały, podrozdziały i sekcje będą udostępniane w miarę ich pojawiania się