Syllabus
Nazwa przedmiotu: Analiza danych w czasie rzeczywistym
Jednostka: SGH w Warszawie
Kod przedmiotu: 222890-D, 222890-S
Punkty ECTS: 3
Język prowadzenia: polski
Poziom przedmiotu: średnio-zaawansowany
Prowadzący: Sebastian Zając, sebastian.zajac@sgh.waw.pl
Website: https://sebkaz-teaching.github.io/RTA_2023/
Cel Przedmiotu
Podejmowanie prawidłowych decyzji opartych na danych i ich analizie jest niezwykle istotne w dzisiejszym i nowoczesnym biznesie. Wprowadzenie nowoczesnych metod takich jak uczenie maszynowe, sztuczna inteligencja i głębokie sieci neuronowe, może znacznie poprawić zarówno zrozumienie biznesu, jak i jakość podejmowanych decyzji. Ponadto, szybkośc podejmowania decyzji jest kluczowym czynnikiem w dynamicznym środowisku biznesowym, zwłaszcza tam, gdzie pracuje się bezpośrednio z klientem. Zajęcia mają na celu przekazanie studentom doświadczenia oraz kompleksowej wiedzy teoretycznej w zakresie przetwarzania i analizy danych w czasie rzeczywistym oraz zaprezentowanie najnowszych technologii informatycznych służących do przetwarzania danych ustrukturyzowanych (pochodzących np. z hurtowni danych) jak i nieustrukturyzowanych (np. obrazy, dźwięk, strumieniowanie video) w trybie on-line. W toku zajęć przedstawiona zostanie filozofia analizy dużych danych w czasie rzeczywistym jz wykorzystaniem programowania w języku Python. Przedstawione zostaną struktury oprogramowania służące do przetwarzania danych wraz z omówieniem problemów i trudności jakie spotyka się w realizacji modelowania w czasie rzeczywistym dla dużej ilości danych. Wiedza teoretyczna zdobywana będzie (oprócz części wykładowej) poprzez realizację przypadków testowych w narzędziach takich jak Apache Spark czy Apache Kafka. Na zajęciach laboratoryjnych studenci korzystać będą z pełni skonfigurowanych środowisk programistycznych przygotowanych do przetwarzania, modelowania i analizy danych. Tak, aby oprócz umiejętności i znajomości technik analitycznych studenci poznali i zrozumieli najnowsze technologie informatyczne związane z przetwarzaniem danych w czasie rzeczywistym.
Program przedmiotu
- Od plików płaskich do Data Mash. Modele przetwarzania danych w Big Data.
- ETL i modelowanie w trybie wsadowym (offline learning) i przyrostowym (online learning). Map-Reduce.
- Strumienie danych, zdarzenia i koncepcje czasu i okien czasowych w przetwarzaniu danych w czasie rzeczywistym.
- Mikroserwisy i komunikacja przez REST API.
- Współczesne architektury aplikacji do przetwarzania danych strumieniowych - Lambda, Kappa, Pub/Sub.
- Przetwarzanie ustrukturyzowanych i niestrukturyzowanych danych. Środowisko programistyczne dla języka Python.
- Wykorzystanie obiektowych elementów Pythona w procesie modelowania za pomocą Scikit-Learn i Keras
- Podstawy OOP dla języka Python. Budowa klasy dla algorytmu błądzenia losowego, Perceprtonu i Adeline.
- Przygotowanie mikroserwisu z modelem ML do zastosowania produkcyjnego.
- Strumieniowanie danych z wykorzystaniem RDD dla Apache Spark. Wprowadzenie do obiektu DataFrame.
Efekty kształcenia
- Wiedza:
Zna historię i filozofię modeli przetwarzania danych Powiązania: (Analiza danych - Big Data)K2A_W01, (Analiza danych - Big Data)K2A_W03, (OGL)O2_W01, (OGL) O2_W02, (OGL)O2_W04, (OGL)O2_W07 Metody weryfikacji: kolokwium pisemne (pytania otwarte, zadania) Metody dokumentacji: wykaz pytań z kolokwium
Zna typy danych ustrukturyzowanych jak i nieustrukturyzowanych Powiązania: (Analiza danych - Big Data)K2A_W02, (Analiza danych - Big Data)K2A_W04, (OGL)O2_W04, (OGL) O2_W07 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
Zna możliwości i obszary zastosowania procesowania danych w czasie rzeczywistym Powiązania: (Analiza danych - Big Data)K2A_W01, (Analiza danych - Big Data)K2A_W02, (OGL)O2_W01, (OGL) O2_W04, (OGL)O2_W08 Metody weryfikacji: egzamin pisemny (pytania otwarte, zadania) Metody dokumentacji: wykaz pytań egzaminacyjnych
Zna teoretyczne aspekty struktury lambda i kappa Powiązania: (Analiza danych - Big Data)K2A_W03, (Analiza danych - Big Data)K2A_W05, (OGL)O2_W04, (OGL) O2_W06, (OGL)O2_W08 Metody weryfikacji: kolokwium pisemne (pytania otwarte, zadania) Metody dokumentacji: wykaz pytań z kolokwium
Umie wybrać strukturę IT dla danego problemu biznesowego Powiązania: (Analiza danych - Big Data)K2A_W02, (Analiza danych - Big Data)K2A_W03, (OGL)O2_W01, (OGL) O2_W04, (OGL)O2_W06, (OGL)O2_W08 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
Rozumie potrzeby biznesowe podejmowania decyzji w bardzo krótkim czasie Powiązania: (Analiza danych - Big Data)K2A_W01, (Analiza danych - Big Data)K2A_W05, (OGL)O2_W01, (OGL) O2_W04, (OGL)O2_W06, (OGL)O2_W08 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
- Umiejętności:
Rozróżnia typy danych strukturyzowanych jak i niestrukturyzowanych Powiązania: K2A_U02, K2A_U07, K2A_U10, O2_U02 Metody weryfikacji: test Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
Umie przygotować, przetwarzać oraz zachowywać dane generowane w czasie rzeczywistym Powiązania: K2A_U03, K2A_U05, K2A_U09, O2_U02, O2_U04 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
Rozumie ograniczenia wynikające z czasu przetwarzania przez urządzenia oraz systemy informatyczne Powiązania: K2A_U01, K2A_U07, K2A_U11, O2_U02 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
Umie zastosować i skonstruować system do przetwarzania w czasie rzeczywistym Powiązania: K2A_U05, K2A_U10, O2_U05, O2_U06, O2_U07 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
Umie przygotować raportowanie dla systemu przetwarzania w czasie rzeczywistym Powiązania: K2A_U02, K2A_U08, K2A_U10, O2_U06, O2_U07 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
- Kompetencje:
Formułuje problem analityczny wraz z jego informatycznym rozwiązaniem Powiązania: K2A_K01, K2A_K03, O2_K02, O2_K06, O2_K07 Metody weryfikacji: projekt, prezentacja Metody dokumentacji: prace pisemne studenta (w trakcie semestru, zaliczeniowe, egzaminacyjne)
Utrwala umiejętność samodzielnego uzupełniania wiedzy teoretycznej jak i praktycznej w zakresie programowania, modelowania, nowych technologii informatycznych z wykorzystaniem analizy w czasie rzeczywistym. Powiązania: K2A_K02, K2A_K04, (OGL)O2_K01, (OGL) O2_K02, (OGL)O2_K05, (OGL)O2_K06 Metody weryfikacji: projekt Metody dokumentacji: prace pisemne studenta ( w trakcie semestru, zaliczeniowe, egzaminacyjne)
Realizacja przedmiotu
- egzamin testowy 30%
- kolokwium 30%
- referaty/eseje 40%
## Literatura
- Zając S. “Modelowanie dla biznesu. Analityka w czasie rzeczywistym - narzędzia informatyczne i biznesowe. Oficyna Wydawnicza SGH, Warszawa 2022
- K. Przanowski K. , Zając S. red. “Modelowanie dla biznesu, metody ML, modele portfela CF, modele rekurencyjne, analizy przeżycia, modele scoringowe, SGH, Warszawa 2020.
- Frątczak E., red. “Modelowanie dla biznesu, Regresja logistyczna, Regresja Poissona, Survival Data Mining, CRM, Credit Scoring”. SGH, Warszawa 2019.
- S. Raschka, Python. Uczenie maszynowe. Wydanie II
- Maas G., Garillot F. Stream Processing with Apache Spark, O’Reilly, 2021
- F. Hueske, V. Kalavri Stream Processing with Apache Flink, O’Reilly, 2021
- Nandi A. “Spark for Python Developers”, 2015
Literatura uzupełniająca
- Frątczak E., “Statistics for Management & Economics” SGH, Warszawa, 2015
- Simon P., “Too Big to IGNORE. The Business Case for Big Data”, John Wiley & Sons Inc., 2013
- Nandi A. “Spark for Python Developers”, 2015
- Frank J. Ohlhorst. “Big Data Analytics. Turning Big Data into Big Money”. John Wiley & Sons. Inc. 2013
- Russell J. “Zwinna analiza danych Apache Hadoop dla każdego”, Helion, 2014
- Todman C., “Projektowanie hurtowni danych, Wspomaganie zarządzania relacjami z klientami”, Helion, 2011