Część I
⎼ Gromadzenie danych (webcrawler),
⎼ Wczytywanie danych ustrukturyzowanych (pandas, numpy),
⎼ Podstawy wizualizacji danych,
⎼ Oczyszczanie, normalizacja i środkowanie danych,
⎼ Przygotowanie zbiorów uczących.
Część II
⎼ Charakterystyka szeregów czasowych,
⎼ Transformacje sygnałów: wykładnicze, logarytmiczne oraz wygładzanie,
⎼ Autoregresja jedno- i wielowymiarowa,
⎼ Prognozowanie szeregów czasowych: naiwne, z użyciem modeli płytkich i głębokich.
Zaliczenie:
– praca zaliczeniowa prezentująca analizę wybranego problem z użyciem metod statystycznych oraz metod opartych na SI (z użyciem Python)
– preferowana forma pracy to Notatnik Jupyter Notebook
– ustne omówienie (obrona) pracy
Z wykształcenia jestem socjologiem aczkolwiek większość mojej kariery zawodowej zajmuję się branżą IT. Od 2011 r. pracuje jako programista, od kilku 7 lat prowadzę softwear house. Zajmujemy się głównie technologiami webowymi oparty o JavaScript oraz SI. Dodatkowo jestem także trenerem programowania oraz SI. Razem z moją firmą jesteśmy operatorem dużego projektu edukacyjnego LekcjaAI realizowanego razem z firmą Intel oraz Ministerstwem Edukacji.
Proces pracy z danymi, którego celem jest wyciąganie przydatnych informacji i wiedzy
Obejmuje kilka etapów:
zbieranie danych (np. z baz danych, sensorów, plików CSV)
porządkowanie i czyszczenie (usuwanie błędów, braków, duplikatów)
eksploracja i opis (statystyki, wizualizacje, wykresy)
wyciąganie wniosków i formułowanie rekomendacji
Może być:
opisowa (co się wydarzyło?)
diagnostyczna (dlaczego to się wydarzyło?)
predykcyjna (co może się wydarzyć?)
preskryptywna (jak powinniśmy działać?)
Kluczowy element współczesnej nauki, biznesu i technologii (m.in. sztucznej inteligencji).
KDD to skrót od Knowledge Discovery in Databases – czyli odkrywanie wiedzy w bazach danych.
Jest to proces, którego celem jest wydobywanie z dużych zbiorów danych ukrytej, wcześniej nieznanej, a zarazem użytecznej wiedzy.
Proces KDD obejmuje kilka etapów:
Selekcja danych – wybór odpowiednich źródeł i fragmentów danych.
Czyszczenie i wstępne przetwarzanie – usuwanie błędów, braków i szumów w danych.
Transformacja – przygotowanie danych do analizy (np. normalizacja, redukcja wymiarów).
Data mining (eksploracja danych) – zastosowanie algorytmów i metod statystycznych/sztucznej inteligencji w celu wykrywania wzorców, zależności, klastrów czy reguł.
Interpretacja i ocena – analiza wyników pod kątem ich użyteczności i poprawności.
Prezentacja wiedzy – przedstawienie wyników w formie zrozumiałej dla użytkownika (np. raporty, wizualizacje).
Model SEMMA to metodologia opracowana przez firmę SAS Institute jako uporządkowany schemat pracy w projektach data mining (eksploracji danych).
Nazwa pochodzi od pierwszych liter angielskich słów:
S – Sample (Próba)
wybranie reprezentatywnej próby danych z całego zbioru, aby móc efektywnie analizować
E – Explore (Eksploracja)
analiza danych wstępna: rozkłady, korelacje, wykresy, wykrywanie anomalii, zależności.
celem jest zrozumienie struktury danych i znalezienie potencjalnych wzorców.
M – Modify (Modyfikacja)
przygotowanie danych do modelowania: tworzenie nowych zmiennych, transformacje, selekcja cech, usuwanie nieistotnych atrybutów, normalizacja.
M – Model (Modelowanie)
zastosowanie algorytmów data mining (np. drzewa decyzyjne, sieci neuronowe, regresja, SVM, klastrowanie) do budowy modeli predykcyjnych lub opisowych.
A – Assess (Ocena)
ocena jakości modelu i jego użyteczności biznesowej, porównywanie różnych podejść, walidacja wyników.
CRISP-DM to najczęściej stosowana metodologia prowadzenia projektów data mining i analizy danych.
Skrót oznacza Cross Industry Standard Process for Data Mining – czyli branżowy standardowy proces eksploracji danych.
Business Understanding (Zrozumienie problemu biznesowego)
Określenie celów projektu, wymagań biznesowych i kryteriów sukcesu.
Przykład: „Chcemy przewidywać, którzy klienci odejdą z naszej firmy”.
Data Understanding (Zrozumienie danych)
Zbieranie dostępnych danych, badanie ich jakości, wykrywanie braków i anomalii.
Przykład: analiza źródeł danych, tworzenie pierwszych statystyk opisowych.
Data Preparation (Przygotowanie danych)
Oczyszczanie danych, łączenie różnych źródeł, transformacje, wybór cech (feature engineering).
Ten etap często zajmuje najwięcej czasu w całym projekcie.
Modeling (Modelowanie)
Wybór i trenowanie modeli (np. drzewa decyzyjne, regresja, sieci neuronowe).
Dostosowanie parametrów i porównanie podejść.
Evaluation (Ewaluacja)
Ocena jakości modeli pod kątem trafności, stabilności i zgodności z celem biznesowym.
Ważne: nawet dobry model matematycznie może być bezużyteczny biznesowo.
Deployment (Wdrożenie)
Przeniesienie rozwiązania do praktyki (np. system rekomendacji, scoring klientów).
Może to być raport, dashboard albo zintegrowany system produkcyjny.
CRISP-DM – standard branżowy, mocno podkreśla cele biznesowe i wdrożenie.
SEMMA – metoda SAS, skupiona na modelowaniu danych.
KDD – ogólny proces odkrywania wiedzy w bazach, bardziej naukowy.
Statystyka tradycyjna
Koncentruje się na modelach matematycznych i testach hipotez
Często zakłada określone rozkłady (np. normalny)
Nacisk na wyjaśnienie zależności i istotność statystyczną
Typowe narzędzia: regresja liniowa, testy t, ANOVA
Analiza danych w SI / Python
Praktyczne podejście – nacisk na predykcję i działanie na dużych zbiorach danych
Wykorzystuje algorytmy uczenia maszynowego (np. drzewa decyzyjne, sieci neuronowe)
Radzi sobie z danymi nienumerycznymi (obrazy, teksty, dźwięki)
Często mniej zależy od klasycznych założeń statystycznych
Python = ekosystem narzędzi (numpy, pandas, scikit-learn, tensorflow, pytorch)
Różnica w podejściu
Statystyka: „Jakie są związki i dlaczego?”
SI / Python: „Czy możemy przewidzieć i wykorzystać te dane w praktyce?”
To szersza i bardziej zaawansowana dziedzina, która obejmuje również analizę danych, ale idzie dalej.
Cel: nie tylko zrozumieć dane, ale też budować modele predykcyjne i generować nowe informacje.
Typowe zadania:
Analiza danych (tak jak analitycy).
Budowanie i trenowanie modeli uczenia maszynowego (machine learning).
Praca z dużymi zbiorami danych (big data).
Eksperymenty i symulacje.
Odpowiadanie na pytania typu: "Którzy klienci najprawdopodobniej odejdą?"
Narzędzia: Python, R, biblioteki ML (scikit-learn, TensorFlow, PyTorch), narzędzia do big data (Spark, Hadoop).
To bardziej skoncentrowana i węższa dziedzina.
Cel: zrozumieć dane historyczne i odpowiedzieć na konkretne pytania biznesowe.
Typowe zadania:
Czyszczenie i przygotowanie danych.
Tworzenie raportów i wizualizacji.
Obliczanie statystyk opisowych (np. średnia, mediana, korelacje).
Odpowiadanie na pytania typu: "Jakie były przychody w zeszłym miesiącu?" albo "Który produkt sprzedaje się najlepiej?"
Narzędzia: Excel, SQL, Tableau, Power BI, Python/R (na poziomie analitycznym).
Jak to widzi społeczeństwo?
Co myślą inni programiści?
Co ja właściwie robię?
Metoda analizy danych, która bada zależność jednej zmiennej (tzw. zmiennej zależnej) od jednej lub wielu innych zmiennych (tzw. niezależnych / predyktorów).
Celem regresji jest:
opis tej zależności,
przewidywanie wartości zmiennej zależnej,
czasem także wyjaśnienie, które czynniki są najważniejsze.
Regresja liniowa – zakłada prostą zależność (liniową) między zmiennymi.
przykład: wzrost a waga → im wyższy ktoś jest, tym średnio większa ma masa ciała.
Regresja wieloraka – wiele zmiennych niezależnych (np. cena mieszkania ~ metraż + lokalizacja + wiek budynku).
Regresja nieliniowa – zależność nie jest prostą linią, np. krzywa wzrostu populacji.
W uczeniu maszynowym istnieją też uogólnienia (np. regresja logistyczna, regresja ridge/lasso).
Mamy dane: temperatura a sprzedaż lodów.
Regresja liniowa dopasowuje prostą:
„Gdy temperatura rośnie o 1°C, sprzedaż rośnie średnio o X sztuk”.
Oto wizualny przykład regresji liniowej; punkty pokazują zależność między temperaturą a sprzedażą lodów, a czerwona linia to dopasowany model regresji.
Na slajdzie możesz opisać to tak:
Punkty = zebrane dane (obserwacje).
Linia = model regresji liniowej.
Interpretacja: wraz ze wzrostem temperatury rośnie przewidywana sprzedaż lodów.
Szereg czasowy to zbiór danych uporządkowanych w czasie – każda obserwacja ma przypisany znacznik czasu (np. dzień, godzinę, rok).
Przykłady:
liczba pasażerów linii lotniczej w kolejnych miesiącach,
temperatura mierzona codziennie,
kurs waluty lub ceny akcji na giełdzie,
liczba użytkowników logujących się do aplikacji w ciągu tygodnia.
Trend – długoterminowa tendencja wzrostowa/spadkowa (np. globalny wzrost temperatur).
Sezonowość – regularne wahania związane z porą dnia, roku, świętami (np. wzrost sprzedaży w grudniu).
Cykle – dłuższe, mniej regularne fluktuacje (np. cykle gospodarcze).
Szum – losowe zakłócenia i nieprzewidywalne wahania.
Co oznacza sformułowanie za dwa miesiące?
Zbieranie danych historycznych
np. ceny akcji z ostatnich 5 lat, liczba klientów dziennie, zużycie energii miesięcznie.
Analiza danych
sprawdzenie trendu, sezonowości, cykli, szumów, anomalii, braków.
wizualizacja → wykres liniowy, wykres sezonowy.
Przygotowanie danych
uzupełnianie braków, oczyszczanie danych, standaryzacja.
dzielenie danych na zbiór treningowy i testowy.
Wybór modelu prognozowania
Statystyczne: średnia ruchoma, wygładzanie wykładnicze, ARIMA, SARIMA.
Uczące się: regresja, drzewa decyzyjne, sieci neuronowe (RNN, LSTM).
Uczenie i dopasowanie modelu
model uczy się wzorców z danych historycznych.
Ocena jakości prognozy
porównanie przewidywań z danymi testowymi, miary błędu (np. MAE, RMSE, MAPE).
Prognoza na przyszłość
model generuje przewidywane wartości na kolejne okresy.
wyniki często pokazuje się na wykresie: dane historyczne + prognoza (z niepewnością).
Feature engineering to proces tworzenia i modyfikowania cech (features) w danych tak, aby model uczenia maszynowego mógł lepiej uczyć się i przewidywać.
W uczeniu maszynowym „features” = cechy opisujące dane (kolumny w tabeli, np. wiek, dochód, liczba zakupów).
Dobór i jakość cech mają ogromny wpływ na skuteczność modelu.
np. z daty „2023-10-01” → „dzień tygodnia”, „miesiąc”, „czy weekend”.
logarytmowanie (dla danych o dużym zakresie),
normalizacja / standaryzacja wartości.
Kodowanie danych kategorycznych
zamiana np. „miasto = Warszawa, Kraków, Gdańsk” → wektory liczbowe (one-hot encoding
uzupełnianie średnią, medianą lub specjalnym wskaźnikiem.
Średnia ruchoma (Moving Average)
prognoza = średnia z ostatnich obserwacji,
prosta i intuicyjna, dobra jako „baseline”.
Wygładzanie wykładnicze (Exponential Smoothing, Holt-Winters)
nadaje większą wagę najnowszym obserwacjom,
rozszerzenia (Holt-Winters) pozwalają uwzględniać trend i sezonowość.
ARIMA (Autoregressive Integrated Moving Average)
klasyczny model: uwzględnia autoregresję (AR), różnicowanie (I) i średnią ruchomą (MA),
dobry przy trendach, ale bez wyraźnej sezonowości.
SARIMA (Seasonal ARIMA)
rozwinięcie ARIMA o komponent sezonowy,
popularne do prognoz z cyklami rocznymi/miesięcznymi.
Regresja liniowa / wieloraka
można ją stosować do szeregów po odpowiednim przygotowaniu cech (feature engineering).
Drzewa decyzyjne i lasy losowe (Random Forest, Gradient Boosting)
potrafią uchwycić nieliniowe zależności i interakcje.
XGBoost / LightGBM / CatBoost
nowoczesne, bardzo wydajne algorytmy boostingowe, często używane w konkursach Kaggle.
RNN (Recurrent Neural Networks)
sieci neuronowe z pamięcią, dobrze nadają się do sekwencji czasowych.
LSTM (Long Short-Term Memory)
wariant RNN lepiej radzący sobie z długimi zależnościami w czasie.
GRU (Gated Recurrent Units)
uproszczona alternatywa dla LSTM, często szybsza.
Transformery (np. Temporal Fusion Transformer)
najnowsze podejścia, pozwalają modelować bardzo złożone zależności i duże dane czasowe.